
脑洞
mis_deer
Make_myself.
展开
-
[CodeForces 573B] Bear and Blocks (脑洞题)
CodeForces - 573B 一列上有若干个方块堆,每堆方块有一个高度 每次可以消去这堆方块最外面的那层,问要几次才能消去 这是个脑洞题,还是有点难度的首先可以预见的是 1) 每堆方块每次至少可以消去最顶上的一个 2) 每堆方块消去后,将与左右相邻中最矮的同高,如果都比他高,他就只能向下消一个 3) 每次都能消掉最左和最右两列然而实际上这题从两边同时开始考虑消去的话,比较复杂 不原创 2016-04-14 22:07:24 · 440 阅读 · 0 评论 -
[Codeforces 460D] Little Victor and Set (构造)
Codeforces - 460D 从区间 [l,r][l,r]内选出最多 kk个数,使得他们的异或和最小YY一下发现,如果一个偶数 2x2x 和 2x+12x+1 异或,可以得到 1,挺小的 如果2x2x、2x+12x+1、2x+22x+2、2x+32x+3异或就得到了 0,这意味这 k≥4k\ge 4的时候 都只需取这样的 4个数,就能得到一个最小的 0 所以只需考虑 k<4k<4的原创 2016-08-23 10:16:47 · 278 阅读 · 0 评论 -
[Codeforces 176B] Word Cut (脑洞+KMP+dp)
Codeforces - 176B 给定一个 A串,每次可以将其从分为两个非空子串 然后交换这两个串的位置,得到一个新串 问这样操作 KK次以后得到 B串的方案数实际上可以将 A串看成一个循环的串 每次切的操作实际上就是改变起始位置 并且相邻的两次起始位置不能相同比如 ababaab,我从第一个 b后面切开,就变成 abaab|ab 实际上只不过是换了一个起始位置而已 由原创 2016-08-22 19:07:02 · 367 阅读 · 0 评论 -
[HDU 5818] Joint Stacks (脑洞+实现)
HDU - 5818 给定两个栈 A和 B,开始栈为空,有三种操作 向某个栈里 push一个数,从某个栈里 pop一个数 将两个栈 merge到一个栈,按时间顺序将所有元素压入这个栈这题队友赛上写了个线段树的做法 虽说也不是毫无思维难度,但是比起题解就显得很蠢了 题解的做法是开一个新栈 C 每次 merge的时候,按时间顺序归并地压入新栈 C 之后 push不变,只不过 p原创 2016-08-09 20:28:09 · 496 阅读 · 0 评论 -
[Codeforces Gym100851A] Adjustment Office (脑洞)
Codeforces - Gym100851A (NEERC15 - A) 给一个 N×NN\times N的格子,位于格子有一个权值,为 x+yx+y 询问 QQ次,询问一行或者一列的权值和,然后清空这一行或这一列 其中 N<=106N<=10^6,Q<=105Q<=10^5由于每次都会清空,所以一个点的权值只会被加一次 并且权值的分布相当有规律 所以只要统计一下哪些行、哪些原创 2016-08-15 19:55:51 · 551 阅读 · 0 评论 -
[HDU 5819] Knights (稍难的概率DP)
HDU - 5819 棋盘上有 NN个骑士,他们要么向左走,要么向右走 他们相遇时会发生决斗,每个人都有 12\frac 1 2的概率获胜 胜者继续前进,败者直接退出游戏,骑士走到棋盘边缘会回头 问第 NN个骑士获胜的概率看了题解的状态,感觉太神了…… 首先第一个骑士肯定向右,第 NN个肯定向左 第 NN个骑士获胜的条件,即为打败所有左边向右走的骑士 设 dp[i][j原创 2016-08-10 18:59:52 · 726 阅读 · 0 评论 -
[HDU 5782] Cycle (bitset优化+脑洞)
HDU - 5782 给定两个长度相等的字符串 问他们的第 ii个前缀是否循环相等 循环相等的定义是,两个长度相等的字符串 其中一个字符串能通过循环移位得到另一个按照题解的说法,如果两个字符串循环相等 将 AA串拆成前缀和后缀,交换位置就能得到 BB串然后我对着题解懵逼了一小时,没懂接下来怎么做 还好 lcy打野强力辅助,我终于懂了一点利用一个 bitset,先预处理出原创 2016-08-04 08:59:26 · 858 阅读 · 2 评论 -
[Codeforces Gym100851J] Jump (构造+脑洞)
Codeforces - Gym100851J (NEERC15 - J) 交互题,有一个隐藏的长度为 NN的 01串 SS 每次可以询问一个 01串 QQ,如果两串有一半相等或者全部相等 将会返回 N2\frac N 2或者 NN,否则都返回 00 最多可以询问 N+500N+500次,如何得到这个隐藏串 SS构造好题! 做法就是先随机构造串,直到返回 N2\frac N原创 2016-08-15 17:56:58 · 686 阅读 · 0 评论 -
[HDU 5414] CRB and String (构造+脑洞)
HDU - 5414 给定A,B两个字符串,每次可以选择A中一个字符, 然后在其后添加一个与选择的那个字符不同的字符 问 A串是否可能构造成 B串这是一个构造题, 看起来在 A中构造 aaaa这样连着的字符串是不行的 但实际上,假设有 A串 baaa,B串 baaaa, 我可以选择在字符 b后面添加一个 a 意识到这点以后,可以发现几乎可以任意添加字符 只要满足以下条件:原创 2016-07-18 16:23:18 · 280 阅读 · 0 评论 -
[Codeforces 451A] Game With Sticks (博弈)
Codeforces - 451A N根横向木棍,M根纵向木棍组成了一个网格图 每次可以选择一个交点,去掉所有通过这个交点的木棍 两个人交替进行这个游戏,问最后谁能胜利每次选择的一个交点,必然去掉了一根横向木棍和纵向木棍 所以每次 N和 M都减一 当其中有一个为 0的时候,就是先手必败态 所以只和 N、M中较小的那个的奇偶性有关#pragma comment(linker,原创 2016-07-28 08:49:42 · 528 阅读 · 0 评论 -
[Codeforces 67C] Sequence of Balls (字符串DP)
Codeforces - 67C 给定两个字符串 AA和 BB,要求用四种操作将 AA转化为 BB 其中可以在 AA的任意位置添加、删除或替换任意字符 或者可以交换相邻的两个字符,其中交换两次的代价大于等于添加一次再删除一次由最后一个条件可得,将一个字符连续交换两次及以上是不划算的 因为你可以把它删掉,再在另一位置加入 设 dp[i][j]dp[i][j]表示 AA字符串 ii原创 2016-07-26 11:53:20 · 372 阅读 · 0 评论 -
[SCU 4522] 寻找fly真迹 (脑洞+构造)
SCU - 4522 给定一个只含小写 a、b、c的字符串 其中每个字母和字典序相等和相邻的字母相连 给出连好边的一张图,问是否是一个合法状态首先 b和所有字母都连上了边, 所以图中与所有字母连上边的都是 b,可以先去掉 然后整张图就变成了两个联通块,一个是 a的,一个是 b的 并且每个联通块都是完全图 判断一下是不是两个联通块,是不是两个完全图就好了#pragma com原创 2016-06-05 14:24:45 · 331 阅读 · 0 评论 -
[CodeForces 276D] Little Girl and Maximum XOR (构造+脑洞)
CodeForces - 276D 给定一个 a和 b,要求在 a,b之间找一对数使得他们的异或和最大构造贪心题,方法是从高位开始考虑,尽量使此位为 1 那么必然有一个数此位为 0,另一个此位为 1 不难发现,如果二进制表示的 b位数比 a多 比如 a=01101,b=10110,那么一定可以构造出 11111 只要 l=01111,r=10000即可,并且这就是最大值 如果 a与原创 2016-04-24 16:37:33 · 467 阅读 · 0 评论 -
[POJ 3684] Physics Experiment (脑洞+弹性碰撞模型)
POJ - 3684 一个圆筒内有 N个相同的小球,每隔一秒释放一个,它们将互相进行弹性碰撞 问 T时刻各个小球的位置在哪因为是弹性碰撞,所以机械能是守恒的 而且小球之间的相对顺序不会发生改变 一个小球撞到另一个小球时,相互交换机械能 每个小球的机械能都是各不相同的,所以相当于碰撞的两个小球交换了身份 进一步的,相当于小球没有发生碰撞,相互穿过了对方(2*R的距离) 每次碰撞,朝下的小原创 2016-04-18 13:28:04 · 338 阅读 · 0 评论 -
[UVa 11426] GCD - Extreme (II) (数论 + 脑洞 + 技巧)
UVa - 11426 给定一个 N,数对 i,j <= N且 i < j 求所有数对的 gcd(i,j)的和 其中 N <= 4e6这是大白 p125的例题 首先按题目描述两个for肯定是不行的 所以我们反过来考虑,一个数是多少对数的gcdgcd 换句话来说,就是一个数被加了几次 于是我们枚举这个gcdgcd为ii 设有数对 a,b(a<b)a,b(a < b)使得 g原创 2016-04-30 14:47:30 · 314 阅读 · 0 评论 -
[POJ 3276] Face The Right Way (翻转问题+技巧)
POJ - 3276 有 N个奶牛排成一列,有些朝前有些朝后, 一次可以翻转连续的 K头奶牛的朝向,K是固定的 求最少翻转次数,以及最小的 K这种翻转的问题有两个很明显的性质 1) 翻转的位置先后是无关的 2) 同一个地方最多翻转一次于是枚举 K,再枚举 N依次去翻转 K长度的窗口依次向右滑,如果此时最左边的牛朝后 则一定要翻转,因为此后的操作都与其无关了不过直接搞的话时间复杂度是 O原创 2016-04-16 00:30:04 · 415 阅读 · 0 评论 -
[HDU 4569] Special equations (数学+技巧+脑洞)
HDU - 4569 给你一个多项式,求使得多项式 mod (P*P)的平方为 0的解刚开始题目扯了一堆 CRT啥啥啥的,其实是烟雾弹 注意到这题 P只有 1e4,意味着可以从 0..P-1 枚举出 x的解 因为根据 mod 的性质,以及 f(x)是多项式 如果 f(x)%P=0,那么 f(x+P)%P=0 所以只需要枚举 0..P-1就好了 但是这题求的是 mod P*P就比较麻烦,乘原创 2016-04-15 21:42:59 · 276 阅读 · 0 评论 -
[HDU 5821] Ball (贪心)
HDU - 5821 给定一列球,每种球有一个颜色,同一颜色的球无区别 每次选择一个区间,任意排列其中的球 问是否能从初始的排列变成给定的一个排列首先有一个很重要的性质,就是同种颜色的球 最终排列的相对顺序是不变的 也就是说,颜色为 1的第一个球,最后还是在同类球的第一个 预处理出每个球在最终排列上的位置,然后对于每次操作 尽量让最终排列靠前的在区间的前面 即按最终位置原创 2016-08-11 19:25:04 · 464 阅读 · 0 评论