摘要:
给一块n*m的巧克力,Alice只能垂直切,切成A*m和B*m,并且A+B=n,Bob只能横切,只能切成A*n和B*n,并且A+B=m。 对于n*n的这种巧克力,谁先切了第一刀,就直接让对方有切两刀的机会,所以Alice不可能去切这种巧克力,可以直接无视这种。 后一人会尽量选前一人切后小的一块切。 阅读全文
摘要:
今天写写cf上以前的水题,找找自信 A. Olesya and Rodion 此题要求一个能被t整除的n位数,直接t为开始,后面全部为0. 当然,需要排除位数为1但t=10的情况。 B. Kolya and Tanya 给你一个环,环上有3n个点,每个点的权值可以是1-3,然后问你满足a[i]+a[ 阅读全文
摘要:
首先求出以每个数为开头上升序列长度,即倒着做最长下降子序列 然后,把字典序尽量小的放前面 即若要求的序列长度为x,如果以第一个数(字典序最小的数)开头的最长上升子序列大等于x,则将它放在答案第一个,第二个数开头小于x,则舍弃,第三个大于x-1,放答案第二个,以此类推 1 #include<algor 阅读全文
摘要:
环形均分纸牌问题。用A[i]表示糖果数,sum表示目标的糖果数量。用X[i]表示从i + 1移动到i的糖果的个数(可+可-)。由此可以得到式子A[i] + X[i] - X[i - 1] = sum。我们可以得到这样的n - 1个方程(第n个可以由前n - 1个推导)。但是这样不足以求解。我们进行以 阅读全文
摘要:
裸的树链剖分。 对于安装 查询和维护到根路径 对于卸载 查询和维护子树信息 一开始线段树add[]标记要全赋值为-1 阅读全文
摘要:
题意: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值 III. QSUM u v: 询问从点u到点v的路径上的节点的权值和 树链剖分 siz[v]表示以v为根的子树的节点数 top[v]表示v所在的重链的顶端节点 fa[v 阅读全文
摘要:
siz[v]表示以v为根的子树的节点数 top[v]表示v所在的重链的顶端节点 fa[v]表示v的父亲 pos[v]表示v的父边标号 mx[v]表示v的子树中边的标号最大的那条边 参考:http://blog.sina.com.cn/s/blog_6974c8b20100zc61.html 题意: 阅读全文
摘要:
先看成一条链 for一遍找位置 在for一遍算答案 阅读全文
摘要:
在bzoj上乱翻,发现了可持久化并查集,然后baidu了一下,发现一种叫rope的东西。 !!!真的太爽了!!! 直接上代码,感受一下(也是蒯来的)。 由于rope的底层实现,insert,erase,get都是logn的 就是翻转不行,不是自己手写的打不了标记。 rope的部分简单操作 函数 功能 阅读全文
摘要:
x2 ≡ 1 mod n => x2 = k * n + 1 => n | (x + 1) * (x - 1) 令n = a * b,则 (a | x + 1 且 b | x - 1) 或 (a| x - 1 且 b | x + 1) 于是暴力枚举a ∈ [1, sqrt(n)] 就好了 然后直接丢 阅读全文