zoj 3905 dp

原创 2015年11月18日 19:15:09

给你n个数  两个人去取   每个数有两种价值 对应ai和bi   每次去两个数   b那他认为较大的  a那剩下的  问a拿的最大价值是多少  

dp【i】【j】表示前i个数    a拿j个的最大价值    很显然会想到 说对于i这种不一定a能拿到啊   其实 仔细想想   除了b认为最大价值对应的那个ai拿不到外   其余的都是和玉拿到的   

所以很显然   的然bi排个序    那么第一个就拿不到了   合一用来初始化数组  及dp【1】【0】 = 0;接下来就是转移方程了   对于dp【i】【j】  来说 可以i是可以拿 额可以不拿的   这就有  dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - 1] + num[i].ai);  这样问题解决了


#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
using namespace std;

int dp[1010][1010];
struct node
{
	int ai, bi;
}num[1010];
int cmp(node a, node b)
{
	return a.bi > b.bi;
}
int max(int a, int b)
{
	return a > b ? a : b;
}
int main()
{
	int T, i, j, n;
	scanf("%d", &T);
	while(T--)
	{
		scanf("%d", &n);
		for(i = 1; i <= n; i++)
		scanf("%d%d", &num[i].ai, &num[i].bi);
		sort(num + 1, num + 1 + n, cmp);
		
		memset(dp, 0, sizeof(dp));
		dp[1][0] = 0;
		for(i = 2; i <= n; i++)
		{
			for(j = 1; j * 2 <= i; j++)
			{
				dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - 1] + num[i].ai);
			}
		}
		printf("%d\n", dp[n][n/2]);
	}	
	return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

ZOJ 3905 Cake(dp)

Cake Time Limit: 4 Seconds      Memory Limit: 65536 KB Alice and Bob like eating cake ve...
  • u014737310
  • u014737310
  • 2015年10月12日 10:18
  • 265

ZOJ 3905 Cake (DP)

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3905 题意: A和B一共买了n(为偶数)块蛋糕, A和B的口味不...
  • weishengmingerfendou
  • weishengmingerfendou
  • 2015年10月12日 09:20
  • 263

zoj 3905 Cake(状压dp)

题目链接:zoj 3905 Cake代码#include #include #include using namespace std; const int maxn = 805;struct St...
  • u011328934
  • u011328934
  • 2015年10月22日 19:15
  • 626

zoj 1163 The Staircases 动态规划(dp)

zoj 1163 The Staircases 动态规划(dp)背包问题 滚动数组 空间复杂度优化
  • cherry_sun
  • cherry_sun
  • 2011年03月12日 23:42
  • 1328

ZOJ 1183 Scheduling Lectures(DP)

题意:有一门课,有N个主题需要被这门课覆盖,每个主题ti有一个上课所需时间,第i+1个主题必须在第i个主题被覆盖后才能被覆盖,并且每个主题必须在一节课内被上完,每节课有一个不高兴值,不高兴值的计算已经...
  • zxjcarrot
  • zxjcarrot
  • 2014年04月02日 12:55
  • 583

zoj1163 (很经典很好的DP)

啊啊啊啊啊啊短短不到30行代码看死我了,现在也没有完全理解,明天继续学习,DP之路还很长,ACM之路还很长 状态 dp[i][j] 表示有 i 个积木时 最后一列不大于j个积木的总和。 转移方程:...
  • lizy3838
  • lizy3838
  • 2016年02月05日 23:42
  • 148

ZOJ 3805 Machine(树形DP)

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3805 Machine Time Limit:...
  • asdfghjkl1993
  • asdfghjkl1993
  • 2014年08月25日 19:37
  • 593

动态规划:ZOJ1074-最大和子矩阵 DP(最长子序列的升级版)

解题心得: 1、是一个很明显的动态规划,但是一开始的思路有点混乱,所以在处理的时候可以参照一下的方法:               在输入的时候就将矩阵中的每一个数改写为前面I个数的和(这样才能...
  • yopilipala
  • yopilipala
  • 2017年06月24日 15:19
  • 438

ZOJ 3905 Cake

Cake Time Limit: 4 Seconds      Memory Limit: 65536 KB Alice and Bob like eating cake very muc...
  • jtjy568805874
  • jtjy568805874
  • 2015年10月13日 12:30
  • 225

HDU3905 Sleeping

Sleeping 题目链接:Click Here~ 题目分析:    又是一道DP题,每次都是一眼看穿,每次都是不会正确推出状态转移方程式。悲剧。。~-~    说有一个搞ACM的人,天天逃...
  • u010016150
  • u010016150
  • 2014年03月31日 20:09
  • 736
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:zoj 3905 dp
举报原因:
原因补充:

(最多只允许输入30个字)