算法提高 邮票面值设计
时间限制:1.0s 内存限制:256.0MB

问题描述
  给定一个信封,最多只允许粘贴N张邮票,计算在给定K(N+K≤13)种邮票的情况下(假定所有的邮票数量都足够),如何设计邮票的面值,能得到最大值MAX,使在1~MAX之间的每一个邮资值都能得到。

例如,N=3,K=2,如果面值分别为1分、4分,则在1分~6分之间的每一个邮资值都能得到(当然还有8分、9分和12分);如果面值分别为1分、3分,则在1分~7分之间的每一个邮资值都能得到。可以验证当N=3,K=2时,7分就是可以得到的连续的邮资最大值,所以MAX=7,面值分别为1分、3分。
输入格式
  一行,两个数N、K
输出格式
  两行,第一行升序输出设计的邮票面值,第二行输出“MAX=xx”(不含引号),其中xx为所求的能得到的连续邮资最大值。
样例输入
3 2
样例输出
1 3
MAX=7

多重背包

    for(int i=1;;i++){for(int j=0;j<=t&&i>=p[j];j++){d[i]=min(d[i],d[i-p[j]]+1);}

枚举空间,然后枚举物品。

#include <bits/stdc++.h>
using namespace std;
int d[1000];
int n,k;int maxs=0;
int tag[100],p[100];
void dfs(int t,int s)
{if(t==k) return ;int sum=1;p[t]=s;memset(d,10000,sizeof(d));d[0]=0;for(int i=1;;i++){for(int j=0;j<=t&&i>=p[j];j++){d[i]=min(d[i],d[i-p[j]]+1);}if(d[i]>n) break;sum=max(sum,i);}if(sum>maxs){for(int i=0;i<=t;i++){tag[i]=p[i];}maxs=sum;}for(int i=s+1;i<=sum+1;i++){dfs(t+1,i);}
}
int main()
{cin>>n>>k;dfs(0,1);for(int i=0;i<k;i++){cout<<tag[i]<<' ';}cout<<endl;cout<<"MAX="<<maxs<<endl;
}

算法提高 邮票面值设计相关推荐

  1. 算法提高 邮票面值设计 搜索 动态规划

    算法提高 邮票面值设计 时间限制:1.0s   内存限制:256.0MB 问题描述 给定一个信封,最多只允许粘贴N张邮票,计算在给定K(N+K≤13)种邮票的情况下(假定所有的邮票数量都足够),如何设 ...

  2. java 算法提高 邮票面值设计 蓝桥杯1046

    java 算法提高 邮票面值设计 蓝桥杯1046 算法提高 邮票面值设计 思路 代码 算法提高 邮票面值设计 Description 给定一个信封,最多只允许粘贴N张邮票,计算在给定K(N+K≤13) ...

  3. codevs 1047邮票面值设计

    codevs 1047邮票面值设计 刚看这题的时候就感觉是搜索,但是分类又是动态规划,就往动态规划那里想,结果就以为是那种一个递推式就出来的一个动态规划,后来写代码交上去发现都是错了,才感觉这里面肯定 ...

  4. P1021 邮票面值设计

    P1021 邮票面值设计 题目描述 给定一个信封,最多只允许粘贴N张邮票,计算在给定K(N+K≤15)种邮票的情况下(假定所有的邮票数量都足够),如何设计邮票的面值,能得到最大值MAX,使在1-MAX ...

  5. 2021.06.03邮票面值设计

    2021.06.03邮票面值设计 题目描述 给定一个信封,最多只允许粘贴 N 张邮票,计算在给定 K(N+K≤15)种邮票的情况下(假定所有的邮票数量都足够),如何设计邮票的面值,能得到最大值 MAX ...

  6. 邮票面值设计java,[蓝桥杯][算法提高VIP]邮票面值设计 (C++代码)

    解题思路: 注意事项: 参考代码://so easy #include #include//头文件 using namespace std; int a[17],n,k,ans[17],maxn;// ...

  7. codevs 1047 邮票面值设计

    ( 时间限制: 1 s  空间限制: 128000 KB) 题目描述 Description 给定一个信封,最多只允许粘贴N张邮票,计算在给定K(N+K≤40)种邮票的情况下(假定所有的邮票数量都足够 ...

  8. 邮票面值设计java,[洛谷P1021][题解]邮票面值设计

    0.序 偶然被老师强迫刷到了这样一道题,正好亿年没写题解了,来此练练手+摸鱼. 1.概述 基本思路:DFS暴力枚举+DP验证. 先DFS出来一个序列,然后DP出所有面值用到的最少邮票数. 设\(f[i ...

  9. 邮票面值设计java_邮票面值设计

    思路还是有一点点问题的.就是关于当前枚举的邮票的面值所能构成的最大值的求解: 假如最大的面值为\(k\),那么\(maxx\)达不到\(k\),不一定不合法,不能直接$return $. 大体思路: ...

最新文章

  1. 11.3-全栈Java笔记:线程的生命周期
  2. java 协程 实现 Akka
  3. select标签动态获取数据时如何控制下拉框长度
  4. C++使用链表实现queue之一(附完整源码)
  5. 小话设计模式三:发布/订阅模式
  6. 被问哭了,一位小姐姐的阿里面经!(附部分答案)
  7. Java 算法 素数分解
  8. html5的优势ie9,WebQQ升级支持IE9 充分运用HTML5优势
  9. Mydumper 多线程备份工具
  10. Hi3798 PWM输出控制背光
  11. Python字符串逆序输出
  12. C语言二叉树非递归遍历详解,C语言实现二叉树的递归遍历和非递归遍历
  13. Java中.setvalue(-1)_Java State.setValue方法代碼示例
  14. 如何在IPv6下观看网络电视直播
  15. C语言 | 条件运算符
  16. PS2 键盘 变 USB 键盘 设计图
  17. 计算机平面设计主要学什么 - 兔课网,兔课网:初学平面要怎么样构图?
  18. GraphQL学习笔记(GraphQL + Spring boot demo) part 1
  19. 大学生面试20个经典问题及回答思路
  20. oracle文章收藏

热门文章

  1. MQTT在Windows下搭建MQTT服务器
  2. No module named 'torch._C'
  3. Android中实现震动的方法
  4. pycharm:格式化python代码
  5. Opencv常见用法和常见错误(一)
  6. 解决某东对ip限制若兰(nolanjdc)无法获取短信验问题
  7. open flash chart2 php,open flash chart2 图表导出到PDF,服务端语言为PHP
  8. js输出php文件大小,前端js实现文件的断点续传 后端PHP文件接收
  9. 权力的游戏登录显示服务器上限,权力与纷争登录不了怎么办_权力与纷争服务器连不上解决办法_玩游戏网...
  10. 模拟电路基础秦世才_模拟电子技术基础碎片化-晶体管及放大电路基础