1017-R
来源:互联网 发布:淘宝的卖家中心不见了 编辑:程序博客网 时间:2024/05/17 22:51
1.题目编号:1017-R
2.简单题意:有1*1、2*2、3*3、4*4、5*5、6*6大小的盒子,用6*6大小的盒子去装给出的箱子,求出用的最少的盒子数,输入6组数据,分别代表有1*1、2*2、3*3、4*4、5*5、6*6大小的盒子的个数。
3.解题思路形成过程:一个箱子里只能放下一个4*4或5*5或6*6大小的箱子,它们有多少个,就至少需要多少个箱子,再将其他的往里塞,先从最大的开始,一步一步来,有一个6*6盒子,总数加一,有一个5*5也是,但一个包装箱能放1个5*5的盒子和11个1*1的盒子,然后是4*4,只能放1个4*4盒子和5个2*2盒子,2*2盒子不够的空间用1*1的盒子补,4个3*3的盒子组成一个6*6的箱子,所以用了向上取整的方法,如果%4为0,那就需要一个箱子,不为4也需要一个箱子,填充别的,而且尽可能多的放置2*2盒子 放完后放1*1盒子。
4.感想:这道题看起来思路有,但做起来条件太多,有好几次都是漏下条件使代码不正确,思考问题一定要全面,多方面考虑,有些会有简易算法,要考虑细节问题,细节决定成败。
5.AC代码:
2.简单题意:有1*1、2*2、3*3、4*4、5*5、6*6大小的盒子,用6*6大小的盒子去装给出的箱子,求出用的最少的盒子数,输入6组数据,分别代表有1*1、2*2、3*3、4*4、5*5、6*6大小的盒子的个数。
3.解题思路形成过程:一个箱子里只能放下一个4*4或5*5或6*6大小的箱子,它们有多少个,就至少需要多少个箱子,再将其他的往里塞,先从最大的开始,一步一步来,有一个6*6盒子,总数加一,有一个5*5也是,但一个包装箱能放1个5*5的盒子和11个1*1的盒子,然后是4*4,只能放1个4*4盒子和5个2*2盒子,2*2盒子不够的空间用1*1的盒子补,4个3*3的盒子组成一个6*6的箱子,所以用了向上取整的方法,如果%4为0,那就需要一个箱子,不为4也需要一个箱子,填充别的,而且尽可能多的放置2*2盒子 放完后放1*1盒子。
4.感想:这道题看起来思路有,但做起来条件太多,有好几次都是漏下条件使代码不正确,思考问题一定要全面,多方面考虑,有些会有简易算法,要考虑细节问题,细节决定成败。
#include<cmath>#include<iostream>using namespace std;int main(){ int a,b,c,d,e,f; while(cin>>a>>b>>c>>d>>e>>f&&(a+b+c+d+e+f)) { int sum=0; sum=f+e+d; if(a!=0) a=max(0,a-11*e); if(b>=d*5) b=b-d*5; else { a=max(0,a-4*(d*5-b)); b=0; } sum+=(c+3)/4;//向上取整 c%=4; if(c) { if(b>=7-2*c) { b-=7-2*c; a=max(0,a-(8-c)); } else { a=max(0,a-(36-4*b-9*c)); b=0; } } sum+=(b+8)/9; b%=9; if(b) { a=max(0,a-(36-b*4)); b=0; } sum+=(a+35)/36; cout<<sum<<endl; } return 0;}
5.AC代码:
0 0
- 1017-R
- Problem R-1017
- r
- r
- R
- r
- r
- r
- R
- R
- r
- R
- r
- R
- r
- R
- R
- R
- 【数学相关、规律】Vijos P1582 笨笨的L阵游戏
- 针对《SVM八股简介》的总结
- ArrayList和HashSet对的比较及HasCode分析
- Swift系统自带二维码的扫描使用
- 周线金叉
- 1017-R
- c++第二次实验--类和对象1
- redhat下qt的安装
- swift 数组转字符串(joinWithSeparator)
- 活动选择
- maven错误事例之一
- 现代控制理论课件分享及课后思考题(初稿待完善)
- 【模拟】Vijos P1771 瑞士轮 (NOIP2011普及组第三题)
- 输出随机认证码图片