传送门

解题思路

这道题要用到贪心的思路,首先要枚举一个h的最大值,之后check。如果这个东西的w[i]与h[i]都大于枚举的值就直接return false,如果w[i]比这个值小,h[i]比这个值大,就将h[i]与w[i]交换,注意并不能直接交换因为后面还要用到,要在答案中将h[i]加上。如果交换次数比n/2大也return false,如果w[i]与h[i]均比这个值小,则将w[i]-h[i]加入数组。后面将它排序,选出可以被交换的更新答案。

代码

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<algorithm>
  4. #define int long long
  5. using namespace std;
  6. const int MAXN = 1005;
  7. inline int rd(){
  8. int x=0,f=1;char ch=getchar();
  9. while(!isdigit(ch)) {if(ch=='-') f=-1;ch=getchar();}
  10. while(isdigit(ch)) {x=(x<<1)+(x<<3)+ch-'0';ch=getchar();}
  11. return x*f;
  12. }
  13. int n,w[MAXN],h[MAXN];
  14. int ans=1e18+1,sum;
  15. int cnt,upd[MAXN];
  16. inline bool cmp(int x,int y){
  17. return x>y;
  18. }
  19. inline bool check(int x){
  20. int k=0;cnt=0;
  21. for(register int i=1;i<=n;i++){
  22. if(w[i]>x && h[i]>x) return false;
  23. if(h[i]>x && w[i]<=x) k++,sum+=h[i],sum-=w[i];
  24. else if(h[i]<=x && w[i]<=x) upd[++cnt]=w[i]-h[i];
  25. sum+=w[i];
  26. }
  27. if(k>n/2) return false;
  28. sort(upd+1,upd+1+cnt,cmp);
  29. int res=n/2-k;
  30. for(register int i=1;i<=res && i<=cnt;i++){
  31. if(upd[i]<=0) break;
  32. sum-=upd[i];
  33. }
  34. sum*=x;
  35. return true;
  36. }
  37. signed main(){
  38. n=rd();
  39. int mx=0;
  40. for(register int i=1;i<=n;i++)
  41. w[i]=rd(),h[i]=rd(),mx=max(w[i],max(mx,h[i]));
  42. for(register int i=1;i<=mx;i++){
  43. sum=0;
  44. if(!check(i)) continue;
  45. ans=min(ans,sum);
  46. }
  47. printf("%lld",ans);
  48. return 0;
  49. }

CF 529B Group Photo 2 (online mirror version)的更多相关文章

  1. codeforce Group Photo 2 (online mirror version)

    题目大意: 有n个矩形在地上排成一列,不可重叠,已知他们的宽度w和高度h,现在使至多[n / 2]个矩形旋转90度,问最后可以用多小的矩形恰好覆盖这n个矩形,求满足条件的最小矩形面积. n, w, h ...

  2. CF529B 【Group Photo 2 (online mirror version)】

    贪心枚举最后方案中最大的h,设为maxh若某个人i的wi与hi均大于maxh,则此方案不可行若某个人恰有一个属性大于maxh,则可确定他是否换属性剩下的人按wi-hi从大到小排序后贪心选择O(nlog ...

  3. [CodeForces]529B Group Photo 2

    AK爷GhostCai的电脑又蓝屏了Orz 贪心题,确定一个maxh,限定h不大于一个值.枚举maxh. check的时候的细节很多: 1.h>maxh但w<maxh交换的时候需要占用交换 ...

  4. A1109. Group Photo

    Formation is very important when taking a group photo. Given the rules of forming K rows with N peop ...

  5. PAT A1109 Group Photo (25 分)——排序

    Formation is very important when taking a group photo. Given the rules of forming K rows with N peop ...

  6. 1109 Group Photo

    Formation is very important when taking a group photo. Given the rules of forming K rows with N peop ...

  7. 1109 Group Photo (25 分)

    1109 Group Photo (25 分) Formation is very important when taking a group photo. Given the rules of fo ...

  8. PAT 1109 Group Photo[仿真][难]

    1109 Group Photo(25 分) Formation is very important when taking a group photo. Given the rules of for ...

  9. 1109. Group Photo (25)

    Formation is very important when taking a group photo. Given the rules of forming K rows with N peop ...

随机推荐

  1. JavaScript特效源码(6、页面特效一)

    1.页面全屏 页面全屏显示[ALT+F4关闭][共1步][新弹出窗口并以全屏幕方式显示] ====1.将以下代码加入HTML的<body></body>之间: <form ...

  2. 【10.6NOIP普及模拟】MATH——枚举法

    [10.6NOIP普及模拟]MATH 题目简化 一个数列任意删k个数,是得数列中最大的差+最小的差最小 思路 程序1--时超40 暴搜+剪枝. 用类似排列组合的方式,暴搜删或不删 剪枝就是看看剩下的数 ...

  3. 解决无法wifi上网的问题

    1.查看网卡型号 lspci | grep Network 可以看到我的是Wireless-AC 9560 2.登录Inter官网下载网卡驱动 https://www.intel.com/conten ...

  4. LUOGU P1337 [JSOI2004]平衡点 / 吊打XXX(模拟退火)

    传送门 解题思路 学习了一下玄学算法--模拟退火,首先要求平衡处,也就是求势能最小的地方,就是求这个点到所有点的距离*重量最小.剩下的几乎是模拟退火的板子了. #include<iostream ...

  5. js获取网页屏高 屏宽

    <SCRIPT LANGUAGE="JavaScript"> <!-- //document.body.scrollTop 滚动条的上端距离 //document ...

  6. php中的线程、进程和并发区别

    https://mp.weixin.qq.com/s/Ps5w13TTmpnZx-RPWbsl1A 进程 进程是什么?进程是正在执行的程序:进程是正在计算机上执行的程序实例:进程是能分配给处理器并由处 ...

  7. Android之shape属性简介和使用

    1.shape标签简介  shape的形状,默认为矩形,可以设置为矩形(rectangle).椭圆形(oval).线性形状(line).环形(ring)  ! 设置形状: <shape xmln ...

  8. 【solr】Solr与JDK对应版本关系,Tomcat与JDK

    Solr与JDK对应版本关系,Tomcat与JDK版本对应关系 最新在部署solrCloud集群,由于自己机器上用的JDK都是JDK1.7的,然后我就从网上下载了最新下载了最先的solr6.6.0和最 ...

  9. VS2010编译的时候出现fatal error LNK1146: 没有用选项“/out:”指定的参数

    最近安装了下vs2010,发现对硬件要求还是很高的,先是在一个一般台式机上安装出现字体发虚的问题,操作系统也是vista sp2,尝试了网上若干方法还是发虚,总结就是硬件的显卡不行,3年前的机器了:遂 ...

  10. HTML编码的用户输入------阻止向Controller的方法传入参数时用链接注入javascript代码或者HTML标记