1.首先是要找到一个位置从左至右,作l这一个是0,r这一个是1. 2.实例01011,10100.你将能够找到01111和10000. #include<cstdio> #include<iostream> using namespace std; int main(){ long long l,r,i; scanf("%lld%lld",&l,&r); r=r^l; for(i=1;;i<<=1) if(i>r) break;…
1.用退化的线段树(也就是没有区间查询)做... 2.注意longlong. #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int n,q; int a[200010],s[200010]; int main(){     scanf("%d%d",&n,&q); for(int…
A. Lunch Rush 模拟. B. Little Girl and Game 因为可以打乱顺序,所以只关心每种数字打奇偶性. 若一开始就是回文,即奇数字母为0或1种,则先手获胜. 若奇数字母大于1,则只需要考虑奇数字母个数的奇偶性.因为后手可以保证奇数字母个数的奇偶性. C. Little Girl and Maximum Sum 考虑每个位置覆盖次数,显然覆盖次数多分配大权值. D. Little Girl and Maximum XOR 找到 \(l,r\) 不相同的最高位,那么为了异…
E. Little Girl and Problem on Trees time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output A little girl loves problems on trees very much. Here's one of them. A tree is an undirected connected g…
A. Lunch Rush time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Having written another programming contest, three Rabbits decided to grab some lunch. The coach gave the team exactly k time u…
题目传送门 /* 模拟递推水题 */ #include <cstdio> #include <iostream> #include <cmath> #include <algorithm> #include <cstring> #include <string> #include <map> using namespace std; + ; const int INF = 0x3f3f3f3f; int a[MAXN][M…
参考资料: [1]:https://blog.csdn.net/weixin_43790474/article/details/84815383 [2]:http://www.cnblogs.com/Dup4/p/10068891.html…
题意: 给出一个矩阵n(<=500)*m(<=500)每一行任选一个数 异或在一起 求一个 异或在一起不为0 的每行的取值列号 思路: 异或的性质  交换律 x1^x2^x3==x3^x2^x1 可以任意换位置  并且 x1^x2==x3^x4  等于 x1^x2^x3==x4 可以任意换位置 所以等于零时有  x1^x2^x3^x4==0  (x1^x2)^(x3^x4)==0  x1^x2==x3^x4 都可以任意结合 所以本题只要任意选择列  如果为0  就每一列 找与已选择的列不一样的…
题目链接:http://www.codeforces.com/problemset/problem/509/A题意:f[i][1]=f[1][i]=1,f[i][j]=f[i-1][j]+f[i][j-1],求f[n][n].C++代码: #include <iostream> using namespace std; ][]; int main() { cin >> n; ;i<=n;i++) f[i][] = f[][i] = ; ; i <= n; i ++) ;…
题意: 给你一个空的可重集,支持以下操作: 向其中塞进一个数x(不超过100000), 询问(x,K,s):如果K不能整除x,直接输出-1.否则,问你可重集中所有是K的倍数的数之中,小于等于s-x,并且与x异或结果最大的数是多少(如果不存在这样的数,也输出-1). 建立100000个二进制Trie,第i个Trie中存储i的所有倍数. 查询的时候,在Trie上从高位到低位贪心地找,如果从根到当前点的路径形成的数恰好与s-x相等,要从当前点进行一次dfs统计,看看当前子树中是否存在不超过s-x的数,…