摘要:http://codeforces.com/contest/1285/problem/D 从高位往低位看,如果某一位上全是一样的数字,则直接看下一位;如果某位上有0有1,表明这一位答案上一定有个1,但具体那个X是要取0还是取1,取决于后面的位数,由此可将数字按这一位的01分成两组,递归地解决问题。 阅读全文
posted @ 2020-01-15 18:04 Blue233333 阅读 (15) 评论 (0) 编辑
摘要:http://codeforces.com/contest/1287/problem/E2 一个串的价值只有它对每个字符的cnt。一种思路如下:比较1...n和1...n-1的所有子串的cnt,可以发现除了n个后缀之外,其它的子串两者都有,由此得到每个后缀的cnt。然而这超过了询问上限。我们可以用这 阅读全文
posted @ 2020-01-12 22:15 Blue233333 阅读 (7) 评论 (0) 编辑
摘要://#include #include #include #include #include //#include //#include //#include #include #include using namespace std; int n,m,lq; #define maxn 200011 struct Edge{int to,next; char v;}edge[maxn ss[... 阅读全文
posted @ 2019-10-16 06:28 Blue233333 阅读 (19) 评论 (0) 编辑
摘要:$n \leq 100000$的字符串,多次问一个区间有多少位置不同的回文串。 先插空做一次manacher,得到每个字符往左右延伸的长度$f$数组。如ACAA变*A*C*A*A*,那么所有*的$f_k$实际对应的回文串数是$\frac{f_k}{2}$(一定整除),否则是$\frac{f_k+1} 阅读全文
posted @ 2018-07-12 15:52 Blue233333 阅读 (86) 评论 (1) 编辑
摘要:$n \leq 1e5$个位运算操作,$m \le 2^{30}$,问$0-m$中谁进行完所有操作值最大,输出这个最大值。 cfA题难度?当送分题就不管了 and相当于几个位取0,or相当于几个位取1,有几个位是可以确定的;xor相当于翻转,确定的0变1,确定的1变0,不确定的就记一下哪几位被xor 阅读全文
posted @ 2018-07-12 11:21 Blue233333 阅读 (76) 评论 (0) 编辑
摘要:圈套圈。该模板是uoj那道题的。 1 //#include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 #include<time.h> 5 //#include<math.h> 6 //#include<set> 7 #include<qu 阅读全文
posted @ 2018-07-11 22:14 Blue233333 阅读 (46) 评论 (0) 编辑
摘要:$n \leq 5e4$个平面上的点,从原点出发,能从当前点向左、右、上、左上或右上到达该方向最近的给定点。问三个问:一、最多经过多少点;二、前一问的方案;三、其所有方案种非左右走的边至少要开几辆挖掘机走完,挖掘机能从任意点出发,走路方式跟上面一样。 前两问: 纵坐标是增的可在不同层之间直接dp。同 阅读全文
posted @ 2018-07-10 18:37 Blue233333 阅读 (122) 评论 (0) 编辑
摘要:$n \leq 100000$个数字,放进$k$叉树里,一个点只能放一个数,使所有数字乘以各自深度这个值之和最小的同时,最大深度的数字最小。 哈夫曼。这是我刚学OI那段时间看到的,感觉就是个很无聊的贪心,而且密码学我也不学深对哈夫曼的应用也了解不多,没想到出现在noi。 原来的哈夫曼只需要每次拿k个 阅读全文
posted @ 2018-07-10 11:34 Blue233333 阅读 (62) 评论 (0) 编辑
摘要:$n \leq 500$,$2-n$这些数字,两个人挑,可以重复挑,问有几种方案中,一个人选的所有数字与另一个人选的所有数字都互质。 不像前两题那么抠脚。。 如果$n$比较小的话,可以把两个人选的数字对应的质因子状压一下,$f(i,j,k)$--前$i$个数,第一个人选状态$j$,第二个人选状态$k 阅读全文
posted @ 2018-07-10 07:18 Blue233333 阅读 (56) 评论 (0) 编辑
摘要:$n \leq 1000000$个相等或不等关系描述一些变量,问能否成立,多组数据。 走错片场?普及题误入noi 1 //#include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 //#include<math.h> 5 //#inclu 阅读全文
posted @ 2018-07-09 14:35 Blue233333 阅读 (83) 评论 (0) 编辑
摘要:$n \leq 250000$的树有边权,每次问:使$k$个点无法到达根节点至少要割边权总和多少的边。$k$总和$\leq 500000$。 虚树模板。 1 //#include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 //#includ 阅读全文
posted @ 2018-07-04 12:07 Blue233333 阅读 (69) 评论 (0) 编辑
摘要:$n \leq 8000$的数列,问不超过$m \leq 1e9$次操作后第一个数字最大是多少。操作:选一些数,把他们变成他们的平均值。需要保留$p \leq 3000$位小数,提供了一个小数高精度库。 太长懒得写了。。总之就是个斜率优化DP,然后有奇怪性质 原题解 基本能猜到定理八,十至今没理解Q 阅读全文
posted @ 2018-07-03 14:29 Blue233333 阅读 (159) 评论 (0) 编辑
摘要:$n \leq 500000$个区间,从中挑出一些,使得至少有一个点被$m$个选中区间包含,且选中区间长度的极差最小。 区间题死脑筋晚期:把区间按左端点排序,然后右端点用个优先队列来弹,然后需要维护下标相差$m$的数字差的最值,可以在$n^2$的时间完美拿到签到题的60分。 求极差嘛,就是关注最大最 阅读全文
posted @ 2018-07-02 19:36 Blue233333 阅读 (88) 评论 (0) 编辑
摘要:$n \leq 1e9,m \leq 1e9,k \leq 2000$,求$k$进制下$\frac{x}{y}$有多少种不同的纯循环数取值,$1 \leq x \leq n,1 \leq y \leq m$。纯循环数是指小数点后直接就开始循环,整数也算。 与上个题的丑陋相比这个题不知道美到哪里去。。 阅读全文
posted @ 2018-07-02 12:40 Blue233333 阅读 (126) 评论 (0) 编辑
摘要:$n,m \leq 1e9$,$n*m$的网格中有$c \leq 1e5$个是黑的,其他是白的。问:使至少两个白的不连通,最少需要再把几个白的涂黑。 可以发现答案是-1,0,1,2啦。-1要么没白的,要么一个白的,要么两个相邻白的。如果是两个不相邻白的答案就是0,这些可以特判掉。 其他的情况,可以建 阅读全文
posted @ 2018-07-01 21:57 Blue233333 阅读 (116) 评论 (0) 编辑