dfs出邮票的各种面值,然后dp求解。

-------------------------------------------------------------------------------

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
 
#define rep(i,n) for(int i=0;i<n;++i) 
#define clr(x,c) memset(x,c,sizeof(x))
#define Rep(i,l,r) for(int i=l;i<=r;++i)
 
using namespace std;
 
const int maxn=40;
const int inf=5000000;
 
vector<int> ans;
int cur[maxn];
int ANS=0;
int ok[4000000];
int n,k;
int t=0;
 
void jud() {
int a=0; ok[0]=0;
while(ok[a]<=n) {
ok[++a]=inf;
   rep(i,k) {
    if(a<cur[i]) break;
    ok[a]=min(ok[a],ok[a-cur[i]]+1);
   }
}
if(--a>ANS) {
ANS=a;
ans.clear();
rep(i,k) ans.push_back(cur[i]);
}
}
 
void dfs(int x) {
if(x==k) jud();
else Rep(i,cur[x-1]+1,cur[x-1]*n+1) {
   cur[x]=i;
dfs(x+1);
}
}
int main()
{
freopen("test.in","r",stdin);
freopen("test.out","w",stdout);
scanf("%d%d",&n,&k);
dfs(cur[0]=1);
rep(i,ans.size()) printf("%d ",ans[i]);
printf("\nMAX=%d\n",ANS);
return 0;
}

-------------------------------------------------------------------------------

1047 邮票面值设计

1999年NOIP全国联赛提高组

 时间限制: 1 s
 空间限制: 128000 KB
 题目等级 : 钻石 Diamond

[NOIP1999提高] CODEVS 1047 邮票面值设计(dfs+dp)的更多相关文章

  1. 深搜+DP剪枝 codevs 1047 邮票面值设计

    codevs 1047 邮票面值设计 1999年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题目描述 Description ...

  2. codevs 1047 邮票面值设计

    /* 开始没啥好的思路 暴力吧 T的太严重 加了k>n的特判 结果没数据…..然后又暴力生成了几组答案 打表 然而有没有数据 华丽的爆零了 正解 回溯+DP 回溯生成k数组 然后DP找最优解更新 ...

  3. 【NOIP1999】邮票面值设计 dfs+dp

    题目传送门 这道题其实就是找一波上界比较麻烦 用一波 背包可以推出上界mx 所以新加入的物品价值一旦大于mx+1,显然就会出现断层,所以可以以maxm+1为枚举上界,然后这样进行下一层的dfs. 这样 ...

  4. 1047 邮票面值设计 (DFS+DP)

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

  5. NOIP1999邮票面值设计[搜索|DP]

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

  6. P1021 邮票面值设计(dfs+背包dp)

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

  7. Java实现 蓝桥杯VIP 算法提高 邮票面值设计

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

  8. P1021 邮票面值设计

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

  9. P1021 邮票面值设计——搜索+完全背包

    P1021 邮票面值设计 题目意思是你最多用n张邮票,你可以自己设定k种邮票的面值,每种邮票数量无穷,你最多能用这k种邮票在不超过n张的情况下,组合成的价值要求是从1开始连续的, 求最大能连续到多少: ...

随机推荐

  1. GDOI2015酱油记

    GDOI2015酱油记 今年的GDOI在北江举行,比赛前一天坐了5小时的车才到,幸好忍住了,没有在车上吐. Day 1 刚到电教楼,看完考室后,第一时间找厕所,结果发现只有一楼有厕所,坑爹我的考室在三 ...

  2. poj1543---完美立方(枚举)

    #include <stdio.h> #include <stdlib.h> int main() { int cube[101],n,i,a,b,c,d; for(i=1;i ...

  3. Netfilter-packet-flow.svg

    调试网络的方法:(Debugging the kernel using Ftrace)  $ watch -n1 -d sudo cat /proc/net/snmp$ watch -n1 -d su ...

  4. [置顶] Android系统移植与调试之------->如何修改Android设备状态条上音量加减键在横竖屏的时候的切换与显示

    这两天由于一个客户的要求,将MID竖屏时候的状态条上的音量键去掉.所以尝试修改了一下,成功了,分享一下经验. 先看一下修改后的效果图,如下所示 . 横屏的时候:有音量加减键 竖屏的时候:音量加减键被去 ...

  5. Git上手指南

    (写在最前:这篇随笔是我在学习git时参考资料+实践出来的,其中一些问题是在实践中遇到的,希望对大家有帮助,还有很多不完整的地方.如果有什么错误的地方欢迎随时向我提出来) 在Git教程之前,我们先来了 ...

  6. JavaScript之向文档中添加元素和内容的方法

    一.非DOM方法添加 1.document.write() <html xmlns="http://www.w3.org/1999/xhtml"> <head&g ...

  7. CRM需要注意的一些事,修改字段类型

    crm字段类型如果变了,比如文本类型变为查找类型,要新建命名跟原来不一样,千万不能删除以前的字段再建原来的一样的,那样如果导到正式系统会造成无法导入,执行sql失败, 切记切记.可以字段名后加2,或者 ...

  8. 基础知识——Cocos2d-x学习历程(三)

    1.场景与流程控制 我们把一些内容相对不变的游戏元素集合称作场景(scene),把游戏在场景之间切换的过程叫做流程控制(flow control). 在Cocos2d-x中,场景的实现是Scene. ...

  9. 安装爬虫scrapy

    使用easy_install安装scrapy,报错 error: Setup script exited with error: command 'gcc' failed with exit stat ...

  10. 关于 android Intent 传对象和对象数组的一些操作

    直接开正题,Intent传递值就是平常那些很简单的,接下来介绍传递 对象,和 对象数组 1 .intent 传递自定义的 对象 - 实体类继承  Serializable public class A ...