博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVa 311 - Packets
阅读量:6941 次
发布时间:2019-06-27

本文共 1742 字,大约阅读时间需要 5 分钟。

  题目大意:有1X1,2X2 ... 5X5,6X6六种类型的物品,把他们装进6X6的盒子里,求使用的最少盒子数。

  贪心吧,其实一看就知道思路了,算是常识吧,装物品时通常都是先装大的,再在其余空间放小的。一点一点敲代码就好了。

1 #include 
2 3 int main() 4 { 5 #ifdef LOCAL 6 freopen("in", "r", stdin); 7 #endif 8 int a[7]; 9 while (scanf("%d%d%d%d%d%d", &a[1], &a[2], &a[3], &a[4], &a[5], &a[6]) != EOF)10 {11 if (!a[1] && !a[2] && !a[3] && !a[4] && !a[5] && !a[6]) break;12 int ans = 0;13 if (a[6] > 0)14 {15 ans += a[6];16 }17 if (a[5] > 0)18 {19 ans += a[5];20 a[1] -= a[5] * 11;21 }22 if (a[4] > 0)23 {24 ans += a[4];25 a[2] -= a[4] * 5;26 if (a[2] < 0)27 {28 a[1] -= -4 * a[2];29 a[2] = 0;30 }31 }32 if (a[3] > 0)33 {34 ans += (a[3]+3) / 4;35 int t = a[3] % 4;36 switch(t)37 {38 case 1:39 a[2] -= 5;40 a[1] -= 7;41 break;42 case 2:43 a[2] -= 3;44 a[1] -= 6;45 break;46 case 3:47 a[2] -= 1;48 a[1] -= 5;49 break;50 }51 }52 if (a[2] > 0)53 {54 ans += (a[2]+8) / 9;55 int t = a[2] % 9 * 4;56 a[1] -= 36 - t;57 }58 if (a[1] > 0) ans += (a[1]+35) / 36;59 printf("%d\n", ans);60 }61 return 0;62 }
View Code

  代码可以再精简,不过精简之后思路就不如这个直接了,其实是我想偷懒啦,哈哈

转载于:https://www.cnblogs.com/xiaobaibuhei/p/3228909.html

你可能感兴趣的文章
对于sqli-labs基础篇全程使用sqlmap不用手工注入(七夕礼物!!!)
查看>>
C++雾中风景11:厘清C++类型转换(static_cast,dynamic_cast,reinterpret_cast,const_cast)
查看>>
为什么开发人员必须要了解数据库锁?
查看>>
Lua 学习笔记(二)—— 语句
查看>>
制作自己的Vagrant Box
查看>>
NetCore实践篇:分布式监控客户端ZipkinTracer从入门到放弃之路
查看>>
JAVA学习摘要
查看>>
[Java开发之路](23)装箱与拆箱
查看>>
TextView实现跑马灯效果
查看>>
Mysql字段名与保留字冲突导致的异常解决
查看>>
Rust 1.33.0 发布,OSC 上堪称“零差评”的编程语言
查看>>
Android MotionEvent详解
查看>>
单例模式
查看>>
现在到底还该不该买房?
查看>>
小程序中文件相关api总结
查看>>
Go 标准库 http.FileServer 实现静态文件服务
查看>>
第十四章:绝对布局(三)
查看>>
Fluwx:让在Flutter中使用微信SDK成为可能
查看>>
《Groovy极简教程》第3章 Groovy基本语法
查看>>
百度贴吧 | 通用抓图脚本
查看>>