【2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest B】【暴力双排序】Layer Cake 若干矩形 选择相同长和宽的最大体积
来源:互联网 发布:javascript面向对象 编辑:程序博客网 时间:2024/06/05 09:35
#include<stdio.h>#include<algorithm>using namespace std;typedef long long LL;const int N=4000+10;int n;pair<int,int>a[N];int b[N];int main(){ while(~scanf("%d",&n)) { LL ans=0;int ans1,ans2; for(int i=1;i<=n;i++) { scanf("%d%d",&a[i].first,&a[i].second); if(a[i].first>a[i].second)swap(a[i].first,a[i].second); } sort(a+1,a+n+1); int m=0; for(int i=n;i>=1;i--) { b[++m]=a[i].second; sort(b+1,b+m+1); for(int j=1;j<=m;j++) { LL tmp=(LL)a[i].first*b[j]*(m+1-j); if(tmp>ans) { ans=tmp; ans1=a[i].first; ans2=b[j]; } } } printf("%lld\n",ans); printf("%d %d\n",ans1,ans2); }}/*【题意】有n(4000)个矩形,每个矩形都有一个长和宽,长宽都是[1e6]范围内的数我们想从中选出任意数量的矩形,可以把其长或宽切小,使得之后所有选定矩形的长和宽都相同。而且使得(个数*长*宽)这个数值尽可能大,并输出这个数值,和对应一组可行的长与宽。【类型】排序【分析】我们可以先使得我们最后取得的长>=宽。然后我们发现,最后选择的长一定是某个矩形的长,最后选择的宽也一定是某个矩形的宽。然后先枚举长,使得它作为我们选定的长,设为A。那其他可以选这个长度为长的矩形,肯定是从长>=A的矩形中选那对应的宽是什么呢?我们把这所有长度>=A的矩形的宽都拿出来,然后排个序。再依次枚举宽选定为什么。这样就可以啦。时间复杂度O(nnlogn)实际上,因为每次是在原有的排序后有序数列的基准上,又添加一个新的长度的宽。排序其实单次没有nlogn所以实际上的时间复杂度是介于[n^2,n^2logn]之间的。*/
1 0
- 【2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest B】【暴力双排序】Layer Cake 若干矩形 选择相同长和宽的最大体积
- 2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest, B. Layer Cake
- Codeforces 2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest B题 (排序贪心)
- 2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest
- 2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest B - Stealing Harry Potter's Precious
- 2009-2010 ACM-ICPC, NEERC, Southern Subregional Contest B kakuro
- 【2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest J】【暴力模拟】Cleaner Robot 机器人行走 决策固定
- 2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest
- 2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest J Bottles
- 2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest J dp
- 2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Prefer
- 【2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest F】【贪心+ STL-优先队列】 Gourmet and Banquet 最大活动时间
- 2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest A Email Aliases
- 2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest F - Infinite Go
- Codeforces 2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest A题 (String模拟)
- Codeforces 2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest I题(模拟)
- Codeforces 2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest J题(BFS)
- 【2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest I】【水题】Lottery 均分气球最小修改数
- 驱动开发(5)内核中的字符串
- 【2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest J】【暴力模拟】Cleaner Robot 机器人行走 决策固定
- 中国黑客首次攻破Win10系统!微软惊呆
- C语言枚举类型
- oc一天学习
- 【2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest B】【暴力双排序】Layer Cake 若干矩形 选择相同长和宽的最大体积
- Mac下激活Navicat Premium 11.1.15
- 汇编语言 冒泡排序
- 【2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest A】【模拟 STL-map】Email Aliases 不同邮箱的数量
- 第十周项目3利用二叉树遍历思想解决问题
- 获取外置的SD卡
- HDU 5510 Bazinga (2015沈阳站B题&&KMP)
- 小工具使用 - 用putty\pscp从win8往ubuntu上传文件
- POJ-2575(用例能过,但一直WA)