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;
}

最新文章

  1. Java 枚举7常见种用法
  2. NodeJS模块
  3. SQL 截图
  4. Unity3D基础学习 NGUI Example 7-Scroll View(Panel)制作固定包裹栏,点击传递参数显示物体
  5. QT正则表达式---针对IP地址
  6. eclipse 启动tomcat后 页面无法访问tomcat首页
  7. JAVA中使用JSONObject对象必备
  8. CSS架构的优选和解决方案
  9. MongoDB Export & Import
  10. ODI Scenario 场景
  11. git lg 使用 转
  12. HDU 1027(数字排列 STL)
  13. 改写element-ui中的日期组件
  14. Android如何设置TextView的行间距、行高。
  15. 利用altium怎么生成PDF及怎么1:1打印文档
  16. HTTP协议详解(真的很经典)(转载)
  17. 【转】ibatis 中isNull, isNotNull与isEmpty, isNotEmpty区别
  18. idea安装Lombok及使用介绍
  19. java基础——回文数判断
  20. PL/SQL Developer 中的问题:Initialization error Could not load &quot;.../oci.dll&quot;解决方法

热门文章

  1. ES6标准入门(第三版)学习笔记(1)
  2. nyoj286-动物统计
  3. [noip2011 luogu1312] Mayan游戏(模拟)
  4. Linux 密码的暴力破解
  5. JavaScript链式编程模拟Jquery函数
  6. CSS 居中【整合】
  7. Ubuntu启动流程
  8. 【codeforces 803D】Magazine Ad
  9. applicationContext-redis.xml
  10. MQ发送定时消息