第十一周 5.9 --- 5.15

哇呀哇呀,这周三门考试.........酸爽

总之希望这周的rp好一点点..

5.9

c.柱爷的下凡

求三个硬币的面值,使得构成 1 到 n 面值得平均硬币数量最少

平均数量最少就要总数量最少,dp[i] 表示构成面额 i 需要的最少的硬币数量

然后肯定有 1 ,再枚举 另外两种硬币的面值

不过....好想说时间卡得好紧啊,都枚举到 n 会 T,打表发现面值不会超过 40,于是枚举到 40才水果

TwT/....................

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<iostream>
 4 #include<algorithm>
 5 using namespace std;
 6
 7 const int maxn = 505;
 8 int dp[maxn],n;
 9 const int INF = (1<<30)-1;
10
11 void solve(){
12     int ans = INF,x = 2,y = 3;
13     for(int a1 = 2;a1 <= min(40,n);a1++){
14         for(int a2 = a1+1;a2 <= min(40,n);a2++){
15             if(a1+a2 > n) continue;
16             for(int i = 1;i <= n;i++) dp[i] = INF;
17             dp[0] = 0;
18             int tmp = 0;
19             for(int i = 1;i <= n;i++){
20                 if(i >= 1) dp[i] = min(dp[i],dp[i-1]);
21                 if(i >= a1) dp[i] = min(dp[i],dp[i-a1]);
22                 if(i >= a2) dp[i] = min(dp[i],dp[i-a2]);
23                 dp[i] = dp[i]+1;
24                 tmp += dp[i];
25             //    printf("a1 = %d a2 = %d dp[%d] = %d\n",a1,a2,i,dp[i]);
26             }
27
28             if(tmp < ans){
29                 ans = tmp;
30                 x = a1;y = a2;
31             }
32         }
33     }
34     printf("1 %d %d\n",x,y);
35 }
36
37 int main(){
38     int T;
39     scanf("%d",&T);
40     while(T--){
41         scanf("%d",&n);
42         solve();
43     }
44     return 0;
45 }

时间: 2024-11-10 09:32:43

第十一周 5.9 --- 5.15的相关文章

2017-2018-1 20155228 《信息安全系统设计基础》第十一周学习总结

2017-2018-1 20155228 <信息安全系统设计基础>第十一周学习总结 教材学习内容总结 虚拟存储器的概念和作用 为了更加有效地管理内存并且少出错,现代系统提供了一种对主存的抽象概念,叫做虚拟内存(VM).虚拟内存是硬件异常.硬件地址翻译.主存.磁盘文件和内核软件的完美交互,它为每个进程提供了一个大的.一致的和私有的地址空间.通过一个很清晰的机制,虚拟内存提供了三个重要的能力: 它将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来

2017-2018-1 20155338 《信息安全系统设计基础》第十一周学习总结

2017-2018-1 20155338 <信息安全系统设计基础>第十一周学习总结 教材学习内容总结 9.1 物理和虚拟寻址 1.物理地址 计算机系统的主存被组织成一个由M个连续的字节大小的单元组成的数组,每字节都有一个唯一的物理地址PA. 根据物理地址寻址的是物理寻址. 2.虚拟地址 虚拟存储器被组织为一个由存放在磁盘上的N个连续的字节大小的单元组成的数组.使用虚拟寻址时,CPU通过生成一个虚拟地址VA来访问主存,这个虚拟地址在被送到存储器之前先转换成适当的物理地址. 9.3 虚拟存储器作为

20172329 2017-2018-2 《程序设计与数据结构》第十一周学习总结

20172329 2017-2018-2 <程序设计与数据结构>第十一周学习总结 教材学习内容总结 Java和Android开发学习指南 第23章 Android简介 一.4种Android应用程序组件 1.活动 ( Activity ) : 包含用户交互组件的一个窗口 . 2.服务 ( Service ) : 在后台长时间运行的操作 . 3.广播接收者 (Broadcast receiver ) : -个监听器 , 负责对系统或应用程序声明做 出响应 . 4.内容提供者 ( Contentp

第十一周PSP&amp;进度条

PSP 一.表格: D日期     C类型 C内容 S开始时间 E结束时间 I时间间隔 T净时间(mins) 预计花费时间(mins) 11月24号 站立会议 分配任务&设计final方案 13:00 13:30 0 30 30   编写 bug修正报告 14:35 15:14 0 39 40 11月25号 站立会议 继续完成没完成任务 13:00 13:30 0 30 30   编码 新亮点 14:45 18:23 21 207 180   数据 数据收集整理 19:21 20:48 13  

第十周、第十一周学习总结

第十周.第十一周学习总结 ——王林 学科 WEB 数据结构 计算机网络基础 进度 第15章的后半部分.第十六章 第六章后半部分 项目5 主要内容 第十周首先主要学习了JavaScript的内置对象.其次第十一周为详细学习JS的字符串对象.数值处理对象.数组对象等,JS的综合运用实例以及JS对象编程与事件处理. 两周内,进行了对钱一周树的学习——树的定义.基本术语.树的双亲.孩子.兄弟表示法及实现.二叉树等. 两周内,计算机网络基础主要学习了路由器的相关概述,包括了解路由协议到配置路由器的动手实践

第十一周学习总结

信息安全系统设计基础第十一周学习总结 [学习时间:8h] [学习内容:<深入理解计算机系统>第八章 ] 一.知识梳理 8.1节(主要涉及异常的入门级介绍) 1.异常控制流(ECF) 概念:最简单的“平滑序列”类型的控制流是指PC中相邻的指令在存储器中也相邻.而异常控制流则是指程序变量表示的内部程序状态中的变化.系统状态的变化等突发情况使得控制系统做出的反映. 作用: 应用程序如何与操作系统实现交互.应用程序使用系统调用(system call)的ECF形式向操作系统请求服务: 实现并发的基本机

第十一周学习进度条

第十一周 星 期 一 星期二 星期三 星期四 星期五 星期六 所花时间 8:00-9:50 (上课时间) 17:30-18:40 (阅读UML大战需求分析) 10:20-11:30写征集系统大作业 20:20-21:10 (分析征集系统用例) 15:30-17:00 写征集系统大作业 19:30-11:30 写征集系统大作业 代码量 50 博客量 1 了解到的知识点 1.用例描述的三个要点:内容.好处.度量. 2.业务用例描述的步骤:识别执行者.识别业务用例.写出业务用例. 3.执行者:边界之外

20162304 2017-2018-1 《程序设计与数据结构》第十一周学习总结

20162304 2017-2018-1 <程序设计与数据结构>第十一周学习总结 教材学习内容总结 定义哈希方法: 哈希函数的学习: 哈希表中的冲突问题: Java Collections API 实现: 教材学习中的问题和解决过程 问题1:哈希表中的冲突如何解决? 冲突问题:冲突问题是多个元素或关键字映射到表中的同一个位置. 链式方法,将哈希表看成是集合的表而不是各独立单位的表.所以每个单元中保存一个指针,指向与表中该位置相关的元素的集合. 优点: 开放地址方法:(1)线性探测法:Threa

大二上学期软件工程概论学习进度表(第十一周)

杨宇航 第十一周 所花时间(包括上课) 2节课包括200分钟,周一请教学长1.5小时,周二自己看学长代码2小时,自己编程1.5小时,周三复习java准备考试2小时,周四考试3小时,周五做四则运算网页版2小时,截至到周六一共是15小时 代码量(行) 自己阅读思考学长代码200行左右,给网上找了一个网页版的计算器程序,一共68行,周四考试编写代码300行左右:自己写的程序版的四则运算30行:网页版的四则运算64行:加起来自己阅读268行,自己编写394行代码. 博客量(篇) 本周发表博客三篇 了解到