zoukankan      html  css  js  c++  java
  • [NOIP1999提高] CODEVS 1047 邮票面值设计(dfs+dp)

    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(" MAX=%d ",ANS);
    return 0;
    }

      

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

    1047 邮票面值设计

     

    1999年NOIP全国联赛提高组

     时间限制: 1 s
     空间限制: 128000 KB
     题目等级 : 钻石 Diamond
  • 相关阅读:
    【web性能优化】DNS解析与ip
    【web性能优化】雅虎军规
    【web性能优化】优化提纲及图片优化(慕课网笔记)
    【web性能优化】常用缓存方式(慕课网学习笔记)
    【前端】企业微信客户端调试
    【es6】es6使用集锦
    【前端】遇到的各种报错
    【前端】安装wampserver提示丢失MSVCR100.dll的解决方法
    【es6】将2个数组合并为一个数组
    【web】使用ionic搭建移动端项目 icon-radio 标签在ios下全部选中的问题
  • 原文地址:https://www.cnblogs.com/JSZX11556/p/4376571.html
Copyright © 2011-2022 走看看