博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Atcoder 073E - Ball Coloring
阅读量:5327 次
发布时间:2019-06-14

本文共 1182 字,大约阅读时间需要 3 分钟。

链接:http://arc073.contest.atcoder.jp/tasks/arc073_c

题目大意:给定n对数,将每对中一个染红一个染蓝,求(Rmax-Rmin)*(Bmax-Bmin)。

分析:- -感觉没有太多的知识点,就是有点难想。。

      考虑所有数中的MAX和MIN,如果在Rmax=MAX&&Bmin=MIN,就需要让Rmin尽量大,Bmax尽量小,将每一对的大数染红,小数染黑;如果是Bmax=MAX&&Bmin=MIN,就需要让Rmax-Rmin尽量小,首先让所有xi<yi,按x排序,先把x全部染红,然后从小到大按顺序把x  y交换,计算交换后的Rmax和Rmin,更新一下Rmax-Rmin的最小值。因为如果存在xi<yi,而xi为红色,继续往后更新,和xi为黑色往后更新相比,最小值可能更小,而最大值不可能更小,因而不需要考虑这种情况。注意当MAX和MIN在同一对里时,不需要考虑后一种情况。

1 #include
2 #include
3 #include
4 using namespace std; 5 const int maxn=200005; 6 struct bag{ 7 int x,y; 8 }p[maxn]; 9 bool operator < (bag a,bag b){10 if(a.x==b.x)return a.y
p[i].y){23 int k=p[i].x;24 p[i].x=p[i].y;25 p[i].y=k;26 }27 }28 sort(p,p+n);29 int Max=p[0].y,Min=p[0].x,_max=0,_min=0;30 for(int i=1;i
=Max){32 Min=p[i].x;Max=p[i].y;33 _max=i;_min=i;34 }35 else if(p[i].x
Max){39 Max=p[i].y;40 _max=i;41 }42 }43 Rmax=Max;Bmin=Min;44 Rmin=p[_min].y;Bmax=p[_max].x;45 for(int i=0;i

 

转载于:https://www.cnblogs.com/7391-KID/p/7078683.html

你可能感兴趣的文章
hdu4906:3-idiots【FFT】
查看>>
msys 中打开系统程序
查看>>
移动端调试工具-Debuggap
查看>>
IE开发人员工具不见了?
查看>>
Oracle中“行转列”的实现方式
查看>>
细说static关键字及其应用
查看>>
LeetCode--Restore IP Addresses
查看>>
第二章:2.4 通过 startproject 来创建 Django 项目
查看>>
第二章:WebDriver 打开Firefox浏览器 和 Chrome 浏览器
查看>>
洛谷 - P1433 - 吃奶酪 - dfs
查看>>
Codeforces - 102222H - Fight Against Monsters - 贪心
查看>>
SCUT - 12 - 西方国家 - 矩阵快速幂
查看>>
hdu 1394 Minimum Inversion Number(逆序数对) : 树状数组 O(nlogn)
查看>>
初时mysql
查看>>
Leetcode 69. Sqrt(x)
查看>>
usb上网
查看>>
android 屏幕宽高
查看>>
Python排序算法
查看>>
oracle 存储过程 基础
查看>>
ZOJ 2705
查看>>