Stamps ans Envelope Sive UVA - 242
(
||{集合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的更多相关文章
- uva 242
242 - Stamps and Envelope Size Time limit: 3.000 seconds Stamps and Envelope Size Philatelists hav ...
- UVA - 242 Stamps and Envelope Size (完全背包+bitset)
题意:给你一些邮票面值的集合,让你选择其中一个集合,使得“能用不超过n枚集合中的邮票凑成的面值集合S中从1开始的最大连续面值”(即mex(S)-1)最大.如果有多解,输出集合大小最小的一个:如果仍有多 ...
- UVa 242 Stamps and Envelope Size (无限背包,DP)
题意:信封上最多贴S张邮票.有N个邮票集合,每个集合有不同的面值.问哪个集合的最大连续邮资最 大,输出最大连续邮资和集合元素. 最大连续邮资是用S张以内邮票面值凑1,2,3...到n+1凑不出来了,最 ...
- 【Uva 242】Stamps and Envelope Size
[Link]: [Description] 给你n个集合; 每个集合都包含一些不同面额的邮票; (每种邮票都当做有无限张) 然后给你一封信上最多能贴的邮票张数S; 问你,哪一个集合的邮票; 能够贴出来 ...
- 习题9-5 UVA 242
Stamps and Enovelope Size 题意: 给你最多贴S张邮票.有N个邮票集合,每个集合有不同的面值.问哪个集合的最大连续邮资最大,输出最大连续邮资和集合元素. 如果不止一个集合结果相 ...
- Uva 242 邮票和信封
题目链接:https://vjudge.net/contest/146179#problem/D 题意: 信封上最多贴S张邮票.有N个邮票集合,每个集合有不同的面值.问哪个集合的最大连续邮资最大,输出 ...
- uva242,Stamps and Envelope Size
这题紫薯上翻译错了 应该是:如果有多个并列,输出邮票种类最少的那个,如果还有并列,输出最大面值最小的那个 坑了我一个下午 dp[p][q]==1表示可以用不超过q张组成面额p 结合记忆化,p从1开始枚 ...
- UVA - 242 线性DP
题意:给定多种邮票的组合,邮票最多只能用S张,这些邮票能组成许多不同面额,问最大连续面额的长度是多少,如果有多个组合输出组合中邮票数量最少的,如果仍有长度一致的,输出邮票从大到小排序后字典序最大的那个 ...
- UVa 242 邮票和信封(完全背包)
https://vjudge.net/problem/UVA-242 题意: 输入s(每个信封能粘贴的最多邮票数量)和若干邮票组合,选出最大连续邮资最大的一个组合(最大连续邮资也就是用s张以内的邮票来 ...
随机推荐
- nginx access.log 忽略favicon.ico訪问记录的方法
favicon.ico 文件是浏览器收藏网址时显示的图标,当第一次訪问页面时.浏览器会自己主动发起请求获取页面的favicon.ico文件.当/favicon.ico文件不存在时,服务器会记录404日 ...
- Input系统—ANR原理分析(转)
一. 概述 当input事件处理得慢就会触发ANR,那ANR内部原理是什么,哪些场景会产生ANR呢. “工欲善其事必先利其器”,为了理解input ANR原理,前面几篇文章疏通了整个input框架的处 ...
- Linux安全应用之防垃圾邮件server的构建
Linux安全应用之防垃圾邮件server的构建 一.垃圾邮件产生的原因 垃圾邮件(SPAM) 也称作UCE(Unsoticited Commercial Email.未经许可的商业电子邮件)或UBE ...
- 初步认识Tensorflow
不多说,直接上干货! TensorFlow 是一个开源软件库,用于使用数据流图进行数值计算.换句话说,即是构建深度学习模型的最佳方式. Tensorflow的官网 https://www.tensor ...
- Eclipse中jvm执行库的Access restriction问题的解决方法
今天在写代码的时候遇到了jre system libraries的訪问限制问题,该库是jvm执行的依赖库rt.jar,解决方式例如以下: 步骤: (1)项目右击.出现Build Path.点击进入Ja ...
- 10 逻辑完善以及bug修复
进行到这里,我们应用开发已经接近尾声,我这里基本就是应用开发的记录过程,讲解的东西很少,有问题可以在评论区讨论呦.下面进入最后调整的阶段. 预览我们的应用,会发现首页的职位列表,也会显示收藏的星星图标 ...
- 2016/05/25 Ajax 跨域 转
起因: 起因是这样的,为了复用,减少重复开发,单独开发了一个用户权限管理系统,共其他系统获取认证与授权信息,暂且称之为A系统:调用A系统以B为例.在B系统 中用ajax调用A系统系统的接口(数据格式为 ...
- 2016/3/17 Mysq select 数学函数 字符串函数 时间函数 系统信息函数 加密函数
一,数学函数主要用于处理数字,包括整型.浮点数等. ABS(X) 返回x的绝对值 SELECT ABS(-1)--返回1 CEll(X),CEILING(x) 返回大于或等于x的最小整数 SELEC ...
- 使用ADO.NET对SQL Server数据库进行訪问
在上一篇博客中我们给大家简介了一下VB.NET语言的一些情况,至于理论知识的学习我们能够利用VB的知识体系为基础.再将面向对象程序设计语言的知识进行融合便可进行编程实战. 假设我们须要訪问一个企业关系 ...
- Error CREATEing SolrCore 'new_core': Unable to create core [new_core] Caused by: Can't find resource 'solrconfig.xml' in classpath or 'D:\solr\solr-7.2.1\server\solr\new_core'
\solr-7.2.1\server\solr\configsets\_default 下的conf 复制到: \solr-7.2.1\server\solr\new_core