题意是给你一定数目的1,2,5分的硬币,让你找出不能被这些硬币表示的最小价值。

标准解法是母函数,这个我算法分享讲堂中讲过,
具体可以看我另一篇博客

生成函数入门

#include <stdio.h>
#include <string.h>
const int MAX=8000;
int main()
{  int z,max,c1[MAX+5],c2[MAX+5],num[4],money[4]={0,1,2,5};  while(scanf("%d%d%d",&num[1],&num[2],&num[3]),num[1]||num[2]||num[3])  {  memset(c1,0,sizeof(c1));  memset(c2,0,sizeof(c2));  c1[0]=1;  max=0;  for(int i=1;i<=3;i++)  {  max += money[i]*num[i];  for(int j=0;j<=max;j++)  {  for(int k=0;k<=num[i] && j+k*money[i]<=max;k++)  {  c2[j+k*money[i]] += c1[j];  }  }  memcpy(c1,c2,sizeof(c2));  memset(c2,0,sizeof(c2));  }  for(int i=1;;i++)  {  if(!c1[i])  {  printf("%d\n",i);  break;  }  }  }  return 0;
}  

当然,此题用母函数并不是最好解法。最好解法如下,
稍加分析可知,面值大的不能表示面值小的,所以我们要先考虑面值小的硬币。

如果1-4分可以全部被表示,那么它可以表示当前硬币的所有组合。那么结果就应该是所有硬币价值总和加一。

如果1-4分不可以全部被表示,那么它所不能表示的最小价值就应该是这1-4分中不可以被表示的最小价值。
代码如下:

#include <stdio.h>
int main()
{  int a,b,c;  while(scanf("%d%d%d",&a,&b,&c),a||b||c)  {  if(a==0)  printf("1\n");  else if(a+2*b<4)  printf("%d\n",a+2*b+1);  else  printf("%d\n",a+2*b+5*c+1);  }  return 0;
}  

当然,由于比赛开始前ldq为了强行降低比赛难度,所以临时把我的数据量改的极其小,最后导致以上两种做法都比较复杂,只要for循环暴力即可过

代码如下:

#include<stdio.h>
int i,n,x,sum,t1,t2,t3,flag[1500],T,a,b,c;
int main()
{cin>>T;while(T--){memset(flag,0,sizeof(flag));scanf("%d%d%d",&a,&b,&c);for(t1 = 0;t1 <= a;t1++)for(t2 = 0;t2<=b;t2++)for(t3 = 0;t3<=c;t3++)flag[t1+2*t2+5*t3] = 1;for(i = 1;i <= 1499;i ++)if(flag[i]==0){printf("%d\n",i);break;}}return 0;
}

第七届ACM趣味编程循环赛 Round #1 - ldq 的遗产题解相关推荐

  1. UESTC第七届ACM趣味程序设计竞赛第四场(正式赛)

    Memory Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit  S ...

  2. CDOJ 第七届ACM趣味程序设计竞赛第三场(正式赛) 题解

    宝贵资源 题目连接: http://acm.uestc.edu.cn/#/problem/show/1265 题意 平面上给n个点(n<=1000),要求找一个面积最小的正方形,将所有的点都囊括 ...

  3. 记第七届ACM校赛-回忆

    这一次校赛其实是两个月半之前的事情了---4月29日.那天比赛完之后,自己就想当天写写这一次比赛的事,但是由于那天比赛完之后又马上又赶回家,5个小时的比赛加上2个小时的车程,整个人都觉得很累,所以那天 ...

  4. 2016山东省第七届ACM省赛总结

    好久都没更过了 前段时间真是心态不好 状态也不好 都不打算练了 自己堕落了一阵子 醒悟了 感觉还是应该干些正事 加上去北京旅游(lanqiao)待了几天 心情也好多了 啊 自己太水 还要接着干. 好 ...

  5. 2018第七届CodeVita国际编程大赛

    第七届TCS CodeVita 国际编程大赛 介绍 竞技不仅仅是一种游戏而是一种文化!它将不同民族不同背景的人们联系在一起,跨越了地理和文化的界限.竞技提供无国界的体验和无限的竞赛乐趣.在TCS,我们 ...

  6. 包头师范学院第七届ACM大学生程序设计竞赛

    A.2021bttcacm*N 题目描述 欢迎参加第七届包头师范学院大学生程序设计竞赛!请各位亲积极编程,争取解决更多问题,为你的学院和班级争光!加油吧! 这个题目很简单,输入一个正整数n,然后输出n ...

  7. 2016第七届ACM山东省赛

     "题目说的是输出编号.输出编号!!" "好,改好了." "交." 最后两分钟再一次提交了代码. no  -  wrong. 奋战到最后一秒 ...

  8. 山东理工大学第七届ACM校赛-G 飞花的传送门

    G - 飞花的传送门 飞花壕最近手头比较宽裕,所以想买两个传送门来代步(夏天太热,实在是懒得走路).平面上有N个传送门,飞花壕想要挑两个距离最远的传送门带回家(距离为欧几里得距离,即两点之间直线距离) ...

  9. 华中地区高校第七届ACM程序设计大赛——之字形矩阵【2012年5月27日】

    题意:输入a b Right 或 a b Down ,根据输入输出之字形路径的矩阵. 1 #include <stdio.h> 2 int xx[4]={0,1,-1,1},yy[4]={ ...

最新文章

  1. bash、dash(/bin/bash和/bin/sh)
  2. Curl http_code 状态码
  3. MarkDown编辑器常用语法
  4. python函数递归法求一个数各位数之和_python – 设计一个使用digit_sum计算数字总和的递归函数...
  5. 微信小程序-page
  6. Magento 2.0 Alipay Cross-Border Mobile Payment Extension - Magento 2.0 支付宝跨境支付手机版...
  7. 几种div/css布局的代码
  8. MongoDB驱动程序快速入门
  9. 最小生成树 POJ - 3522(枚举边最小生成树)
  10. 终于完成了一个能够绘制的FireFox插件
  11. 带你了解Java Agent
  12. ISO12233:2014 eSFR分辨率测试卡使用方法
  13. ubuntu-22.04.1磁盘分区和挂载
  14. jdk文档下载(html格式)
  15. Python中的算数运算符
  16. JavaIO流,万物皆文件
  17. Android 适配Dark Theme(暗黑模式),看完跪了
  18. 4G远程智能巡检摄像机解决方案对比
  19. (一)JPA的快速入门
  20. 不联网计算机软件升级,不能联网的电脑如何升级病毒库

热门文章

  1. 风控ML[16] | 风控建模中怎么做拒绝推断
  2. 电商项目之电商数据库建表
  3. python中控脚本_[宜配屋]听图阁
  4. 最新电脑为何不支持安装win7系统?原来秘密就藏在这里!
  5. MS08-067漏洞分析与复现
  6. pdffactory 打印字体_pdffactory pro|pdf虚拟打印机(pdffactory)下载 v5.31 官方版_小皮网...
  7. 0x00007ffff7ade419 in memcpy () from /lib/libc.so.6
  8. Python:实现多个txt文本的简单合并,亲测简单好用,保姆教程
  9. 内网安全:内网穿透详解
  10. VBA 朗读excel随机选择的单元格 (语音库人声可选)