上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 61 下一页
摘要: 题目链接:http://lightoj.com/volume_showproblem.php?problem=1031思路:dp[i][j]表示从区间i-j中能取得的最大值,然后就是枚举分割点了。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define inf 1<<30 7 #define FILL(a,b) memset(a,b,sizeof(a)) 8 9 int dp[111][111],sum[111];10 int n,x;11 12 int dfs(int l,int r 阅读全文
posted @ 2013-10-06 15:40 ihge2k 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26864思路:首先是spfa预处理出每个'G'到'H'的最短距离,然后就是二分最大距离,最大匹配验证即可。PS:这道题一开始没什么思路,然后想先最简单的spfa预处理写一下吧,然后写着写着就突然豁然开朗,有思路了!然后就AC了! 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define MAXN 阅读全文
posted @ 2013-10-06 00:06 ihge2k 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26870思路:由于溢出问题,wa了半天,还以为构图错了呢,查了半天!一看到最大最小问题,就应该想到二分,二分最大距离,然后建图跑最大流验证。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define MAXN 222 8 #define MAXM 222222 9 #define inf 1que; 38 que.push... 阅读全文
posted @ 2013-10-05 20:27 ihge2k 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26869思路:题目还是比较水的,由于点也有容量,则必须拆点,然后跑最大流。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define MAXN 222 8 #define MAXM 222222 9 #define inf 1que; 38 que.push(vt); 39 level[vt]=0; 40 ... 阅读全文
posted @ 2013-10-05 18:45 ihge2k 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=25902 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 typedef long long ll; 7 #define FILL(a,b) memset(a,b,sizeof(a)) 8 9 ll dp[77][77];10 int n;11 char str[77];12 13 ll dfs(int l,int r)14 {15 if(dp[l][r]!=-1)... 阅读全文
posted @ 2013-10-05 15:59 ihge2k 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=25887题目大意:给定的一个某进制下的排列,问它的全排列有多少个能够整除给定的十进制下的数字k。思路:记忆化搜索,dp[state][r]表示在某状态下被k除余数为r有多少个。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define FILL(a,b) memset(a,b,sizeof(a)) 8 typedef long long ll; 9 阅读全文
posted @ 2013-10-05 14:24 ihge2k 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=25844思路:首先预处理出点在同一直线上的所有的点集状态(dp[i][j]),然后记忆化搜索。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define inf 1<<30 7 #define FILL(a,b) memset(a,b,sizeof(a)) 8 9 struct Point{10 int x,y;11 }point[17];12 13 int 阅读全文
posted @ 2013-10-05 09:46 ihge2k 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=25843思路:我们可以发现题目与点的X坐标没有关系,于是可以直接对y坐标进行排序,然后进行dp,dp[i][j]表示以j个区间覆盖前i个点的最大覆盖数。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define MAXN 111 7 #define FILL(a,b) memset(a,b,sizeof(a)) 8 9 int n,w,k,dp[MAXN][MAXN]. 阅读全文
posted @ 2013-10-04 20:28 ihge2k 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26868思路:拆点,容量为最多能跳的步数,然后设立一个超级源点,源点与各点两连边,容量为一开始的企鹅数,最后就是枚举汇点了,跑最大流验证即可。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define MAXN 222 9 #define MAXM 222222 10 #define inf 1que; 40... 阅读全文
posted @ 2013-10-04 17:02 ihge2k 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=25839思路:第一小问可以很快求出了,两个字符串的长度-LCS,然后第二问就要记忆化搜索了,dp[i][j][l]表示A串的前i个和B串的前j个组合,长度为l的组合数。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define MAXN 33 7 #define FILL(a,b) memset(a,b,sizeof(a)) 8 typedef long long ll 阅读全文
posted @ 2013-10-04 15:33 ihge2k 阅读(279) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 61 下一页