Luogu 3649(注意一下所有回文串个数是咋统计的)
1 |
|
Luogu 4287(注意一下你要知道遍历fail边就是遍历以这个字符为后缀的所有回文串)
1 |
|
JSK Colorful String (https://nanti.jisuanke.com/t/41389)
直接暴力啊,记录一个前缀和数组直接暴力找每个串的不同字符然后记录,因为只有26个小写字母
1 |
|
Luogu 3649(注意一下所有回文串个数是咋统计的)
1 | #include <bits/stdc++.h> |
Luogu 4287(注意一下你要知道遍历fail边就是遍历以这个字符为后缀的所有回文串)
1 | #include <bits/stdc++.h> |
JSK Colorful String (https://nanti.jisuanke.com/t/41389)
直接暴力啊,记录一个前缀和数组直接暴力找每个串的不同字符然后记录,因为只有26个小写字母
1 | #include <bits/stdc++.h> |
三分的话就是二分多了一点变化,首先要保证三分的东西是具有凸函数性质的,就像二分的东西具有单调性一样.
然后就是整数和浮点了,这里的话板子上是有一些区别的,浮点的话用eps去比,整数缩两边的边界
浮点板子
1 | #include <bits/stdc++.h> |
整数板子
1 | #include <bits/stdc++.h> |
N个数里面抽2M个数可以重复有多少种抽法
(n+m-1,n)这个东西可以背过
原先不重复就是(n,m)
1 | #include <bits/stdc++.h> |
题目大意是给你一个数列长度为N 1e5 然后让你找到任意一个X使得所有的数异或他之后最大的数最小
3
1 2 3
2
X=3
实际上这个有个规律就是如果当前位数都是1或者都是0那么分组两边再寻找,因为这样可以避免这一位出现,之后如果01都存在那么这一位一定有,那么返回min
1 | #include <bits/stdc++.h> |
题目大意是给定N个随从的生命与攻击,a张牌能够让生命值翻倍,b张牌能够让生命值与攻击力交换,问最终的场攻和为多少?
首先我们要按照hp-dmg降序排列,然后要知道如果要让场攻最大,那么心火一定是把所有的加在一个随从上,但是这个随从未知。我们算出前k个交换的场攻变化然后枚举心火给谁即可
1 | #include <bits/stdc++.h> |