|Vijos|动态规划|P1071 新年趣事之打牌

原创 2016年08月28日 19:27:10

https://vijos.org/p/1071

01背包+输出最优解,在丢失牌的重量中进行01背包

#include<iostream>
#include<cstdio>  
#include<cstring>   
#include<algorithm> 
#define ms(i,j) memset(i, j, sizeof(i)); 
using namespace std;
int w[105];
int f[100005];
int g[100005];
int vi[105];
int TotalW, n;
void pri(int t)
{
	if (t==0) return ;
	for (int i=n;i>0;i--)
	{
		if (!vi[i]&&t-w[i]==g[t])
		{
			vi[i] = true;
			pri(g[t]);
			printf("%d ", i);
		}
	}
}
int main()  
{
	scanf("%d%d", &TotalW, &n);
	TotalW = -TotalW;
	for (int i=1;i<=n;i++)
	{
		scanf("%d", &w[i]);
		TotalW += w[i]; 
	}
	ms(f,0); ms(g,0); f[0] = 1;
	for (int i=1;i<=n;i++)
	for (int j=TotalW;j>=w[i];j--)
	{
		f[j] += f[j-w[i]];
		if(f[j-w[i]] > 0)
		g[j] = j-w[i];
	}
	ms(vi,0);
	if (f[TotalW]>1) printf("-1\n");
	else if (f[TotalW]==0) printf("0\n");
	else pri(TotalW);
    return 0;  
}  


版权声明:博客停更,请到"再见,CSDN"文章中找新博客地址

Vijos P1071新年趣事之打牌

链接:https://vijos.org/p/107 问题描述 过年的时候,大人们最喜欢的活动,就是打牌了。xiaomengxian不会打牌,只好坐在一边看着。 这天,正当一群人打牌打得起劲...
  • shiqi226
  • shiqi226
  • 2016年08月19日 21:37
  • 184

Vijos P1071 新年趣事之打牌(动态规划,背包,统计方案数)

状态转移方程中已经考虑了所有的方案数,所以只要将求最大值是的max换成sum,就可以实现方案数的统计。 因为要输出未现在的牌的序号,所以另设数组c,记录当达到重量j时,所需要用的牌号...
  • qq_35855297
  • qq_35855297
  • 2016年08月19日 14:55
  • 304

vijos 1071 新年趣事之打牌

01背包问题,要求能否填满整个背包,由于要求出那几张牌丢失,所以不能使用滚动数组.. 这种情况下把dp[0][0]置0,其他的置为无穷小,再进行普通的01背包. 如果dp[N][TotalW] != ...
  • zxjcarrot
  • zxjcarrot
  • 2014年03月25日 18:19
  • 519

1071新年趣事之打牌——vijos

一个基础背包问题的变形 有机结合01背包(类似)   装箱问题 个人觉得函数名有点赞。。 先跑一个装箱问题 判断能否输出-1 或者 0  只是将原来装箱问题的bool型换成int   记录下到达当...
  • leijp1430
  • leijp1430
  • 2015年02月08日 10:30
  • 223

新年趣事之打牌

【问题描述】 过年的时候,大人们最喜欢的活动,就是打牌了。xiaomengxian不会打牌,只好坐在一边看着。 这天,正当一群人打牌打得起劲的时候,突然有人喊道:“这副牌少了几张!”众人一数,果然...
  • zyq_19960204
  • zyq_19960204
  • 2016年05月05日 20:49
  • 189

1071.新年趣事之打牌

标签:动态规划 背包新年趣事 描述 过年的时候,大人们最喜欢的活动,就是打牌了。xiaomengxian不会打牌,只好坐在一边看着。 这天,正当一群人打牌打得起劲的时候,...
  • Code_Mart
  • Code_Mart
  • 2016年12月17日 18:50
  • 177

新年趣事之打牌

新年趣事之打牌 ★   输入文件:bagb.in   输出文件:bagb.out   简单对比 时间限制:1 s   内存限制:128 MB 【题目描述】     过年的时候,大人们最...
  • yhb1216776494
  • yhb1216776494
  • 2013年06月22日 19:13
  • 657

新年趣事之债务vijos

背景 在HNSDFZ的信息组里,Vivian Snow、Charles和Sunnypig之间有着一种奇怪的债务关系:Vivian Snow欠了Charles一百块钱,Charles欠了Sunny...
  • weixin_40912238
  • weixin_40912238
  • 2017年12月10日 10:47
  • 13

vijos 1069 新年趣事之红包(区间DP)

题目:https://vijos.org/p/1069 题意:给你一个凸包,问遍历所有点一遍的最短路径 分析:由于图形是一个凸包,所以肯定是选一个点,然后从两端不断拓展出去,假设已经拓展[i , ...
  • fp_hzq
  • fp_hzq
  • 2013年05月18日 20:43
  • 2051

Vijos P1072-新年趣事之债务【物理】

P1072新年趣事之债务 Accepted 标签:新年趣事[显示标签] 背景 在HNSDFZ的信息组里,Vivian Snow、...
  • qq_29600137
  • qq_29600137
  • 2016年11月21日 15:03
  • 238
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:|Vijos|动态规划|P1071 新年趣事之打牌
举报原因:
原因补充:

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