题面

初见线段树分治

(对我来说可不是什么经典题=。=)

把时间轴建出来一棵线段树,然后在对应的区间上打标记,最后把整棵树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 经典砂比题(雾的更多相关文章

  1. [BZOJ]4644: 经典傻逼题

    某天我觉得一切题目都是那么不可做,于是百度了一下"傻逼题"-- 题目大意:对于图中的任意一个点集(可以为空或者全集),所有恰好有一个端点在这个点集中的边组成的集合被称为割.一个割的 ...

  2. [POJ 1000] A+B Problem 经典水题 C++解题报告 JAVA解题报告

        A+B Problem Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 311263   Accepted: 1713 ...

  3. 转:sql 经典50题--可能是你见过的最全解析

    题记:从知乎上看到的一篇文章,刚好最近工作中发现遇到的题目与这个几乎一样,可能就是从这里来的吧.^_^ 里面的答案没有细看,SQL求解重在思路,很多时候同一种结果可能有多种写法,比如题中的各科成绩取前 ...

  4. 经典算法题每日演练——第十七题 Dijkstra算法

    原文:经典算法题每日演练--第十七题 Dijkstra算法 或许在生活中,经常会碰到针对某一个问题,在众多的限制条件下,如何去寻找一个最优解?可能大家想到了很多诸如“线性规划”,“动态规划” 这些经典 ...

  5. 经典算法题每日演练——第十六题 Kruskal算法

    原文:经典算法题每日演练--第十六题 Kruskal算法 这篇我们看看第二种生成树的Kruskal算法,这个算法的魅力在于我们可以打一下算法和数据结构的组合拳,很有意思的. 一:思想 若存在M={0, ...

  6. 经典算法题每日演练——第十四题 Prim算法

    原文:经典算法题每日演练--第十四题 Prim算法 图论在数据结构中是非常有趣而复杂的,作为web码农的我,在实际开发中一直没有找到它的使用场景,不像树那样的频繁使用,不过还是准备 仔细的把图论全部过 ...

  7. 经典算法题每日演练——第十一题 Bitmap算法

    原文:经典算法题每日演练--第十一题 Bitmap算法 在所有具有性能优化的数据结构中,我想大家使用最多的就是hash表,是的,在具有定位查找上具有O(1)的常量时间,多么的简洁优美, 但是在特定的场 ...

  8. 经典算法题每日演练——第八题 AC自动机

    原文:经典算法题每日演练--第八题 AC自动机 上一篇我们说了单模式匹配算法KMP,现在我们有需求了,我要检查一篇文章中是否有某些敏感词,这其实就是多模式匹配的问题. 当然你也可以用KMP算法求出,那 ...

  9. 经典算法题每日演练——第六题 协同推荐SlopeOne 算法

    原文:经典算法题每日演练--第六题 协同推荐SlopeOne 算法 相信大家对如下的Category都很熟悉,很多网站都有类似如下的功能,“商品推荐”,"猜你喜欢“,在实体店中我们有导购来为 ...

随机推荐

  1. GIT rebase讲解

    对分支进行rebase 从master分支checkout出fork分支,并在master和fork上都进行了一些修改 现在fork分支想要及时的同步master分支上的修改,避免在已经失效的代码上继 ...

  2. MUI的踩坑笔记

    最近在做公司项目的手机端实现,稍微记录下遇到的坑 1.在app开发中,若要使用HTML5+扩展api,必须等plusready事件发生后才能正常使用,mui将该事件封装成了mui.plusReady( ...

  3. css 文字展示两行 其余的省略号显示

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. Scrum Meeting 13 -2014.11.19

    最近数据库和编译的实验课也开始了,大家晚上的时间直接被砍掉了大部分. 希望大家能顺利完成项目吧.剩下时间也不多了,如果程序还存在一些特别的问题和需要优化修改的地方也应该考虑留到下阶段进行了. Memb ...

  5. Linux课程学习之我思

    陈民禾,原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000,我的博客中有一部分是出自M ...

  6. Linux 下软件安装

    Linux 下软件安装 一.Linux 上的软件安装 通常 Linux 上的软件安装主要有三种方式: 在线安装 从磁盘安装deb软件包 从二进制软件包安装 从源代码编译安装 这几种安装方式各有优劣,而 ...

  7. php与nginx之间的通信

    Nginx是俄国人最早开发的Webserver,现在已经风靡全球,相信大家并不陌生.PHP也通过二十多年的发展来到了7系列版本,更加关注性能.这对搭档在最近这些年,叱咤风云,基本上LNMP成了当下的标 ...

  8. 【CS231N】1、图像分类

    一.知识点 1. 计算机识别物体面临的困难 视角变化(Viewpoint variation):同一个物体,摄像机可以从多个角度来展现. 大小变化(Scale variation):物体可视的大小通常 ...

  9. Socket 记录

    心跳检测步骤:1客户端每隔一个时间间隔发生一个探测包给服务器2客户端发包时启动一个超时定时器3服务器端接收到检测包,应该回应一个包4如果客户机收到服务器的应答包,则说明服务器正常,删除超时定时器5如果 ...

  10. A网站访问B网站,跨域问题

    跨域异常:XMLHttpRequest cannot load  ''. No 'Access-Control-Allow-Origin' header is present on the reque ...