摘要: T1:首先你要发现,对于任意一个奇数i,i xor (i-1)=1; 那么我们可以将答案转化为统计有多少个1相互异或起来; 所以答案就那么几种; 如果你用的数位DP,只能说明你太高估day1T1了; #include <bits/stdc++.h> using namespace std; long 阅读全文
posted @ 2019-10-29 17:00 神之右大臣 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 这道题与2018年十二省联考中的异或粽子很相像,可以算作一个简易版; 因为这不需要可持久化; 也就是说求任意两个数异或起来的第k大值; 首先把所有数放进trie里。 然后二分答案,枚举每个数,相应地在trie上从高位开始跑,统计答案。 具体做法:当前跑到二进制第k位,已经确定了比k高的位的数字,使得 阅读全文
posted @ 2019-10-29 16:34 神之右大臣 阅读(545) 评论(0) 推荐(0) 编辑
摘要: 题面 GarsiaWachs算法专门解决石子合并问题: 设一个序列是A[0..n-1],每次寻找最小的一个满足A[k-1]<=A[k+1]的k,那么我们就把A[k]与A[k-1]合并,并向前寻找一个第一个超过他们的和的数,把这个数插入到他后面; 阅读全文
posted @ 2019-10-29 15:44 神之右大臣 阅读(189) 评论(0) 推荐(0) 编辑