上一页 1 ··· 11 12 13 14 15
摘要: 题意:求不重叠的2段连续和的最大值。 状态定义f[i]为必选a[i]的最大连续和,mxu[i],mxv[i]分别为前缀和后缀的最大连续和。 注意:初始化f[]为0,而max值为-INF。要看好数据范围。 阅读全文
posted @ 2016-09-21 21:45 konjac蒟蒻 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 最基本的dfs。这代码理应超时的,我也不知为何AC了......打表我都放弃了,因为最大的数据真的要跑很久...... 阅读全文
posted @ 2016-09-19 21:47 konjac蒟蒻 阅读(468) 评论(0) 推荐(0) 编辑
摘要: 最开始我想的是全排列+枚举符号和括号的方法,但是我自己倒腾了很久还是打不对,只好向他人请教。正解很机智——直接随意将几个数“捆绑”在一起,值存在其中一个数上,其他数标记不可再选,直到只剩下一个数,再判断这个数是否为24。 阅读全文
posted @ 2016-09-18 22:20 konjac蒟蒻 阅读(1377) 评论(0) 推荐(0) 编辑
摘要: 题意:给一个n个点的图和一个n个点的树,求图和树上的点一一对应的方案数。(N<=17) 解法:1.在树的结构上进行tree DP,f[i][j]表示树上点 i 对应图上点 j 时,这个点所在子树的方案数。O(n^3)。 2.我们可以发现如果按这个定义进行DP,“一 一对应”的关系挺难保证。若枚举出全 阅读全文
posted @ 2016-09-16 14:41 konjac蒟蒻 阅读(497) 评论(0) 推荐(0) 编辑
摘要: 这题是在01背包问题的基础上,扩充了重量,需要用时间换空间。 思路: 1.仔细看题,注意到重量wi为a*2^b(a<=10,b<=30),很容易想到要按 b 分开做背包的DP。接下来的重点就是怎么使DP从b-1继承到b。 2.再仔细看题,发现只有一次询问,那么就可以在这个W上做文章——依W的大小进行 阅读全文
posted @ 2016-09-12 22:22 konjac蒟蒻 阅读(404) 评论(0) 推荐(0) 编辑
摘要: n个数,求一次逆序对。接着有m次修改操作,把每次输入的位置p的数之后<=它的数取出来,从小到大排序后再放回空位里,求逆序对。(N,M<=500,000 , Ai<=10^9)思路:1.往后修改就存后缀,而不是一般的前缀。存数 i 之后<=它的数的个数为s[i],用于后续求逆序对。2.修改时选出的数排 阅读全文
posted @ 2016-09-12 13:35 konjac蒟蒻 阅读(462) 评论(0) 推荐(0) 编辑
摘要: 有2种dfs的方法: 1.存下每个组的各个数和其质因数,每次对于新的一个数,与各组比对是否互质,再添加或不添加入该组。 2.不存质因数了,直接用gcd,更加快。P.S.然而我不知道为什么RE,若有好心人发现请教教我吧,谢谢~ :-) 下面附上方法1的AC代码—— 1 #include<cstdio> 阅读全文
posted @ 2016-09-09 21:27 konjac蒟蒻 阅读(744) 评论(0) 推荐(0) 编辑
摘要: 简单搜索,在n*n的矩阵中,问从起点是否可以到达终点,有些格子不可走,上下左右四个方向都可以走。(N<=100)1.bfs从起点开始走,直到走到终点或全部遍历过一次就结束。2.dfs要一走到终点就返回,否则4^n会TLE。由于询问“是否可到达终点”,就直接递归“是否可以走到点(x,y)点”的函数,也 阅读全文
posted @ 2016-09-09 13:55 konjac蒟蒻 阅读(554) 评论(0) 推荐(0) 编辑
摘要: 对于noi上的题有2种解法: 1.数据很小(N=100),可以直接打for循环枚举和判断。 2.不会“三分”,便用二分。利用“两根相差>=1”和 f(x1)*f(x2)<0,转换意思为[x,x+1]内不会包含两个根,这样枚举可以保证不漏解。因此,枚举一个个根所在的区间,再用二分枚举找出根。其中,若N 阅读全文
posted @ 2016-09-08 22:09 konjac蒟蒻 阅读(741) 评论(0) 推荐(0) 编辑
上一页 1 ··· 11 12 13 14 15