随笔分类 -  动态规划之dp

摘要:题意:一个数,每个节点取值是1 d,父亲比儿子节点值要大,求方案数 题解:$dp[u][x]=\prod_{v}\sum_{i=1}^xdp[v][i]$,v是u的子节点,先预处理出前3000项,如果d大于3000,用这些结果插值即可 // pragma GCC optimize(2) // pra 阅读全文
posted @ 2019-07-01 20:00 walfy 阅读(138) 评论(0) 推荐(0)
摘要:题意:windy有 N 条木板需要被粉刷。 每条木板被分为 M 个格子。 每个格子要被刷成红色或蓝色。 windy每次粉刷,只能选择一条木板上一段连续的格子,然后涂上一种颜色。 每个格子最多只能被粉刷一次。 如果windy只能粉刷 T 次,他最多能正确粉刷多少格子? 一个格子如果未被粉刷或者被粉刷错 阅读全文
posted @ 2019-02-27 15:09 walfy 阅读(157) 评论(0) 推荐(0)
摘要:题意:求有多少个逆序对为k的排列 题解:$dp[i][j]$表示1~i的排列中有j个逆序对的方案数,转移就是把i放在1~i 1的排列中的第几位,$dp[i][j]=\sum_{x=0}^{min(i 1,j)}dp[i 1][j x]$,前缀和随便优化下就O(n^2)了 / Problem: 243 阅读全文
posted @ 2019-02-26 19:55 walfy 阅读(200) 评论(0) 推荐(0)
摘要:题意:在N行M列的棋盘上,放若干个炮可以是0个,使得没有任何一个炮可以攻击另一个炮。 请问有多少种放置方法,中国像棋中炮的行走方式大家应该很清楚吧. 题解:dp[i][j][k]表示到了第i行,有j列含1个炮,k列含2个炮,转移随便搞就行了 阅读全文
posted @ 2018-09-30 19:43 walfy 阅读(134) 评论(0) 推荐(0)
摘要:有n根木棍, 第i根木棍的长度为Li,n根木棍依次连结了一起, 总共有n-1个连接处. 现在允许你最多砍断m个连接处, 砍完后n根木棍被分成了很多段,要求满足总长度最大的一段长度最小, 并且输出有多少种砍的方法使得总长度最大的一段长度最小. 并将结果mod 10007。 题解:先二分求最大长度的最小 阅读全文
posted @ 2018-05-23 22:46 walfy 阅读(202) 评论(0) 推荐(0)
摘要:这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大。注意:选出的k个子矩阵不能相互重叠。 题解:m很小分类讨论,m==1时怎么搞都可以,m==2时,dp[i][j][k]表示第一列枚举到i,第二列枚举到j,花了k次操作的最大子矩阵和,然后转移有三种一种是只转移i,一种是只 阅读全文
posted @ 2018-05-22 19:41 walfy 阅读(154) 评论(0) 推荐(0)
摘要:硬币购物一共有4种硬币。面值分别为c1,c2,c3,c4。某人去商店买东西,去了tot次。每次带di枚ci硬币,买si的价值的东西。请问每次有多少种付款方法。 很像多组背包,但是范围太大没办法背,由于每次查询,都是对同一种ci来操作的,考虑先预处理出不包含硬币数量限制的方案数,然后对于每次查询,可以 阅读全文
posted @ 2018-05-09 15:39 walfy 阅读(144) 评论(0) 推荐(0)
摘要:https://www.lydsy.com/JudgeOnline/problem.php?id=1030 求长度为m不包含n个子串的种数, 跑完ac自动机之后没办法跑矩阵快速幂,因为状态数比较大(6000),所以dp转移,dp[i][j]表示前i个跑到j状态的不包含子串的情况数 //#pragma 阅读全文
posted @ 2018-04-27 20:48 walfy 阅读(199) 评论(0) 推荐(0)
摘要:http://codeforces.com/contest/940 A水题 //#pragma comment(linker, "/stack:200000000") //#pragma GCC optimize("Ofast,no-stack-protector") //#pragma GCC t 阅读全文
posted @ 2018-04-11 20:33 walfy 阅读(157) 评论(0) 推荐(0)
摘要:http://codeforces.com/contest/938 A:sb题 //#pragma comment(linker, "/stack:200000000") //#pragma GCC optimize("Ofast,no-stack-protector") //#pragma GCC 阅读全文
posted @ 2018-03-15 16:42 walfy 阅读(176) 评论(0) 推荐(0)
摘要:A:sb题,多特判几下就好了 //#pragma comment(linker, "/stack:200000000") //#pragma GCC optimize("Ofast,no-stack-protector") //#pragma GCC target("sse,sse2,sse3,ss 阅读全文
posted @ 2018-03-03 14:46 walfy 阅读(194) 评论(0) 推荐(0)
摘要:A:水题 //#pragma comment(linker, "/stack:200000000") //#pragma GCC optimize("Ofast,no-stack-protector") //#pragma GCC target("sse,sse2,sse3,ssse3,sse4,p 阅读全文
posted @ 2018-02-02 18:59 walfy 阅读(179) 评论(0) 推荐(0)
摘要:http://codeforces.com/contest/710 A:水题 #include<bits/stdc++.h> #define fi first #define se second #define mp make_pair #define pb push_back #define pi 阅读全文
posted @ 2018-01-18 10:27 walfy 阅读(206) 评论(0) 推荐(0)
摘要:A:水题,模拟即可 #include<bits/stdc++.h> #define fi first #define se second #define mp make_pair #define pb push_back #define pii pair<int,int> #define C 0.5 阅读全文
posted @ 2017-12-05 21:01 walfy 阅读(145) 评论(0) 推荐(0)
摘要:A:水,直接遍历就好了 #include<bits/stdc++.h> #define fi first #define se second #define mp make_pair #define pb push_back #define pii pair<int,int> #define C 0 阅读全文
posted @ 2017-11-19 14:59 walfy 阅读(197) 评论(0) 推荐(0)
摘要:先对b从小到大sort,判断b是不是比sqrt(n)大,是的话就直接暴力,不是的话就用dp维护一下 dp【i】表示以nb为等差,i为起点的答案,可以节省nb相同的情况 #include<bits/stdc++.h> #define fi first #define se second #define 阅读全文
posted @ 2017-10-10 17:00 walfy 阅读(162) 评论(0) 推荐(0)
摘要:A:n个数,看能不能找出只有两种数,而且数量相同 #include<bits/stdc++.h> #define fi first #define se second #define mp make_pair #define pb push_back #define pii pair<int,int 阅读全文
posted @ 2017-09-26 16:51 walfy 阅读(149) 评论(0) 推荐(0)
摘要:dp[i][j] 第i轮得分为j的情况sum为dp[i-1][j]的前缀和dp[i][j]= ∑dp[i-1][l](l-2*k<j,j<l+2*k) 最后枚举的时候只需要记录从0到2*k*t的dp和偏移和(即最后的sum)的乘积 #include<map> #include<set> #inclu 阅读全文
posted @ 2017-08-16 15:23 walfy 阅读(197) 评论(0) 推荐(0)
摘要:直接套公式+ 假设除去第k个人。 0, 1, 2, 3, ..., k-2, k-1, k, ..., n-1 //original sequence (1) 0, 1, 2, 3, ..., k-2, , k, ..., n-1 //get rid of kth person (2) k, k+1 阅读全文
posted @ 2017-08-02 08:47 walfy 阅读(217) 评论(0) 推荐(0)
摘要:https://vjudge.net/contest/68966#problem/J 输出技巧很重要,也可以使用栈来保存后输出。 刚开始做就是没想到要排序 阅读全文
posted @ 2017-03-17 09:29 walfy 阅读(106) 评论(0) 推荐(0)