codeforces 589B(两次排序 + 暴力 ) (重点在于思路)
来源:互联网 发布:淘宝海外站指的是哪里 编辑:程序博客网 时间:2024/05/17 20:42
题目链接:http://codeforces.com/problemset/problem/589/B
题意:题意有点说不清楚,大致意思是从上到下叠放了很多矩形蛋糕,求怎么切长度和宽度才能使切后的蛋糕体积最大。每块蛋糕的长宽可以颠换。
思路:既然每个举行的长宽可以颠换,那就使宽>长,这些矩形肯定是长边与长边对齐,短边与短边在一起时切才会保留最多的蛋糕,使切后蛋糕体积最大。第一次根据宽排序,排好序后遍历每一个宽w,将宽度大于等于w的宽所对应的高再次进行排序,对于每一个高h求出所有蛋糕在宽为w高为h时的总体积取最大值即可。总体思路是两次排序加暴力。看了学长学姐们的代码才看懂,不得不说,我 还差得远呢。未来,我会继续努力的。
#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<map>#include<vector>#include<cmath>#include<set>#include<queue>using namespace std;typedef long long ll;const int maxn = 4000 + 10;const int maxt = 1e6 + 10;const double eps = 0.00000000000001;const int inf = 0x3f3f3f3f;struct reg{ int w,h; bool operator<(const reg& r) const { return w < r.w; }}r[maxn];int main(){ int n; while(~scanf("%d",&n)) { for(int i = 0; i < n; i++) { scanf("%d%d",&r[i].w, &r[i].h); if(r[i].w > r[i].h) swap(r[i].w, r[i].h);//保证每个矩形w > h } sort(r ,r + n); vector<int> hh; ll ans = 0, mxw, mxh; for(int i = 0; i < n; i++)//枚举所有的宽w { hh.clear(); for(int j = i; j < n; j++)//将第i至n个矩形的长储存在集合中 hh.push_back(r[j].h); sort(hh.begin(), hh.end());//将长排序 int len = hh.size(); for(int j = 0; j < hh.size(); ++j,--len) { ll tmp = (ll)r[i].w * hh[j] * len;//暴力所有宽,高对应的体积求最大值 if(tmp > ans) { ans = tmp; mxw = r[i].w; mxh = hh[j]; } } } printf("%I64d\n%I64d %I64d\n",ans, mxw, mxh); } return 0;}
0 0
- codeforces 589B(两次排序 + 暴力 ) (重点在于思路)
- Codeforces 589B Layer Cake(两次排序)
- Codeforces 779B(暴力)
- Codeforces 34B-Sale(暴力)
- Codeforces 332B Maximum Absurdity(暴力)
- 【CodeForces】651B - Beautiful Paintings(暴力)
- CodeForces 699B One Bomb(暴力)
- 【CodeForces 707B】Bakery(暴力)
- Codeforces 550B 【暴力】
- CodeForces 665B【暴力】
- CodeForces 66B 暴力
- codeforces 903B(暴力)
- Codeforces 3 B. Lorry 暴力 排序 枚举 贪心
- codeforces 593B(思路)
- 思路 CodeForces 835B
- CodeForces 626B CodeForces 626B【暴力】
- matlab常用命令(重点在于滤波命令)
- Codeforces 479B Towers(暴力)
- POJ 2039 To and Fro
- JZOJ8.12(C组)作弊的发牌者
- html表单input元素输入立即校验的方法
- 状态模式(State)
- javascript中setTimeout()和setInterval()的区别
- codeforces 589B(两次排序 + 暴力 ) (重点在于思路)
- 联合、自连接
- HDU.5831 Rikka with Parenthesis II【模拟】【8月13】
- 计算操作系统
- {算法}一发Manacher并不难
- docker网络端口映射
- JZOJ8.11(C组)直角三角形
- Windows上使用Linux命令
- 海量数据处理利器之Hash——在线邮件地址过滤