Codeforces round 1100
Div 2 532
- 我对交互一无所知
- 只能寄期望与NOI和省选不出交互吧...
E
这个题,真的是耻辱...
其实非常简单,就是二分+判环...
那么就直接二分答案+拓扑排序即可...
(我居然在考试的时候没一眼秒出来...
(我居然把它跳过去了...
F
(又一次犯了同样的错误.jpg
(这个线性基真的是...
一个非常简单的$\log^2n$做法,直接线段树+线性基合并即可...
然后正解也不难,但是如果一直陷入第一个就真的想不出来.jpg
直接暴力维护后缀基+扫描线即可...
每次支持向线性基中插入即可...
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <cstdlib>
#include <queue>
#include <iostream>
#include <bitset>
using namespace std;
#define N 500005
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
struct Mat
{
	int a[21],siz;
	Mat(){memset(a,0,sizeof(a));siz=0;}
	bool insert(int x)
	{
		if(siz==20)return 0;
		for(int i=19;~i;i--)if((x>>i)&1)
			if(a[i])x^=a[i];
			else {a[i]=x;siz++;return 1;}
		return 0;
	}
	void calc(int &x){for(int i=19;~i;i--)if((!((x>>i)&1))&&a[i])x^=a[i];}
	int calc(){int x=0;for(int i=19;~i;i--)if(!((x>>i)&1)&&a[i])x^=a[i];return x;}
}t[N];
int a[N],n,lst[22],ans[N],Q;
struct node{int l,r,idx;}q[N];
inline bool cmp(const node &a,const node &b){return a.r==b.r?a.l<b.l:a.r<b.r;}
int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;i++)scanf("%d",&a[i]);
	scanf("%d",&Q);
	for(int i=1;i<=Q;i++)scanf("%d%d",&q[i].l,&q[i].r),q[i].idx=i;sort(q+1,q+Q+1,cmp);
	for(int i=1,k=1;i<=n;i++)
	{
		if(!lst[0])lst[0]=i;
		// printf("%d\n",i);
		for(int j=19;j;j--)if(lst[j])
		{
			if(t[lst[j]].insert(a[i]))
			{
				if(!lst[j+1])lst[j+1]=lst[j];
				// if(lst[j]==3)printf("%d\n",a[i]);
				lst[j]++;
				while(lst[j]<lst[j-1]&&t[lst[j]].insert(a[i]))
				{
					// if(lst[j]==3)printf("%d\n",a[i]);
					// if(lst[j]==4)printf("%d\n",a[i]);
					lst[j]++;
				}
				if(lst[j]==lst[j-1])lst[j]=0;
			}
		}
		if(t[lst[0]].insert(a[i]))
		{
			if(!lst[1])lst[1]=lst[0];lst[0]++;
			while(lst[0]<=i&&t[lst[0]].insert(a[i]))
			{
				// if(lst[0]==3)printf("%d\n",a[i]);
				// if(lst[0]==4)printf("%d\n",a[i]);
				lst[0]++;
			}
			if(lst[0]==i+1)lst[0]=0;
		}
		// for(int j=5;j;j--)printf("j=%d lst[j]=%d\n",j,lst[j]);
		while(k<=Q&&q[k].r==i)t[q[k].l].calc(ans[q[k].idx]),k++;
	}
	// printf("%d %d\n",t[4].siz,t[3].siz);
	for(int i=1;i<=Q;i++)printf("%d\n",ans[i]);
}
/*
10
32 52 25 0 1 9 8 16 64 16
10
2 7
2 6
6 8
1 1
5 10
5 8
4 10
6 8
2 6
6 10
 */
Codeforces round 1100的更多相关文章
- CodeForces Round
		CodeForces Round 199 Div2 完了,这次做扯了,做的时候有点发烧,居然只做出来一道题,差点被绿. My submissions # When Who Problem ... 
- Educational Codeforces Round 35 (Rated for Div. 2)
		Educational Codeforces Round 35 (Rated for Div. 2) https://codeforces.com/contest/911 A 模拟 #include& ... 
- Codeforces Round #532 (Div. 2) 题解
		Codeforces Round #532 (Div. 2) 题目总链接:https://codeforces.com/contest/1100 A. Roman and Browser 题意: 给出 ... 
- Codeforces Round #564 (Div. 1)
		Codeforces Round #564 (Div. 1) A Nauuo and Cards 首先如果牌库中最后的牌是\(1,2,\cdots, k\),那么就模拟一下能不能每次打出第\(k+i\ ... 
- Codeforces Round #721 (Div. 2)A. And Then There Were K(位运算,二进制)  B1. Palindrome Game (easy version)(博弈论)
		半个月没看cf 手生了很多(手动大哭) Problem - A - Codeforces 题意 给定数字n, 求出最大数字k, 使得 n & (n−1) & (n−2) & ... 
- Codeforces Round #366 (Div. 2) ABC
		Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ... 
- Codeforces Round #354 (Div. 2) ABCD
		Codeforces Round #354 (Div. 2) Problems # Name A Nicholas and Permutation standard input/out ... 
- Codeforces Round #368 (Div. 2)
		直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ... 
- cf之路,1,Codeforces Round #345 (Div. 2)
		cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅..... ... 
随机推荐
- import、export使用介绍
			import.export使用介绍 ES6提供的import.export方法, 使组件化开发模式迈向新高度.本文来介绍import.export的语法及使用方法. 根据 export 的导出方式,可 ... 
- Glusterfs的常用命令
			1 服务器节点 # gluster peer status //查看所有节点信息,显示时不包括本节点 # gluster peer probe N ... 
- 《Inside C#》笔记(一) .NET平台
			C# 基于.NET运行时,所以有必要首先对.NET以及C#与.NET平台的关系有一定的了解. 一 .NET平台 .NET背后的基本思想是将原本独立工作的设备.网络服务整合在一个统一的平台上,从而可以为 ... 
- input  radio单选框样式优化
			HTML代码: <form> <div> <input id="item1" type="radio" name="it ... 
- [Java][读书笔记]多线程编程
			前言:最近复习java,发现一本很好的资料,<Java2参考大全 (第五版)>  Herbert.Schildt.书比较老了,06年的,一些 ... 
- vm virtualBox下 centos7 Linux系统 与本地 window 系统 网络连接 配置
			由于要模拟生产环境开发,所以要在自己的电脑上安装虚拟机,这里做一下记录. centos与本机网络连接 1. 环境 虚拟机 VirtualBox-5.2.0-118431-Win Linux镜像 Cen ... 
- tomcat报错this web application instance has been stopped already问题
			上网搜了下,大部分的报错原因:重启时候 之前的tomcat未正常关闭 ,导致在重启时候 报了这个问题.mac下解决: ps -ef|grep tomcat 找到在进行的tomcat ,kill -9 ... 
- LeetCode题解之 Odd Even Linked List
			1.题目描述 2.问题分析 将链表拆分成两个,奇数节点形成一个链表,偶数节点形成另外一个链表,最后将偶数节点链表加在奇数节点链表后面. 3.代码 ListNode* oddEvenList(ListN ... 
- CentOS 7 环境下 GitLab安装部署以及账号初始化
			1. 安装相关依赖 yum install curl policycoreutils openssh-server openssh-clients -y # 确保sshd启动(正常情况下, sshd是 ... 
- win10的ie11正确卸载与重新安装
			win10的ie11是自带与斯巴达共存的浏览器,不正确的卸载或安装可能会导致不可预知的问题,以下为我总结出来正确的方法: 卸载: 进入 控制面板--程序与功能 之后在左侧选择 “启动与关闭Window ... 
