原题链接:装包装箱问题
解题思路:
先分析,在贪心。
参考代码:
#include<bits/stdc++.h> using namespace std; int datas[7]; bool ends() { for (int i = 1; i <= 6; i++) if (datas[i] != 0) return false; return true; } int main() { int thr[] = { 0,5,3,1 }; while (true) { int total = 0; for (int i = 1; i <= 6; i++) cin >> datas[i]; if (ends()) return 0; total += datas[6] + datas[5] + datas[4] + (int)ceil(datas[3] / 4.0); int last2 = datas[4] * 5 + thr[datas[3] % 4]; if (datas[2] > last2) total += (int)ceil((datas[2] - last2) / 9.0); int last1 = 36 * (total - datas[6]) - datas[5] * 25 - datas[4] * 16 - datas[3] * 9 - datas[2] * 4; if (datas[1] > last1) total += (int)ceil((datas[1] - last1) / 36.0); cout << total << endl; } }
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复