上一页 1 2 3 4 5 6 7 8 ··· 11 下一页
摘要: 第一题:贪吃蛇(snake) 本题其实就是判断一个有向图中有没有环,做一次拓扑排序就可以了,如果所有点都入队了,就表示没有环,否则就有环。或者就是dfs一次,每个点只需要被访问一次,这样也是O(n)的。 第二题:营养计划(egg) 本题可以使用递推方法解决,应用堆积木的思想。 记f[i,j]为将i个 阅读全文
posted @ 2016-06-14 20:23 Yangjiyuan 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 单调队列扫描,记录当前区间长度为d的一段的和的最大值,和当前区间和。 阅读全文
posted @ 2016-05-31 22:27 Yangjiyuan 阅读(130) 评论(0) 推荐(0) 编辑
摘要: dfs,连边,边权为比值,赋值搜索,遇到矛盾时退出 阅读全文
posted @ 2016-05-31 20:37 Yangjiyuan 阅读(211) 评论(1) 推荐(0) 编辑
摘要: 暴力 阅读全文
posted @ 2016-05-31 19:31 Yangjiyuan 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 记忆化搜索 阅读全文
posted @ 2016-05-31 19:30 Yangjiyuan 阅读(117) 评论(0) 推荐(0) 编辑
摘要: #include #include #include #include #include #include #include using namespace std; int xx[5]={0,0,1,-1}, yy[5]={1,-1,0,0}; int bg,ed,h,x,y; int t,w=1; bool ans[5][5],mark[100010]; ... 阅读全文
posted @ 2016-05-31 19:29 Yangjiyuan 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 二维树状数组 阅读全文
posted @ 2016-05-30 14:49 Yangjiyuan 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 可以发现加减号之间可以互相抵消. 真正加到答案里的只有一些前缀积. 记s[i]为a[1]*a[2]*a[3]...*a[i].那s[i]在答案中出现的次数就是2*3^(n-i-1); 修改一个数只会对后面的数有影响. 预处理逆元然后用线段树维护即可. #include<iostream> #incl 阅读全文
posted @ 2016-05-23 14:51 Yangjiyuan 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 由于脑洞的序列不会改变,考虑用线段树维护区间内sum,左边0的个数,右边0的个数,区间内最大脑洞。对于查询l~r最大脑洞可以将l~r分成logn个区间,总复杂度O(nlogn)。 阅读全文
posted @ 2016-05-23 14:48 Yangjiyuan 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 设S(n,k)=Σ C(n,i) i=0..k 根据lucas定理可以得到 S(n,k) mod p = [ S(n/p,k/p-1)*S(n mod p,p-1)+C(n/p,k/p)*S(n mod p,k mod p) ] mod p 除法均向下取整 预处理0≤n,k<P的C,S值,根据上式递 阅读全文
posted @ 2016-05-23 14:47 Yangjiyuan 阅读(335) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 11 下一页