[CodeForces]529B Group Photo 2
2024-08-31 06:56:33
AK爷GhostCai的电脑又蓝屏了Orz
贪心题,确定一个maxh,限定h不大于一个值。枚举maxh。
check的时候的细节很多:
1.h>maxh但w<maxh交换的时候需要占用交换名额。
2.cnt<0了就应该return -1了。。。
突然忘记还有啥细节
代码如下
#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
const int N=1005;
int n,w[N],h[N],maxh,ans=0x3f3f3f3f;
bool cmp(int x,int y) {return x>y;}
int ck(int mxh) {
int tp=0,diff[N],cnt=n/2;
for(int i=1;i<=n;i++) {
if(h[i]>mxh&&w[i]>mxh) return -1;
if(h[i]>mxh&&w[i]<=mxh) diff[i]=-1,tp+=h[i],cnt--;
else if(w[i]>mxh) diff[i]=-1,tp+=w[i];
else diff[i]=w[i]-h[i],tp+=w[i];
}
if(cnt<0) return -1;
sort(diff+1,diff+1+n,cmp);
for(int i=1;i<=cnt;i++) {
if(diff[i]>0) tp-=diff[i];
else break;
}
return tp*mxh;
}
int main() {
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d%d",&w[i],&h[i]),maxh=max(maxh,h[i]);
for(int i=1;i<=1000;i++) {
int t=ck(i);
if(t==-1) continue;
ans=min(ans,t);
}
cout<<ans;
}
最新文章
- Java 枚举7常见种用法
- NodeJS模块
- SQL 截图
- Unity3D基础学习 NGUI Example 7-Scroll View(Panel)制作固定包裹栏,点击传递参数显示物体
- QT正则表达式---针对IP地址
- eclipse 启动tomcat后 页面无法访问tomcat首页
- JAVA中使用JSONObject对象必备
- CSS架构的优选和解决方案
- MongoDB Export & Import
- ODI Scenario 场景
- git lg 使用 转
- HDU 1027(数字排列 STL)
- 改写element-ui中的日期组件
- Android如何设置TextView的行间距、行高。
- 利用altium怎么生成PDF及怎么1:1打印文档
- HTTP协议详解(真的很经典)(转载)
- 【转】ibatis 中isNull, isNotNull与isEmpty, isNotEmpty区别
- idea安装Lombok及使用介绍
- java基础——回文数判断
- PL/SQL Developer 中的问题:Initialization error Could not load ";.../oci.dll";解决方法