|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 新年趣事之打牌(动态规划,背包,统计方案数)

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

Vijos P1071新年趣事之打牌

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

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

1071新年趣事之打牌——vijos

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

新年趣事之打牌----VIJOS_1071----01背包加强版

题目地址:http://www.vijos.org/Problem_show.asp?id=1071 From xiaomengxian 新年...

新年趣事之打牌----VIJOS_1071----01背包加强版

题目地址:http://www.vijos.org/Problem_show.asp?id=1071 From xiaomengxian 新年趣...

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

P1072新年趣事之债务 Accepted 标签:新年趣事[显示标签] 背景 在HNSDFZ的信息组里,Vivian Snow、...

【动态规划】Vijos P1121 马拦过河卒

题目链接:   https://vijos.org/p/1616 题目大意:   卒从(0,0)走到(n,m),只能向下或向右,不能被马一步碰到或走到马,有几种走法。 题目思路:   【动态规划】  ...

Vijos P1431 守望者的逃离(动态规划,贪心)

看起来不好下笔,明白思路了,就会变得很简单

Vijos P1098 合唱队形(动态规划,双重LIS)

分别求两次最长上升序列(LIS),计算出最长满足队形的人数,即可知要出列的人数

Vijos P1317 开心的金明(动态规划,01背包,NOIP)

所谓01背包,其实就是减去一定的开销,得到一定的收益,能理解f[j-v]+v*p,基本也就明白动规的基本原理了
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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