acgo题库
  • 首页
  • 题库
  • 题单
  • 竞赛
  • 讨论
  • 排行
  • 团队
  • 备赛专区

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
登录
注册
题目详情题解(0)讨论(0)提交记录(0)
  • 【正经题解】邮票面值设计

    dpdpdp fff [ iii ]为拼 iii 所需的最少数的个数 状态转移方程: fff [ iii ]: =min=min=min ( fff [ iii ], fff [ j−aj-aj−a [ iii ]] +1+1+1 ) 边界: fff [ 000 ]: =0=0=0 ; dfsdfsdfs 搜索数的种数,每次取数取从上次取的数 +1+1+1 到之前取的数能拼到的最大 +1+1+1 ,并通过 dpdpdp 求出如今所能取到得最大值

    userId_undefined

    AC君

    倔强青铜管理员
    45阅读
    0回复
    1点赞
  • ;;;;

    #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #include <cmath> #include <string> using namespace std; int n,k,a[20],f[10010],ans,print[20]; const int inf = 0x7ffffff; void gengxin() { int i = 1; f[1] = 1; while (1) { f[i] = inf; for (int j = 1; j <= k && i - a[j] >= 0; j++) f[i] = min(f[i],f[i - a[j]] + 1); if (f[i] > n) break; i++; } i--; if (i > ans) { ans = i; for (int j = 1; j <= k; j++) print[j] = a[j]; } } void dfs(int depth,int minn) { if (depth > k) { gengxin(); return; } for (int i = minn + 1; i <= minn * n + 1; i++) { a[depth] = i; dfs(depth + 1,i); a[depth] = 0; } } int main() { scanf("%d%d",&n,&k); a[1] = 1; dfs(2,1); for (int i = 1; i <= k; i++) printf("%d ",print[i]); printf("\n"); printf("MAX=%d",ans); return 0; }

    userId_undefined

    C++小红帽

    40阅读
    0回复
    1点赞
  • 题解

    法兰西PE了?

    userId_undefined

    dchk-SY

    秩序白银
    37阅读
    0回复
    0点赞
  • A82.邮票面值设计

    点赞!!! 关注!!!

    userId_undefined

    老登转世

    0阅读
    0回复
    0点赞
首页