解题:BZOJ 4644 经典砂比题(雾
初见线段树分治
(对我来说可不是什么经典题=。=)
把时间轴建出来一棵线段树,然后在对应的区间上打标记,最后把整棵树DFS一遍,到叶节点输出答案即可
(把最终答案开成全局的了调了半天
- #include<cstdio>
- #include<bitset>
- #include<vector>
- #include<cstring>
- #include<algorithm>
- using namespace std;
- const int N=,M=;
- int n,m,s,t1,t2,len,lst[N];
- char str[M]; bitset<M> lbt[N],rd;
- vector<bitset<M> > ve[*M];
- struct a
- {
- bitset<M> bit[M];
- void Set(bitset<M> bt)
- {
- for(int i=;~i;i--)
- if(bt[i]) bt^=bit[i];
- for(int i=;~i;i--)
- if(bt[i]&&!bit[i].any())
- {bit[i]=bt; break;}
- }
- void Output()
- {
- bitset<M> outp; outp.reset();
- for(int i=;~i;i--)
- if(!outp[i]&&bit[i].any())
- outp^=bit[i];
- bool b=false;
- for(int i=;~i;i--)
- if(outp[i])
- {
- b=true;
- for(int j=i;~j;j--)
- printf("%d",outp[j]?:);
- break;
- }
- if(!b) printf(""); puts("");
- }
- }sb;
- void Add(int nde,int l,int r,int ll,int rr,bitset<M> bt)
- {
- if(l>rr||r<ll)
- return ;
- else if(l>=ll&&r<=rr)
- ve[nde].push_back(bt);
- else
- {
- int mid=(l+r)/,ls=*nde,rs=*nde+;
- Add(ls,l,mid,ll,rr,bt),Add(rs,mid+,r,ll,rr,bt);
- }
- }
- void Getans(int nde,int l,int r,a sb)
- {
- int siz=ve[nde].size();
- for(int i=;i<siz;i++)
- sb.Set(ve[nde][i]);
- if(l==r)
- sb.Output();
- else
- {
- int mid=(l+r)/,ls=*nde,rs=*nde+;
- Getans(ls,l,mid,sb),Getans(rs,mid+,r,sb);
- }
- }
- int main()
- {
- scanf("%d%d%d",&s,&n,&m);
- for(int i=;i<=m;i++)
- {
- scanf("%d%d",&t1,&t2);
- scanf("%s",str),len=strlen(str);
- if(t1!=t2)
- {
- rd.reset();
- for(int j=;j<len;j++)
- rd[j]=str[len-j-]-'';
- if(lst[t1]) Add(,,m,lst[t1],i-,lbt[t1]);
- if(lst[t2]) Add(,,m,lst[t2],i-,lbt[t2]);
- lst[t1]=lst[t2]=i,lbt[t1]^=rd,lbt[t2]^=rd;
- }
- }
- for(int i=;i<=n;i++)
- if(lst[i]) Add(,,m,lst[i],m,lbt[i]);
- Getans(,,m,sb);
- return ;
- }
解题:BZOJ 4644 经典砂比题(雾的更多相关文章
- [BZOJ]4644: 经典傻逼题
某天我觉得一切题目都是那么不可做,于是百度了一下"傻逼题"-- 题目大意:对于图中的任意一个点集(可以为空或者全集),所有恰好有一个端点在这个点集中的边组成的集合被称为割.一个割的 ...
- [POJ 1000] A+B Problem 经典水题 C++解题报告 JAVA解题报告
A+B Problem Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 311263 Accepted: 1713 ...
- 转:sql 经典50题--可能是你见过的最全解析
题记:从知乎上看到的一篇文章,刚好最近工作中发现遇到的题目与这个几乎一样,可能就是从这里来的吧.^_^ 里面的答案没有细看,SQL求解重在思路,很多时候同一种结果可能有多种写法,比如题中的各科成绩取前 ...
- 经典算法题每日演练——第十七题 Dijkstra算法
原文:经典算法题每日演练--第十七题 Dijkstra算法 或许在生活中,经常会碰到针对某一个问题,在众多的限制条件下,如何去寻找一个最优解?可能大家想到了很多诸如“线性规划”,“动态规划” 这些经典 ...
- 经典算法题每日演练——第十六题 Kruskal算法
原文:经典算法题每日演练--第十六题 Kruskal算法 这篇我们看看第二种生成树的Kruskal算法,这个算法的魅力在于我们可以打一下算法和数据结构的组合拳,很有意思的. 一:思想 若存在M={0, ...
- 经典算法题每日演练——第十四题 Prim算法
原文:经典算法题每日演练--第十四题 Prim算法 图论在数据结构中是非常有趣而复杂的,作为web码农的我,在实际开发中一直没有找到它的使用场景,不像树那样的频繁使用,不过还是准备 仔细的把图论全部过 ...
- 经典算法题每日演练——第十一题 Bitmap算法
原文:经典算法题每日演练--第十一题 Bitmap算法 在所有具有性能优化的数据结构中,我想大家使用最多的就是hash表,是的,在具有定位查找上具有O(1)的常量时间,多么的简洁优美, 但是在特定的场 ...
- 经典算法题每日演练——第八题 AC自动机
原文:经典算法题每日演练--第八题 AC自动机 上一篇我们说了单模式匹配算法KMP,现在我们有需求了,我要检查一篇文章中是否有某些敏感词,这其实就是多模式匹配的问题. 当然你也可以用KMP算法求出,那 ...
- 经典算法题每日演练——第六题 协同推荐SlopeOne 算法
原文:经典算法题每日演练--第六题 协同推荐SlopeOne 算法 相信大家对如下的Category都很熟悉,很多网站都有类似如下的功能,“商品推荐”,"猜你喜欢“,在实体店中我们有导购来为 ...
随机推荐
- wc命令详解
基础命令学习目录首页 原文链接:http://www.cnblogs.com/peida/archive/2012/12/18/2822758.html Linux系统中的wc(Word Count) ...
- plsql 不修改tnsnames.ora文件
PLSQL 不修改tnsname直接连数据库的方式在PLSQL的Database中直接输入192.168.1.6:1521/VP.其中192.168.1.6为数据库的IP:1521为数据库端口:VP为 ...
- Python20-Day07
面向对象之继承与派生 什么是继承? 继承是一种创建新类的方式,新建的类可以继承一个或者多个父类,父类又称为基类或者超类,新建的类称为派生类或者子类 子类会‘遗传’父类的特性,从而解决代码重用问题 py ...
- 【quickhybrid】如何实现一个Hybrid框架
章节目录 [quickhybrid]如何实现一个跨平台Hybrid框架 [quick hybrid]架构一个Hybrid框架 [quick hybrid]H5和Native交互原理 [quick hy ...
- Dailu Scrum (2015/10/27)
在周日晚上PM已经为大家分配了部分的代码修改工作,今天晚上PM召集了被分配代码工作的3个DEV一起讨论要求修改的代码.在共同讨论的过程中确有发现以下代码的不规范之处,PM当即要求我们先要修改规范代码的 ...
- 作业45//Calculator::3.0
计算器 github 我的天我到底要写什么 一,2.0及2.6的改动 做了计算部分 加入了判断输入是否合法 合法的定义是算式符合`数字+运算符+数字+运算符+数字`的格式 其中`"-&quo ...
- 初入React(一)
React:是2013年Facebook在github上的一个开源js库,它将用户界面抽象为一个个组件,再由开发者将其组合成页面.它不是完整的MVC/MVVM框架,专注于提供清晰.简洁的view层解决 ...
- mysql EXPLAIN 参数表
测试样式: 参数详情:
- [转帖]windows 2008 Server R2 /Win7启用TLS 1.2
来自新浪博客的 一个文章 自己很早之前曾经看过 iis的加密工具 但是当时没有认识到TLS1.2协议的问题 这里 晚上学习了一下. http://blog.sina.com.cn/s/blog_16 ...
- Dubbo学习(四) dubbo的特点,8种通信协议之对比
一.dubbo的特性 (1) 连通性: 注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小 监控中心负责统计各服务调用次数,调用 ...