题目

一道很经典的搜索题,可以锻炼搜索的能力,比如可以用dfs覆盖加dp的方式来寻找+更新答案。而且还可以通过在递归中增加数组的方式来辅助搜索。

#include <bits/stdc++.h>
using namespace std;
int n, k, ans[101000], maxn, tot, a[101000];
int ne(int pos, int maxnow)
{int dp[10100];memset(dp, 4, sizeof(dp));//dp设为最大值。 dp[0] = 0;for (int i = 1; i <= pos; i++)for (int j = a[i]; j <= a[pos] * n; j++)//dp判断需要几个数 dp[j] = min(dp[j - a[i]] + 1, dp[j]);for (int i = 1; i <= n * a[pos]; i++)if (dp[i] > n)//如果i不行了,说明i-1可以 return i - 1; return a[pos] * n;//返回最大值
}
void dfs(int pos, int maxnow)//覆盖数组
{if (pos == k + 1){if (maxnow > maxn){maxn = maxnow;for (int i = 1; i <= k; i++)//更新答案 ans[i] = a[i];}return;}for (int i = ans[pos - 1] + 1; i <= maxnow + 1; i++){a[pos] = i;//每一个位置都加以判断。 int maxx = ne(pos, maxnow);dfs(pos + 1, maxx);}
}
int main()
{             scanf("%d%d", &n, &k);dfs(1, 0);for (int i = 1; i <= k; i++)printf("%d ", ans[i]); puts("");printf("MAX=%d", maxn);
}             

转载于:https://www.cnblogs.com/liuwenyao/p/10863202.html

洛谷P1021邮票面值设计相关推荐

  1. 洛谷P1021 邮票面值设计

    DP+DFS 复杂度 O(玄学) 一道奇怪的题目,考场不一定能想得出来 首先证明1的必要性,显然,没有1无法表示出1,因此1是必要的 有了1之后,就有了一个枚举范围,对于一种邮票,它的面值要比前一个大 ...

  2. P1021 邮票面值设计

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

  3. 算法提高 邮票面值设计

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

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

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

  5. 2021.06.03邮票面值设计

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

  6. codevs 1047邮票面值设计

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

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

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

  8. 洛谷 P2725 邮票题解

    题目背景 给一组 N 枚邮票的面值集合(如,{1 分,3 分})和一个上限 K -- 表示信封上能够贴 K 张邮票.计算从 1 到 M 的最大连续可贴出的邮资. 题目描述 例如,假设有 1 分和 3 ...

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

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

最新文章

  1. /proc/diskstats各字段解析
  2. opencv和python是什么关系_opencv和python的区别
  3. 剑指offer03.数组中重复的数字
  4. Java内部类(Inner Class)小记
  5. 【整理】RPA选择器针对SAP系统的设置
  6. s5-11 距离矢量路由选择协议
  7. 21.55万元起的“电影周边”!现代漫威联名钢铁侠车型开售
  8. java 映射servlet,java – 将映射或对象从jsp传递到servlet
  9. linux下添加三菱触摸屏usb驱动,[转载]三菱触摸屏GT Works3和PLC GX Works2编程软件下载...
  10. 瑞星杀毒软件网络版介绍
  11. 球面投影 (立体和柱面的投影效果)
  12. 什么是rich text,富文本?富文本有什么优势?
  13. 软件测试中单元测试,集成测试,系统测试,验收测试的区别
  14. 浪漫的c语言表白代码1
  15. 用Python搞定豆瓣上征婚交友的小姐姐们~
  16. DQL、DML、DDL、DCL全称及含义
  17. ROUGE: A Package for Automatic Evaluation of Summaries
  18. 矩阵乘+概率DP bzoj2676 Contra
  19. Star CCM+多孔介质仿真(二)——阻力系数的计算和设置
  20. 坐标系统投影变换分带方法

热门文章

  1. 那是你的计算机怎么用英语表示,“I potato you”可不是“我土豆你”,那这个potato到底啥意思?...
  2. Xilinx K7_Microblaze的Tmrintc定时器中断使用(ISE14.7)
  3. 牛奶可乐经济学之Q8:为什么鲸鱼濒临灭绝,鸡却没有繁衍之忧?
  4. NPOI 导入导出和Excel版本,错误文件扩展名和文件的格式不匹配
  5. vs2015 web_2015年新的Web布局想法
  6. 大连医科大学中山学院模拟医院信息系统实验室建设完成
  7. 关于Catalan数
  8. PageHelper和PageInfo的使用
  9. 一行代码隐藏Linux进程
  10. 永恒之蓝黑脏牛提权范围