UVa 311 - Packets
来源:互联网 发布:淘宝代销什么产品好 编辑:程序博客网 时间:2024/06/03 17:15
题意:给出1*1,2*2,3*3,4*4,5*5,6*6的正方形的个数,求能够拼出多少个6*6的正方形
解法:贪心,先放大的正方形,有些细节需要考虑清楚
#include <stdio.h>using namespace std;const int sq=36;int main(){ int a[10]; while(scanf("%d%d%d%d%d%d",&a[1],&a[2],&a[3],&a[4],&a[5],&a[6])==6) { int f=1,c=0; for(int i=1; i<=6; i++) { if(a[i]!=0) { f=0; break; } } if(f==1)break; while(1) { f=1; for(int i=1; i<=6; i++) { if(a[i]!=0) { f=0;break; } } if(f==1)break; int p=sq; if(a[6]>0) { p=0; a[6]--; } else if(a[5]>0&&p>=25) { p-=25; a[5]--; if(a[1]>=11){p-=11;a[1]-=11;} else {p-=a[1];a[1]=0;} } else if(a[4]>0&&p>=16) { p-=16; a[4]--; if(a[2]>=5){p-=20;a[2]-=5;} else {p-=a[2]*4;a[2]=0;} if(a[1]>=p){a[1]-=p;p=0;} else {p-=a[1];a[1]=0;} } else if(a[3]>0&&p>=9) { if(a[3]>=4){p=0;a[3]-=4;} else {p-=a[3]*9;a[3]=0;} if(p==27) { if(a[2]>=5){p-=20;a[2]-=5;} else {p-=a[2]*4;a[2]=0;} if(a[1]>=p){a[1]-=p;p=0;} else {p-=a[1];a[1]=0;} } else if(p==18) { if(a[2]>=3){p-=12;a[2]-=3;} else {p-=a[2]*4;a[2]=0;} if(a[1]>=p){a[1]-=p;p=0;} else {p-=a[1];a[1]=0;} } else if(p==9) { if(a[2]>=1){p-=4;a[2]-=1;} else {p-=a[2]*4;a[2]=0;} if(a[1]>=p){a[1]-=p;p=0;} else {p-=a[1];a[1]=0;} } } else if(a[2]>0&&p>=4) { if(a[2]>=9){p=0;a[2]-=9;} else {p-=a[2]*4;a[2]=0;} if(a[1]>=p){a[1]-=p;p=0;} else {p-=a[1];a[1]=0;} } else { if(a[1]>=36){a[1]-=36;p=0;} else {p-=a[1];a[1]=0;} } c++; } printf("%d\n",c); } return 0;}
- UVa 311 - Packets
- UVa 311 - Packets
- uva 311 - Packets
- uva 311 - Packets
- UVa 311 - Packets
- uva 311 Packets
- UVa:311 Packets
- uva 311 Packets
- uva 311Packets
- UVA - 311 Packets
- UVa 311 - Packets
- uva 311 Packets
- UVA - 311 Packets
- Uva 311 Packets
- UVA 311 Packets(贪心 + 模拟)
- uva 311 Packets(贪心)
- UVA 311 Packets 贪心+模拟
- uva - 311 - Packets(贪心)
- HOG 理解与源码
- win32 sdk下调用webbrowser控件
- iOS中的模糊效果
- 【性能优化案例】执行计划宁可走全表扫描,也不走索引
- TortoiseSVN 中文版安装问题详解
- UVa 311 - Packets
- 静态链接
- (Problem 9)Special Pythagorean triplet
- IE(IE6/IE7/IE8)支持HTML5标签
- android 基础知识三
- #error 等其他常用预处理命令
- ThinkPHP import 方法
- Hibernate 错误集合
- Amdahl's Law