我要吐了
和上次一样,考到一半开始自暴自弃 qwq
然后我就决定用剩下的时间订正以前的题目.....
直接贪心,我还在想 $dp$ qwq
显而易见的是,全局的比例和每一块的比例都是一样的。所以如果能割就割,割的时候不用担心,因为,后面的一定可以构成比例继续割。留到以后割没有好处,所以就变成一个贪心题了。。。。。
因为队列的长度连线性都跑不过,所以说要用数学方法判断割的地方。
这道题目我并没有听懂 qwq
这题其实可以被猜出来答案,那个叫 zzy 的小学生巨佬就猜出来了,自闭........
答案非常简单,就是把所有的点排一下序,然后最中间的两个点的区间就是答案,如果个数为奇数,就取最中间的点。
但是怎么证明呢??
这是我这几天订正过最短的代码了 qwq
$Fixed$ $Code$:100%
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
const int MAXN = 1e5 + 5;
int a[2 * MAXN], n, cnt;
int main() {
freopen ("linear.in", "r", stdin);
freopen ("linear.out", "w", stdout);
scanf ("%d", &n);
for (int i = 1; i <= n; i++) {
int l, r;
scanf ("%d%d", &l, &r);
a[++cnt] = l;
a[++cnt] = r;
}
sort (a + 1, a + cnt + 1);
printf ("%d %d\n", a[n], a[n + 1]);
fclose (stdin);
fclose (stdout);
return 0;
}
听老师说是一个非常烂的题,因为这道题可以看做是两道题,第一道题的答案当做第二题的数据 qwq
这题要用差分约束 > _ <(我不会啊~~)
本文作者:Snowflake_Pink
本文链接:https://snowflake.pink/archives/82/
最后修改时间:2020-04-14 09:06:10
本站未注明转载的文章均为原创,并采用 CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!