(
||{集合x}表示x中元素1||x中元素2||...||x的最后一个元素
||(a,b)表示a||b
)

ans[i][j][k]表示考虑前i种邮票时取j个邮票能否得到面值k
ans[i][j][k]= ||{ans[i-1][j-p][k-p*a[i]]}(0<=p<=j,p*a[i]<=k)
ans[i][j][k]= ||(ans[i-1][j][k],ans[i-1][j-1][k-a[i],...,ans[i-1][j-p][k-p*a[i]])
ans[i][j-1][k-a[i]]= ||(ans[i-1][j-1][k-a[i],...,ans[i-1][j-p][k-p*a[i]])
因此
ans[i][j][k]= ||(ans[i-1][j][k],ans[i][j-1][k-a[i]]) j、k从小到大
因此
ans[j][k]= ||(ans[j][k],ans[j-1][k-a[i]]) i、j、k从小到大

 #include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int s,n;
struct Stamp
{
int data[],ans1,data1[];
int& operator[](int x)
{
return data[x];
}
int operator[](int x) const
{
return data[x];
}
void init()
{
memcpy(data1,data,sizeof(data1));
sort(data+,data+data[]+);
bool ans2[][];
bool ans[];
memset(ans,,sizeof(ans));
memset(ans2,,sizeof(ans2));
int i,j,k;
ans2[][]=true;
for(i=;i<=data[];i++)
for(j=;j<=s;j++)
for(k=data[i];k<=j*data[i];k++)
ans2[j][k]|=ans2[j-][k-data[i]];
for(i=;i<=s*data[data[]]+;i++)
for(j=;j<=s;j++)
ans[i]|=ans2[j][i];
for(i=;i<=s*data[data[]]+;i++)
if(ans[i]==false)
{
ans1=i-;
break;
}
}
friend bool operator<(const Stamp& a,const Stamp& b)
{
if(a.ans1>b.ans1)
return true;
else if(a.ans1<b.ans1)
return false;
if(a[]<b[])
return true;
else if(a[]>b[])
return false;
//int x[11],y[11];
//memcpy(x,a.data,sizeof(x));
//memcpy(y,b.data,sizeof(y));
//sort(x+1,x+x[0]+1);
//sort(y+1,y+y[0]+1);
int i;
for(i=a[];i>=;i++)
if(a[i]<b[i])
return true;
else if(a[i]>b[i])
return false;
return false;
}
void print()
{
printf("max coverage =%4d :",ans1);
for(int i=;i<=data[];i++)
printf("%3d",data1[i]);
puts("");
}
}st[];
int num_st;
int main()
{
int i,j;
scanf("%d",&s);
while(s!=)
{
num_st=;
scanf("%d",&n);
for(i=;i<=n;i++)
{
scanf("%d",&st[++num_st][]);
for(j=;j<=st[num_st][];j++)
scanf("%d",&st[num_st][j]);
st[num_st].init();
}
int temp=;
for(i=;i<=num_st;i++)
if(st[i]<st[temp])
temp=i;
st[temp].print();
scanf("%d",&s);
}
return ;
}

Stamps ans Envelope Sive UVA - 242的更多相关文章

  1. uva 242

    242 - Stamps and Envelope Size Time limit: 3.000 seconds  Stamps and Envelope Size  Philatelists hav ...

  2. UVA - 242 Stamps and Envelope Size (完全背包+bitset)

    题意:给你一些邮票面值的集合,让你选择其中一个集合,使得“能用不超过n枚集合中的邮票凑成的面值集合S中从1开始的最大连续面值”(即mex(S)-1)最大.如果有多解,输出集合大小最小的一个:如果仍有多 ...

  3. UVa 242 Stamps and Envelope Size (无限背包,DP)

    题意:信封上最多贴S张邮票.有N个邮票集合,每个集合有不同的面值.问哪个集合的最大连续邮资最 大,输出最大连续邮资和集合元素. 最大连续邮资是用S张以内邮票面值凑1,2,3...到n+1凑不出来了,最 ...

  4. 【Uva 242】Stamps and Envelope Size

    [Link]: [Description] 给你n个集合; 每个集合都包含一些不同面额的邮票; (每种邮票都当做有无限张) 然后给你一封信上最多能贴的邮票张数S; 问你,哪一个集合的邮票; 能够贴出来 ...

  5. 习题9-5 UVA 242

    Stamps and Enovelope Size 题意: 给你最多贴S张邮票.有N个邮票集合,每个集合有不同的面值.问哪个集合的最大连续邮资最大,输出最大连续邮资和集合元素. 如果不止一个集合结果相 ...

  6. Uva 242 邮票和信封

    题目链接:https://vjudge.net/contest/146179#problem/D 题意: 信封上最多贴S张邮票.有N个邮票集合,每个集合有不同的面值.问哪个集合的最大连续邮资最大,输出 ...

  7. uva242,Stamps and Envelope Size

    这题紫薯上翻译错了 应该是:如果有多个并列,输出邮票种类最少的那个,如果还有并列,输出最大面值最小的那个 坑了我一个下午 dp[p][q]==1表示可以用不超过q张组成面额p 结合记忆化,p从1开始枚 ...

  8. UVA - 242 线性DP

    题意:给定多种邮票的组合,邮票最多只能用S张,这些邮票能组成许多不同面额,问最大连续面额的长度是多少,如果有多个组合输出组合中邮票数量最少的,如果仍有长度一致的,输出邮票从大到小排序后字典序最大的那个 ...

  9. UVa 242 邮票和信封(完全背包)

    https://vjudge.net/problem/UVA-242 题意: 输入s(每个信封能粘贴的最多邮票数量)和若干邮票组合,选出最大连续邮资最大的一个组合(最大连续邮资也就是用s张以内的邮票来 ...

随机推荐

  1. 2016.3.15__H5页面实战__第七天

    假设您认为这篇文章还不错,能够去H5专题介绍中查看很多其它相关文章. 个人简书地址: dhttp://www.jianshu.com/users/5a2fd0b8fb30/latest_article ...

  2. 系统优化(一)Maven打包同一个jar有不同的:版本号+时间戳(解决思路)

    解决:maven仓库的ear里面有非常多个同样的jar(仅仅是包括不同的:版本号+时间戳) 问题描写叙述: 发现ear里面有非常多个同样的jar,仅仅是包括不同的:版本号+时间戳,例如以下图所看到的: ...

  3. 解决安装oracle11g r2时提示pdksh conflicts with ksh-20100621-2.el6.i686问题

    http://blog.csdn.net/linghao00/article/details/7943740 http://www.2cto.com/os/201306/218566.html 在Ce ...

  4. How To Configure a Redis Cluster on Ubuntu 14.04

    原文:https://www.digitalocean.com/community/tutorials/how-to-configure-a-redis-cluster-on-ubuntu-14-04 ...

  5. Office EXCEL 创建图片超链接打不开怎么办 Excel打开图片提示发生了意外错误怎么办

    如下图所示,点击超链接提示无法打开指定的文件   如果使用Office打开,则提示发生了意外错误   你需要先把IE浏览器打开,这样就可以打开了,并非是图像的相对位置不正确导致的.      

  6. Please enter a commit message to explain why this merge is necessary.

    Please enter a commit message to explain why this merge is necessary. 请输入提交消息来解释为什么这种合并是必要的 git 在pul ...

  7. axis client tomcat jsp调用最少jar

    tomcat调用和main方法调用不同在于引入的jar不一样.tomcat引入的jar是全部lib以下的jar包,main是project引入的jar.假设直接进行公布lib下的全部jar都会引入到p ...

  8. IPython与Jupyter notebook 安装与配置,插件扩展,主题,PDF输出

    基于 python2.7.13 32-bit版本安装 1.安装pyreadline https://pypi.python.org/pypi/pyreadline 下载对应的32位版本 安装Micro ...

  9. excel 学习

    最近越來越感覺到熟練運用office軟件是一門很深的學問,以前一直忽視了這個技能,因爲從來都不覺得這個有什麼技術難度.正是因爲這樣想,所以才一直沒能去好好研究使用這套工具.現在卻覺得有必要學習,在於: ...

  10. Linq To Entities中的动态排序

    换了工作有一个月了,一样的工作.一样的代码.一样的体力活仍就…… Linq To Entityes 也是不新玩意了,近半年来也一直与之打交道,但一直也没对其深究过.今天新加的功能要对所有列支持排序,这 ...