
动态规划
WGH_yesterday
这个作者很懒,什么都没留下…
展开
-
CUGB 1009 合唱队形 【DP】
http://acm.cugb.edu.cn/JudgeOnline/showproblem?problem_id=1009//56266 ylwh 1009 Accepted 184K 15MS C 0.63K 2011-08-15 10:41:47#incl原创 2011-08-15 10:42:25 · 629 阅读 · 0 评论 -
HDOJ 1248 寒冰王座【DP】【完全背包】
//4470320 2011-08-22 16:10:25 Accepted 1248 156MS 360K 536 B C 刷媛姐刷过的题#include #define T 101#define N 10001int a[4][N];int max(int x, i原创 2011-08-22 16:13:43 · 832 阅读 · 0 评论 -
hdoj 2067 小兔的棋盘【水】【dp】
#include #include #define MAX 40int main(){ long long flag[MAX][MAX]; for(int i=0; i<=35; i++) flag[0][i] = 1; for(int i=1; i<=35; i++) for(int j=1; j<=35; j++) if(i == j) flag[i][j]原创 2011-12-28 20:35:45 · 852 阅读 · 0 评论 -
hdoj 2571 命运 【DP】【水】
/*很水的dp,不过中间竟然把一个变量写错了,wa了好多次,纠结啊~~*/#include #include const int inf=~0U>>1;inline int max(int a, int b){ return a > b ? a : b;}int main(){ int f[22][1002], temp, t, n, m; scanf("%d",原创 2012-01-17 16:57:28 · 958 阅读 · 0 评论 -
hdoj 1058 Humble Numbers【dp】
#include int pos[4] = {1, 1, 1, 1};const int flag[4] = {2, 3, 5, 7};int mul[4] = {2, 3, 5, 7};int hum[5845] = {0, 1, 2};inline int getMin()//每次加入数列的数显然都是2,3,5或7乘以一个数,这个数必然要从数列中取,然后取最小值。{ int m原创 2012-01-17 15:07:17 · 832 阅读 · 0 评论 -
hdoj 1059 Dividing【DP-多重背包】
/*145153 2012-02-01 19:49:03 Accepted 3.3.1 218MS 220K 1270B G++ ylwh145151 2012-02-01 19:48:06 Accepted 3.3.1 187MS 220K 1242B G++ ylwh145150 2012-02-01 19:47:03 Pres原创 2012-02-01 19:53:02 · 1003 阅读 · 0 评论 -
hdoj 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活【DP-多重背包】【水】
#include #include #define MAX 200int f[MAX], v_max;int _max(int a, int b){ return a > b ? a : b;}void ZeroOnePack(int cost, int weight){ for(int v = v_max; v >= cost; v--) f[v] = _max(f[v], f原创 2012-02-01 20:44:30 · 1438 阅读 · 0 评论 -
hdoj 1133 Buy the Ticket 【DP】【java】【水】
import java.util.Scanner; import java.math.BigInteger; public class Main { public static void main(String[] args){ Scanner input = new Scanner(System.in); BigInteger[][] flag = new BigIntege原创 2011-12-31 21:10:12 · 975 阅读 · 0 评论 -
hdoj 2050 折线分割平面【DP】【水】
使折线的夹角尽可能小,这样可以看成一条射线,则最大的情况便是所有射线不平行,对于第n条折线,其一条边与前n-1条边相交可以增加2*(n-1)个区域,这条折线的头部又成一块,所以是2*(n-1)+1+f(n-1)#include int main(){ long long flag[10001] = {0, 2, 7}; for(int i=3; i<10001; i++) fl原创 2012-01-01 12:46:00 · 842 阅读 · 0 评论 -
hdoj 3466 Proud Merchants 【DP】【01背包】
因为剩余金额会对状态产生影响,所以应该先处理p-q较小的#include #include #include #define N 501#define M 5001typedef struct _node{ int p, q, v;}node;node s[N];int comp(const void *a, const void *b){ int m = ((node*)原创 2012-02-15 18:55:17 · 933 阅读 · 0 评论 -
hdoj 3496 Watch The Movie【二维背包】【DP】
/*不优化会超时~,OMG。。。*/#include #include #define N 105#define M 105#define L 1005int max(int a, int b){ return a > b ? a : b; }int f[M][L];int main(){ int t, n, m, l, w, v, ans; int i, j, k;原创 2012-02-15 16:33:51 · 736 阅读 · 0 评论 -
经典的01背包问题
对于动态规划,每个刚接触的人都需要一段时间来理解,特别是第一次接触的时候总是想不通为什么这种方法可行,这篇文章就是为了帮助大家理解动态规划,并通过讲解基本的01背包问题来引导读者如何去思考动态规划。本文力求通俗易懂,无异性,不让读者感到迷惑,引导读者去思考,所以如果你在阅读中发现转载 2011-08-21 20:47:56 · 2842 阅读 · 0 评论 -
POJ 3624 Charm Bracelet 【DP】【01背包】
//9210453 ylwh 3624 Accepted 216K 235MS C 397B 2011-08-22 14:05:30#include #define N 3403#define M 12881int a[M];int max(int x, int y)原创 2011-08-22 14:04:54 · 651 阅读 · 0 评论 -
CUGB 1032 登山 【DP】
//56274 ylwh 1032 Accepted 180K 0MS C 0.63K 2011-08-15 12:02:47#include #define N 102int main(){ int n, i, j, a[N], b[N], s[N], maxs;原创 2011-08-15 12:02:28 · 581 阅读 · 0 评论 -
CUGB 1050 拦截导弹 【DP】
水的都不好意思贴了//56275 ylwh 1050 Accepted 188K 0MS C 0.41K 2011-08-15 12:26:42#include #define N 26int main(){ int n, i, j, a[N], s[N],原创 2011-08-15 12:26:01 · 676 阅读 · 0 评论 -
HDOJ 2059 龟兔赛跑 【DP】
http://acm.hdu.edu.cn/showproblem.php?pid=2059//4427480 2011-08-16 15:40:49 Accepted 2059 15MS 176K 1191 B C ylwh!//4427520 2011-08-16原创 2011-08-16 15:46:32 · 1035 阅读 · 0 评论 -
ZOJ 1093 Monkey and Banana【DP】
//2630234 2011-08-16 20:29:30 Accepted 1093 C++ 0 180 ylwh@Unknown#include #include #include #include #include using namespace原创 2011-08-16 20:33:22 · 640 阅读 · 0 评论 -
ZOJ 2136 Longest Ordered Subsequence 【DP】
求最大上升子序列//2630318 2011-08-16 21:41:31 Accepted 2136 C 0 168 ylwh@Unknown#include #define N 1001int s[N], d[N];int main(){ int原创 2011-08-16 21:45:12 · 509 阅读 · 0 评论 -
ZOJ 1733 Common Subsequence【DP】
//2630526 2011-08-17 09:23:56 Accepted 1733 C 0 160 ylwh@Unknown#include #include #define N 999int main(){ int ans, t[N], k[N],原创 2011-08-17 09:33:31 · 543 阅读 · 0 评论 -
POJ 1163 The Triangle【DP】
//9193332 ylwh 1163 Accepted 408K 32MS GCC 366B 2011-08-19 14:48:37#include int s[5001];int main(){ int n, i, j, k, cnt; while(scanf("原创 2011-08-19 14:47:45 · 511 阅读 · 0 评论 -
POJ 1661 Help Jimmy 【DP ?】
话说,写的好差劲,好乱,中间老是写错。、思路就是从上往下模拟 T_ T, 貌似算法很挫。对于每块板设置属性,x1(左端点),x2(右端点), h(高度), t1(从起点到达左端点 的最短时间), t2(从起点到右端点的最短时间),将起点视为一块左右端点相同的板,地面视为左右原创 2011-08-21 13:40:18 · 982 阅读 · 2 评论 -
ZOJ 1074 To the Max【DP】【最大子段和】
//2635932 2011-08-22 10:48:57 Accepted 1074 C 0 200 刷媛姐姐刷过的题@Unknown#include #define N 101int n, map[N][N], row_sum[N];void input原创 2011-08-22 10:48:25 · 680 阅读 · 0 评论 -
ZOJ 1108 FatMouse's Speed【DP】【最大上升子序列】
//2636041 2011-08-22 12:42:06 Accepted 1108 C++ 0 204 刷媛姐姐刷过的题@Unknown#include #include #include #include #include using namesp原创 2011-08-22 12:41:20 · 870 阅读 · 0 评论 -
hdoj 1864 最大报销额 【DP】【01背包】【水】
题意理解错了,以为是单个物品不能超过600了#include #include #define N 31bool f[30*1000*100+1];int main(){ int flag, n, m, i, j, q, price, sum, pa, pb, pc; char type; float temp; while(scanf("%f%d", &t原创 2012-02-16 22:53:24 · 1027 阅读 · 0 评论