
动态规划
文章平均质量分 67
蘑菇小哲
在通往梦想的道路上奋力潜行
展开
-
BZOJ 1226: [SDOI2009]学校食堂Dining
1226: [SDOI2009]学校食堂DiningTime Limit: 10 Sec Memory Limit: 259 MBSubmit: 514 Solved: 311[Submit][Status][Discuss]Description小F 的学校在城市的一个偏僻角落,所有学生都只好在学校吃饭。学校有一个食堂,虽然简陋,但食堂大厨总能做出让同学们满意的菜肴。原创 2015-10-12 19:27:39 · 688 阅读 · 0 评论 -
POJ 2176 Folding
C#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;const int MAXN = 100 + 10;const int INF = 0x3f3原创 2015-04-07 22:25:26 · 909 阅读 · 0 评论 -
HDU 1074 Doing Homework(状态压缩 + DP)
Problem Description:Ignatius has just come back school from the 30th ACM/ICPC. Now he has a lot of homework to do. Every teacher gives him a deadline of handing in the homework. If Ignatius hands in原创 2015-03-14 13:17:24 · 643 阅读 · 0 评论 -
POJ 2923 Relocation(状态压缩+ 01背包)
DescriptionEmma and Eric are moving to their new house they bought after returning from their honeymoon. Fortunately, they have a few friends helping them relocate. To move the furniture, they onl原创 2015-03-13 18:20:37 · 551 阅读 · 0 评论 -
HDU 4283 You are the one(区间DP)
题目大意: The TV shows such as You Are the One has been very popular. In order to meet the need of boys who are still single, TJUT hold the show itself. The show is hold in the Small hall, so it attrac原创 2015-03-13 16:45:46 · 1123 阅读 · 0 评论 -
HDU 4301 Divide Chocolate(DP)
解题思路:预处理出所有答案,dp转移放何曾见代码#include #include #include #include #include #include #include #include #include #include #include #define LL long long using namespace std;const int mod = 1e8原创 2015-03-13 15:53:05 · 528 阅读 · 0 评论 -
HDU 4681 String(DP)
题目大意:给出三个字符串A, B, C,求最长的字符串D,使得D是A,B的公共子序列并且C是D的连续子串。解题思路: 预处理出A,B字符串的正向和反向公共子序列。然后枚举字符串C在A,B中出现的位置起点和终点,则ans为起点左边的最长公共子序列加上字符串C的长度加上起点右边的最长公共子序列。#include #include #include #include #inclu原创 2015-03-15 10:52:17 · 929 阅读 · 0 评论 -
HDU 3652 B-number(数位DP)
#include #include #include #include #include #include #include #include #include #include #define LL long long using namespace std;int dp[15][15][2][10];int bit[15];int dfs(int pos,int n原创 2015-02-23 15:19:38 · 735 阅读 · 0 评论 -
POJ 3252 round numbers(数位DP)
#include #include #include #include #include #include #include #include #include #include #include #define LL long long using namespace std;int dp[50][50][50];int bit[40];int dfs(int po原创 2015-02-23 15:18:10 · 710 阅读 · 0 评论 -
HDOJ 4545 魔法串 (简单DP)
题目大意: 小明和他的好朋友小西在玩一个新的游戏,由小西给出一个由小写字母构成的字符串,小明给出另一个比小西更长的字符串,也由小写字母组成,如果能通过魔法转换使小明的串和小西的变成同一个,那么他们两个人都会很开心。这里魔法指的是小明的串可以任意删掉某个字符,或者把某些字符对照字符变化表变化。如: 小西的串是 abba; 小明的串是 addba; 字符变化表 d原创 2015-01-22 19:10:10 · 610 阅读 · 0 评论 -
HDU 3249 Test for job (有向无环图上的最长路,DP)
解题思路:求有向无环图上的最长路,简单的动态规划#include #include #include #include #include #include #include #define LL long longusing namespace std;const int MAXN = 100000 + 10;const int MAXM = 1000000 + 1原创 2015-07-29 21:24:27 · 1061 阅读 · 0 评论 -
HDU 5378 Leader in Tree Land(2015 多校第7场 dp)
Leader in Tree LandTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 150 Accepted Submission(s): 54Problem DescriptionTree la原创 2015-08-12 09:47:35 · 750 阅读 · 0 评论 -
sgu 199 beautiful people(nlog 的LIS并输出路径)
#include #include #include #include #include #include #include #include #include using namespace std;const int MAXN = 100000 + 10;struct Node{ int a, b; int id; bool operator <原创 2015-07-20 16:28:40 · 478 阅读 · 0 评论 -
基于连通性状态压缩的动态规划问题
基于连通性状态压缩的动态规划问题转载 2015-10-11 12:25:15 · 1390 阅读 · 0 评论 -
BZOJ 2431: [HAOI2009]逆序对数列
2431: [HAOI2009]逆序对数列Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 1277 Solved: 746[Submit][Status][Discuss]Description对于一个数列{ai},如果有ii>aj,那么我们称ai与aj为一对逆序对数。若对于任意一个由1~n自然数组成的数列,可以很容易求出有多原创 2015-11-10 21:28:04 · 753 阅读 · 0 评论 -
BZOJ 2037: [Sdoi2008]Sue的小球(DP)
2037: [Sdoi2008]Sue的小球Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 530 Solved: 282[Submit][Status][Discuss]DescriptionSue和Sandy最近迷上了一个电脑游戏,这个游戏的故事发在美丽神秘并且充满刺激的大海上,Sue有一支轻便小巧的小船。然而,Sue的目原创 2015-10-04 14:32:41 · 618 阅读 · 0 评论 -
HDU 5009 Paint Pearls
Paint PearlsTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 2804 Accepted Submission(s): 890Problem DescriptionLee has a stri原创 2015-09-14 10:47:47 · 336 阅读 · 0 评论 -
BZOJ 3997: [TJOI2015]组合数学
3997: [TJOI2015]组合数学Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 428 Solved: 302[Submit][Status][Discuss]Description 给出一个网格图,其中某些格子有财宝,每次从左上角出发,只能向下或右走。问至少走多少次才能将财宝捡完。此对此问题变形,假设每个格子中有好原创 2015-09-25 19:58:24 · 401 阅读 · 0 评论 -
POJ 3280 Cheapest Palindrome(区间DP)
Cheapest PalindromeTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 6894 Accepted: 3344DescriptionKeeping track of all the cows can be a tricky task原创 2015-08-03 21:04:33 · 630 阅读 · 0 评论 -
HDU 3362 Fix(状压DP)
FixTime Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 916 Accepted Submission(s): 309Problem DescriptionThere are a few poin原创 2015-08-17 12:24:45 · 1024 阅读 · 0 评论 -
HDU 5289 Assignment(2015 多校第一场二分 + RMQ)
AssignmentTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 627 Accepted Submission(s): 318Problem DescriptionTom owns a comp原创 2015-07-22 10:16:07 · 742 阅读 · 0 评论 -
O(nlogn)的最长上升子序列并且记录所选择的数 模板
#include #include #include #include #include #include using namespace std;const int MAXN = 10000 + 10;int A[MAXN];int lis[MAXN];int f[MAXN];int stack[MAXN];int N;int main(){ while(sc原创 2015-07-20 16:37:02 · 887 阅读 · 1 评论 -
HDU 2089 不要62(数位dp)
解题思路:与HDU 3555一致。#include #include #include #include #include #include #include #include #include #define LL long long using namespace std;int dp[10][3];void init(){ dp[0][0] = 1; d原创 2015-02-23 11:59:42 · 705 阅读 · 0 评论 -
POJ 1141 括号匹配加强版
#include #include #include #include #include #include #include #include #include using namespace std;const int MAXN = 100 + 10;int dp[MAXN][MAXN];char s[MAXN];int path[MAXN][MAXN];void o原创 2015-02-10 18:01:53 · 661 阅读 · 0 评论 -
POJ 3254 简单状压DP
没什么可说的,入门级状压DP,直接撸掉#include #include #include #include #include #include #include #include #include #include #include #define LL long long#define FOR(i, x, y) for(int i=x;i<=y;i++)using原创 2014-11-20 18:54:16 · 724 阅读 · 0 评论 -
ZOJ 3822 Domination
解题思路: 简单的DP , 用DP[ i ] [ j ] [ k ] 表示第 i 天 覆盖了原创 2014-10-15 12:53:05 · 607 阅读 · 0 评论 -
ZOJ 3829 Known Notation
解题思路:贪心。如果数字个数不够先补够数字,然后只需要进行交换操作,每个不能运算原创 2014-10-13 18:09:15 · 553 阅读 · 0 评论 -
HDU 1160 FatMouse's Speed
ACM 动态规划原创 2014-09-04 19:55:10 · 517 阅读 · 0 评论 -
Codeforces #260(Div 2) D A lot of games(字母树+树形dp)
解题思路: 构建字母树,通过dfs判断原创 2014-08-11 10:49:30 · 647 阅读 · 0 评论 -
UVA 11584 (简单DP,类似括号匹配)
#include #include #include #include #include #define LL long long#define ull unsigned long long#define FOR(i,x,y) for(int i=x;i<=y;i++)using namespace std;const int INF = 100000000;const in原创 2014-07-26 13:53:03 · 678 阅读 · 0 评论 -
UVA 11400
基础的线性DP,状态转移方程 dp[i] = min(dp[j]原创 2014-07-26 13:31:57 · 684 阅读 · 0 评论 -
UVA 10162 Bin Packing(贪心)
解题思路: 比较基础的贪心题,不过很容易超时,我是采用计数排序的方式来查找。原创 2014-07-25 18:20:24 · 689 阅读 · 0 评论 -
POJ 1664 放苹果 解题报告
题目大意; 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。 解题思路:原创 2014-04-04 20:04:02 · 695 阅读 · 0 评论 -
POJ 1185炮兵阵地
解题思路:简单的状压DP,1表示放炮,预处理出每一行所有两个1间隔不小于2的状态,每一行的状态只和上面两行有关,因此可以枚举这三行的状态,用DP[i][j][k]表示第i行状态为k,第i-1行状态为j的数目,转移方程为dp[i][j][k] = max(dp[i][j][k], dp[i-1][l][j] +count(k));#include #include #includ原创 2014-11-21 19:30:27 · 822 阅读 · 0 评论 -
HDU 1078 FatMouse and Cheese(简单DP)
解题思路: 很水的DP,记得按照权值大小排序即可。#include #include #include #include #include #include #include #include #include #include #include #define LL long long#define FOR(i,x,y) for(int i=x;i<=y;i++)原创 2015-01-31 11:26:54 · 631 阅读 · 0 评论 -
HDU 3555 Bomb(数位DP)
解题思路:求0 到 N中含有49的数字的个数dp[i][0] 表示 长度 为 i 且不含49。dp[i][1] 表示长度为 i 且不含49 且最高位 为9dp[i][2] 表示长度为 i 且 含49;从高位到低位处理#include #include #include #include #include #include #include #include原创 2015-02-23 11:35:51 · 653 阅读 · 0 评论 -
POJ 2151 Check the difficulty of problems(dp,求概率)
题目大意:求每个队伍都至少做出一题,并且有人做题数大于等于N的概率。解题思路:dp[i][j][k]表示第i支队伍在前j道题中做出k道的概率。转移方程为: dp[i][j][k] = dp[i][j-1][k] * (1 - p[i][j]) + dp[i][j-1][k-1] * p[i][j];用s[i][j]表示第i支队伍作出的题目小于等于j的概率。则s[i][j]原创 2015-02-05 15:58:02 · 660 阅读 · 0 评论 -
HDU 3853 LOOPS(概率DP)
解题思路: 求期望,用逆推。用dp[i][j]表示在点(i,j)到终点所需要的期望能量,转移公式为:dp[i][j] = p1[i][j] * dp[i][j] + p2[i][j] * dp[i][j+1] + p3[i][j] * dp[i+1][j] + 2;化简得:dp[i][j] = (p2[i][j] * dp[i][j+1] + p3[i][j] * dp[i+1原创 2015-02-05 15:02:03 · 595 阅读 · 0 评论 -
HDU 4405 Aeroplane chess(概率DP)
题目大意:Hzz loves aeroplane chess very much. The chess map contains N+1 grids labeled from 0 to N. Hzz starts at grid 0. For each step he throws a dice(a dice have six faces with equal probability to f原创 2015-02-04 16:08:13 · 660 阅读 · 0 评论 -
POJ 3744 Scout YYF I(矩阵优化的概率DP)
解题思路:dp[i] = p * dp[i-1] + (1 - p) * dp[i-2]; 由于N比较大,dp[i]需要用矩阵快速幂求解。安全通过整段路的概率等于安全通过每一个两个炸弹区间的概率乘积。#include #include #include #include #include #include #include #include #include usin原创 2015-02-03 17:11:28 · 531 阅读 · 0 评论