题面

初见线段树分治

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

把时间轴建出来一棵线段树,然后在对应的区间上打标记,最后把整棵树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. 基于WebSocket协议的性能测试

    互联网应用时代,用户获取信息的方式从传统媒体到新媒体,信息时效性对通信技术要求越来越高, HTTP协议已经不能适用.于是WebSocket出现了,它实现浏览器与服务器的全双工通信,服务端主动向客户端发 ...

  2. 从零开始的Python学习Episode 19——面向对象(2)

    面向对象之继承 继承是一种创建新类的方式,新建的类可以继承一个或多个父类(python支持多继承),父类又可称 为基类或超类,新建的类称为派生类或子类. 子类会“”遗传”父类的属性,从而解决代码重用问 ...

  3. <React Native移动开发实战>-1-React Native的JSX解决方案

    JSX并不是一门新的开发语言,而是Facebook提出的语法方案:一种可以在JavaScript代码中直接书写HTML标签的语法糖,所以,JSX本质上还是JavaScript语言. 小知识:语法糖(S ...

  4. 机器学习(一):记一次k一近邻算法的学习与Kaggle实战

    本篇博客是基于以Kaggle中手写数字识别实战为目标,以KNN算法学习为驱动导向来进行讲解. 写这篇博客的原因 什么是KNN kaggle实战 优缺点及其优化方法 总结 参考文献 写这篇博客的原因 写 ...

  5. NuGet 让程序集版本变得混乱

    之前引用的 System.Net.Http.Formatting ,是依赖于   System.Net.Http 2.0的. 更新引用后它是依赖于  System.Net.Http 4.0 的.而且一 ...

  6. 利用Python编写Windows恶意代码!自娱自乐!勿用于非法用途!

    本文主要展示的是通过使用python和PyInstaller来构建恶意软件的一些poc. 利用Python编写Windows恶意代码!自娱自乐!勿用于非法用途!众所周知的,恶意软件如果影响到了他人的生 ...

  7. Django_QueryDict

    介绍 class QueryDict(MultiValueDict): """ A specialized MultiValueDict which represents ...

  8. 成功安装Python-myqldb

    试过很多其他的都不行 http://www.centoscn.com/CentosBug/softbug/2017/0424/8737.html

  9. iOS自学-监听按钮点击、提醒框

    //事件监听的问题 CGRect btn2Frame = CGRectMake(100.0, 150.0, 60.0, 44.0); //两种不同的方式创建 UIButton *btn2 = [UIB ...

  10. LCA(最近公共祖先)算法

    参考博客:https://blog.csdn.net/my_sunshine26/article/details/72717112 首先看一下定义,来自于百度百科 LCA(Lowest Common ...