- 博客(12)
- 收藏
- 关注
原创 HDU-5724-组合博弈
题目大意:n行20列的棋盘,对于每行,如果当前棋子右边没棋子,那可以直接放到右边,如果有就跳过放到其后面的第一个空位子,A先操作,最后谁无法操作则输;题目解析:只有20列,我们通过状态压缩得出序列传入sg函数,写的时候会发现需要把从左往右的序列倒过来,详细看代码;AC代码:#include#include#include#include#includeusing name
2017-07-31 23:26:23 322
原创 HDU-1848-组合博弈
题目大意:有三堆石子,两个人轮流取一堆石子中只能为斐波那契数的石子,问最后谁赢;题目解析:预处理f函数和sg函数,直接把三堆石子的sg函数异或起来判断是否为0;AC代码:#include#include#include#include#includeusing namespace std;const int N=1010; int f[N];int sg[N];int
2017-07-31 22:40:03 230
原创 uva-10498-线性规划
题目大意:标准的线性规划,m个约束条件都是小于等于;题目解析:单纯形法模板;AC代码:#include #include #include using namespace std;const double dinf=1e10;const int MAX=55;int n,m,B[MAX],N[MAX];double A[MAX][MAX],b[MAX],c[MAX],
2017-07-29 14:31:23 355
原创 HDU-4609-FFT
题目大意:给定n条线段,任取三根,问能够组成三角形的概率;题目解析:首先三角形肯定是两边之后大于第三边,为此我们需要处理出任意两边的和以及方案数,朴素算法肯定是O(N^2)会超时,所以我们需要用到fft降到O(NlogN);然后预处理出前缀和,枚举每条边作为最大值的时候,需要剪去一个大,一个小的情况,两个都比它大的情况,和用到自身的情况;AC代码:#include#include#
2017-07-27 23:35:25 196
原创 hihocoder-1388-高精度fft
感谢师兄的blog终于让我初略得明白卷积,dft及fft可以用来干什么。。附上链接:http://blog.csdn.net/viphong/article/details/52665620其实就是求一个循环卷积,然后把他转化成求对应相关系数的最大值,因为卡精度,所以我们只能求得最大时的k值;AC代码:#include#include#include#include#inc
2017-07-27 21:22:25 419
原创 codeforces-827C-树状数组,同余定理
题目大意:给定一段DNA序列,和q个query,每次可以改变一个碱基,或者查询一个区间里面有多少个碱基与给定碱基序列(可以无限重复)相同;题目解析:首先因为匹配序列可以无限循环,所以可以根据位置%长度来确定一般性,因为如果一个碱基的位置mod (len)与匹配序列一个碱基的位置mod(len)一样,那么这个无限延长的碱基序列一定能匹配到第一个碱基,所以我们可以BIT来维护前缀和,根据碱基种类,
2017-07-27 21:15:38 489
原创 UvaLive-3700-lucas
题目大意:问第n+1层的杨辉三角所有数中有几个数是不能被p整除的;题目解析:根据lucas定理,要是(n,m)不能被p整除,则n和m转化成p进制后牵着每一位都必须大于等于后者;如果其中有一个不满足,那么就被p整除,所有我们只需要枚举n的每一位,设为a,ans*=ans+1;AC代码:#include #include #include #include #include
2017-07-25 23:01:04 280
原创 codeforces-832D-LCA,RMQ
题目大意:问一棵树上取三个点,可以任选一点为w,求u,v到w两条路径所重合的顶点数;题目解析:在线LCA;AC代码:#include #include #include #include using namespace std;const int N = 100010;const int M = 25;int dp[2*N][M]; //这个数组记得开到2*N,因为遍历
2017-07-25 15:32:21 431
原创 HDU-4547-离线LCA
题目大意:dos命令,每一步可以跳到任意子目录,但只能返回上一个根目录,问a,b之间最少需要几次dos操作;题目解析:采用离线lca,先建树,对于一个query中u和v,如果u=v,答案是0,如果v是u的祖先,答案是两者深度之差,如果u是v的祖先,答案是1,否则就是u到lca的距离再加一;AC代码:#include #include #include #include #inc
2017-07-25 15:24:35 355
原创 POJ-3207-TwoSAT
题目大意:一个圆上有m对点需要相连,连的方法可以在圆里外连,问是否可以使得两两连线不相交;题目解析:判断如果两个线段如果会有冲突,那么只能一个在里面一个在外面;AC代码:#include#include#include#include#include#include#includeusing namespace std;const int maxn=51010*2;c
2017-07-12 14:26:43 244
原创 HDU-1814-TwoSAT
题目大意:有(1,2),(3,4), ...(2n-1,2n),n对数,要在每对中选出一个共n个,并且满足m个约束条件,条件(a,b)表示ab不能同时被选,按字典序输出答案;题目解析:如果有a b有约束,那么建边A->B^1,B->A^1,字典序最后直接遍历输出;AC代码:#include#include#include#include#include#include#in
2017-07-12 12:47:51 219
原创 LA-3713-TwoSAT
题目大意:有ABC三个任务需要分配给n个宇航员,任务C没有限制,年龄大于等于平均年龄的可以分配A任务,否则是B任务,有m对宇航员互相讨厌,他们不能顾分配相同的方案,问是否可以找出一种方案。题目解析:如果相互讨厌的话,那么肯定不能够同时分配C,并且不能分配A和B,如果一个A一个B则不需要考虑;AC代码:#include#include#include#include#includ
2017-07-12 12:20:59 249
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人