摘要:
题面:https://www.luogu.org/problemnew/show/P1731 剪枝: 可行性剪枝: 1.为了保证严格大于,并且是整数,所以每一层的h,r最小是m-now+1 2.如果最后都选择能选的最大的,比n还小,return 3.如果最后都选择能选的最小的(这个可以预处理),比n 阅读全文
posted @ 2018-10-12 18:29
*Miracle*
阅读(214)
评论(0)
推荐(0)
摘要:
搜索: 一种基础的算法。 考察常见于NOIP 但是高级的搜索算法可能还会在省选出现。 50%以上的暴力都可以用搜索直接枚举来写。 但是,当数据规模不是很大的时候,搜索也可能成为正解。 (比如剪枝PK状压dp) 在搜索的基础上,可以衍生出最短路,而dp本质上,也是搜索的剪枝。 一、基础搜索算法 DFS 阅读全文
posted @ 2018-10-12 18:29
*Miracle*
阅读(431)
评论(0)
推荐(0)
摘要:
题面:https://www.luogu.org/problemnew/show/P1312 搜索无疑 剪枝: 1.交换的两个块颜色相同,跳过。 2.如果一个块的左边有块,那么这个块左移不优。 因为左边的这个块右移效果相同,但是字典序更优。 我的剪枝:1.如果一个颜色的块>=1且<=2,return 阅读全文
posted @ 2018-10-12 17:56
*Miracle*
阅读(359)
评论(0)
推荐(0)
摘要:
题面https://www.luogu.org/problemnew/show/P1092 肯定要从右到左,从上到下比较好处理。 必然记录一个数用过与否,某个字母是什么。 剪枝: 1.到了第三行,上面两个已经确定,可以判断。 2.往后预估。但是进位怎么考虑?? 没有关系!进位最多一位!! 如果对于已 阅读全文
posted @ 2018-10-12 17:47
*Miracle*
阅读(282)
评论(0)
推荐(0)
摘要:
我们经常要用到前缀和。 一维: for(int i=1;i<=n;i++) b[i]=b[i-1]+a[i]; 二维: for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) b[i][j]=b[i-1][j]+b[i][j-1]-b[i-1][j-1]+a[i][j 阅读全文
posted @ 2018-10-12 15:14
*Miracle*
阅读(7200)
评论(3)
推荐(5)
摘要:
题目大意: 一个有密码箱,数字是0~n-1,其中有若干个密码,密码的特点:若x是密码,y是密码,(x可以等于y)则(x+y)%n也是密码。 给一个n(<=10^14),一个k(k<=min(250000,n)),给k个数(a[k]<n),前k-1个数不是密码,第k个数是密码。 求在0~n-1中,最多 阅读全文
posted @ 2018-10-12 11:26
*Miracle*
阅读(374)
评论(3)
推荐(1)