练习赛的时候这道题死活超时....想到了高位确定后..低位不能对高位产生影响..并且高位要尽可能的为1..就是想不出比较好的方法了实现... 围观大神博客..http://www.cnblogs.com/zhj5chengfeng/archive/2013/05/14/3077621.html 思路很清晰了..没什么补充的..自己的思维还是不够啊...大神几句话点拨...豁然开朗... Program: #include<iostream> #include<string.h> #…
题目链接:282E Sausage Maximization 题目大意:给定一个序列A.要求从中选取一个前缀,一个后缀,能够为空,当时不能重叠.亦或和最大. 解题思路:预处理出前缀后缀亦或和,然后在字典树中维护.每次加入并查询.过程中维护ans. #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> using namespace std; typedef lon…
题目链接:http://codeforces.com/problemset/problem/282/E E. Sausage Maximization time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output The Bitlandians are quite weird people. They have their own prob…
E. Beautiful Subarrays 题目连接: http://www.codeforces.com/contest/665/problem/E Description One day, ZS the Coder wrote down an array of integers a with elements a1,  a2,  ...,  an. A subarray of the array a is a sequence al,  al  +  1,  ...,  ar for so…
题目传送门 /* 题意:给出一种方案使得abs (A - G) <= 500,否则输出-1 贪心:每次选取使他们相差最小的,然而并没有-1:) */ #include <cstdio> #include <cstring> #include <iostream> #include <cmath> #include <algorithm> using namespace std; ; const int INF = 0x3f3f3f3f; i…
A. Bit++ 模拟. B. Painting Eggs 贪心,每个物品给使差值较小的那个人,根据题目的约数条件,可证明贪心的正确性. C. XOR and OR \(,,00 \to 00,01 \to 11,11 \to 01\) 根据上述转换,只要至少存在一个1,则可以得到任意个数(不包括0)的1.全0时只能变成全0. 那么判断a.b两种情况即可. D. Yet Another Number Game 当没有全减操作时,即相当于一个Nim游戏. 当n=1时,直接判断 \(a_1\) 是否…
题目连接: Codeforces 455B A Lot of Games 题目大意:给定n.表示字符串集合. 给定k,表示进行了k次游戏,然后是n个字符串.每局開始.字符串为空串,然后两人轮流在末尾追加字符.保证新的字符串为集合中某字符串的前缀.不能操作者输,新一轮由上一句输的人先手. 解题思路:首先对字符集合建立字典树.然后依据博弈的必胜必败性质搜索出先手的决策状态,可决定胜败3,仅仅能胜利2,仅仅能失败1.不可掌控(即对手可决定胜败)0. 对于状态3,为必胜.能够採用前K-1场败,然后保证第…
[题目链接]:http://codeforces.com/contest/514/problem/C [题意] 给你n个字符串; 然后给你m个询问;->m个字符串 对于每一个询问字符串 你需要在n个字符串里面找到和它的长度相同,且只有一个位置的字符不同的字符串; 或者告知这是不存在的; [题解] 写个字典树; 在每一位多了两种选择; (即更改这个字符) 然后前面已经确定匹配的不要重新匹配;->不然会超时 有改和不改两种可能. 注意最后必须要改一个字符. 字典树以后还是用0作为根节点吧.不然to…
链接:https://codeforces.com/problemset/problem/1285/D 题意:给n个数a1,a2,a3.....an,找到一个数X,使得X 异或所有的ai ,得到的max(X xor ai)最小,输出这个值. 思路:a的范围是0~230,我们可以以01二进制的形式建一棵深度为30的字典树,每个数ai 的二进制序列插入到字典树中去,例如5 = 101,那么101按位插入到字典树中去.然后从根开始遍历,在字典树上dp,因为该字典树建完后是一棵二叉树,所以分支情况就两种…
题意:还是比较好理解 分析:把每个单词反转,建字典树,然后暴力匹配加密串 注:然后我就是特别不理解,上面那种能过,而且时间很短,但是我想反之亦然啊 我一开始写的是,把加密串进行反转,然后单词正着建字典树,然后就TLE了,反着写就能过 真是百思不得解,然后我猜测可能是单词数目比较少 #include <cstdio> #include <iostream> #include <cstring> #include <cstdlib> #include <v…