USACO packrec
来源:互联网 发布:淘宝开店必胜100法pdf 编辑:程序博客网 时间:2024/05/06 19:06
/*ID: jinusac1PROG: packrecLANG: C++*/#include <fstream>#include <algorithm>using namespace std;struct REC{int c,k;}rec[5],r[2500],t[5];int num[10],Min=20000,c=0;ifstream fin("packrec.in");ofstream fout("packrec.out");bool cmp(struct REC a,struct REC b){return a.k<b.k;}void judge(int s,int a,int b){if(s==Min){if(a>b) {r[c].c=a;r[c].k=b;}else {r[c].k=a;r[c].c=b;}c++;}else if(s<Min){c=0;Min=s;if(a>b) {r[c].c=a;r[c].k=b;}else {r[c].k=a;r[c].c=b;}c++;}}void six(int a,int b){if(t[num[1]].k>t[num[2]].k) return ;a=t[num[2]].k+t[num[3]].k;b=t[num[1]].c+t[num[2]].c;if(t[num[3]].c<t[num[2]].c){if(t[num[4]].c>t[num[3]].k) return ;if((t[num[4]].k+t[num[3]].c)>b) b=t[num[4]].k+t[num[3]].c;judge(a*b,a,b);return ;}else{if(t[num[3]].c<b){if(t[num[4]].c>(t[num[3]].k+t[num[2]].k-t[num[1]].k)) return ;if((t[num[4]].k+t[num[3]].c)>b) b=t[num[4]].k+t[num[3]].c;judge(a*b,a,b);return ;}else{if(t[num[4]].c>a) a=t[num[4]].c;if((t[num[4]].k+t[num[3]].c)>b) b=t[num[4]].k+t[num[3]].c;judge(a*b,a,b);return ;}}}void dfs(int i){if(i==5){int a=0,b=0;for(int j=1;j<=4;j++){a+=t[j].k;if(t[j].c>b) b=t[j].c;num[j]=j;}judge(a*b,a,b);for(int j=1;j<=24;j++){a=b=0;a=((t[num[1]].k+t[num[2]].k+t[num[3]].k)>t[num[4]].c?(t[num[1]].k+t[num[2]].k+t[num[3]].k):t[num[4]].c);b=t[num[1]].c>t[num[2]].c?t[num[1]].c:t[num[2]].c;b=(b>t[num[3]].c?b:t[num[3]].c)+t[num[4]].k;judge(a*b,a,b);a=b=0;a=((t[num[1]].k+t[num[2]].k)>t[num[4]].c?(t[num[1]].k+t[num[2]].k):t[num[4]].c)+t[num[3]].k;b=(t[num[1]].c>t[num[2]].c?t[num[1]].c:t[num[2]].c)+t[num[4]].k;if(t[num[3]].c>b) b=t[num[3]].c;judge(a*b,a,b);a=b=0;a=(t[num[2]].k>t[num[3]].k?t[num[2]].k:t[num[3]].k)+t[num[1]].k+t[num[4]].k;b=t[num[1]].c>t[num[4]].c?t[num[1]].c:t[num[4]].c;if((t[num[2]].c+t[num[3]].c)>b) b=t[num[2]].c+t[num[3]].c;judge(a*b,a,b);six(0,0);next_permutation(num+1,num+5);}return ;}t[i].c=rec[i].c;t[i].k=rec[i].k;dfs(i+1);t[i].c=rec[i].k;t[i].k=rec[i].c;dfs(i+1);}int main(){for(int i=1;i<=4;i++) fin>>rec[i].k>>rec[i].c;dfs(1);sort(r,r+c,cmp);fout<<Min<<endl;for(int i=0;i<c;i++){fout<<r[i].k<<" "<<r[i].c<<endl;while(i<c&&(r[i+1].c==r[i].c&&r[i+1].k==r[i].k)) i++;}return 0;}
0 0
- usaco packrec
- USACO packrec
- usaco——packrec
- USACO 1.4 packrec
- USACO Section 1.4 packrec
- USACO 1.4 Packing Rectangles (packrec)
- usaco 1.4 packrec 2008.5.6
- USACO 3.3.3 Packing Rectangles (packrec)(转)
- packrec
- USACO Section 1.4 packrec - 不是太好写的搜索水题
- 法克packrec(重整思路。。)
- USACO6.2.2 Packing Rectangles(packrec)
- USACO
- USACO
- usaco
- USACO
- USACO
- USACO
- ubuntu14.04安装软件全记录
- 多线程同步中的条件变量的细节与使用
- Leetcode: Spiral Matrix
- makefile之多目录文件编译
- ViewHolder模式超简洁写法,很cool!
- USACO packrec
- 二分图的最大匹配——网络流+匈牙利算法
- 实现算法2.2的程序
- Sublime 快捷键制作
- TabHost 简单使用方法
- quartus II 调用 ModelSim
- leetcode 刷题之路 64 Construct Binary Tree from Inorder and Postorder Traversal
- Hello World -- 也是我的第一个程序
- USACO section 1.1.1 Your Ride Is Here