博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ4644 : 经典傻逼题
阅读量:5889 次
发布时间:2019-06-19

本文共 1782 字,大约阅读时间需要 5 分钟。

设每个点的权值为和它相连的所有边的权值的异或和,那么等价于选若干个点,使得点权异或和最大,这显然只需要维护一组线性基,然后从高位到低位贪心选取即可。

对于本题,因为有修改操作,所以考虑按时间分治,并用bitset加速,时间复杂度$O(\frac{m\log mL^2}{64})$。

针对插入操作,可以用Four Russian Method进一步优化。

将$1000$个基$4$个一组分成$250$组,每组对于$2^4$种可能的插入向量预处理出消元后的结果。

那么插入只需要$250$次消元,插入之后重新预处理那块即可。

时间复杂度$O(\frac{m\log mL^2}{64\log L})$。

 

#include
#include
#include
#include
#define N 505using namespace std;typedef bitset<1000>bs;int n,m,i,x,y,cnt,vis[N],cur,idb[N],idg[N];bs B[1000],fin,w,a[N],q[2010],pb[N];struct P{int l,r,p;P(int _l,int _r,int _p){l=_l,r=_r,p=_p;}};vector

V;struct Block{ bs a[16];int b[16]; void build(int x){ for(int S=1;S<16;S++){ int j; for(j=3;~j;j--)if(S>>j&1)break; if(B[x+3-j][x+3-j]){ a[S]=B[x+3-j]; int ret=S; for(int i=j;~i;i--)if(B[x+3-j][x+3-i])ret^=1<

x){ B[idb[cur]]=pb[cur]; G[idg[cur]]=pg[cur]; cur--; }}void solve(int l,int r,vector

V){ int t=cur; vector

S; for(vector

::iterator it=V.begin();it!=V.end();it++) if(it->l<=l&&r<=it->r)ins(q[it->p]); else S.push_back(*it); if(l==r){ fin.reset(); for(int i=0;i<1000;i++)if(!fin[i])if(B[i][i])fin^=B[i]; bool flag=0; for(int i=0;i<1000;i++)if(fin[i])putchar('1'),flag=1;else if(flag)putchar('0'); if(!flag)putchar('0'); puts(""); retrace(t); return; } int mid=(l+r)>>1; solve(l,mid,S),solve(mid+1,r,S); retrace(t);}int main(){ scanf("%d",&n); scanf("%d%d",&n,&m); for(i=1;i<=m;i++){ scanf("%d%d",&x,&y); get(); x--,y--; if(vis[x])q[++cnt]=a[x],V.push_back(P(vis[x],i-1,cnt)); if(vis[y])q[++cnt]=a[y],V.push_back(P(vis[y],i-1,cnt)); vis[x]=vis[y]=i; a[x]^=w,a[y]^=w; } for(i=0;i

  

转载地址:http://iyfsx.baihongyu.com/

你可能感兴趣的文章
家庭和办公路由器被劫持以发动 DDoS 攻击
查看>>
TCP 协议漏洞影响大量 Linux 设备
查看>>
《Linux设备驱动开发详解 A》一一2.7 芯片数据手册阅读方法
查看>>
《CCNP安全Secure 642-637认证考试指南》——6.1节摸底测验
查看>>
《Arduino奇妙之旅:智能车趣味制作天龙八步》一2.3 安装软件
查看>>
《OSPF和IS-IS详解》一1.4 互联网的诞生
查看>>
程序员如何做出“不难看”的设计
查看>>
《UNIX网络编程 卷1:套接字联网API(第3版)》——1.11 64位体系结构
查看>>
中国可能放弃 Windows 完全转用 Linux 吗?
查看>>
《Cisco ASA设备使用指南(第3版)》一2.11 Cisco ASA 5555-X型
查看>>
Apache Twill —— 分布式应用开发框架
查看>>
Google 微软达成专利和解,协议包含 Android
查看>>
《Adobe Acrobat X中文版经典教程》—第2章复 习
查看>>
《Linux/UNIX OpenLDAP实战指南》——导读
查看>>
《精通VMware vSphere 6》——第2章 规划与安装 VMware ESXi 2.1规划VMware vSphere部署...
查看>>
如何安装体验 Ubuntu on Windows
查看>>
《移动App测试的22条军规》——军规5 关注用户体验
查看>>
《编程珠玑(第2版•修订版)》—第1章1.1节一次友好的对话
查看>>
《 营销数据科学: 用R和Python进行预测分析的建模技术》——第3章 锁定目标客户...
查看>>
JQuery入门(2)
查看>>