又是爆炸的一场
心态有点小崩。但问题不大。。
看A题,一直担心有多个正方形。。小心翼翼地看完之后,毅然地交上去了。
[00:08] A【Accpted】
然后开始看B题。
觉得和之前做的某题很像,但翻了翻发现那题是i-s(i)所以才有单调性.
然后继续想啊想。突然想到a+b==10000的话岂不是美滋滋。
然后看了下位数的限制,很开心的交了两行代码上去.
[00:20] B 【Accpted】
然后开心地去看C。
发现这不就是一道离散化+set的题吗?
对x离散化。然后对于x1..x2这一段。把v[x1].push_back({y1,y2})然后vv[x2].push_back({y1,y2});
然后for (int i =1 ;i <= 2*n;i++) 对于v[i].size()>0的,tot+=v[i].size();然后把v[i]对应的y1放在大根堆,y2放在小根堆
如果大根堆堆顶<=小根堆堆顶 且tot>=n-1
那不就ok了?输出i对应的x以及大根堆到小根堆中任意一个值作为y..
想法很美好。。。
[00:40] C 【Pretest Pasted】
赛后C题WA了。。
为什么这个思路错了呢?主要在于tot==n的情况。这种情况,如果大根堆堆顶>小根堆堆顶。我们不能简单地认为
没解,因为我们可以将其中任意一个矩形删掉的!还剩n-1个也满足题意!我显然漏算了这种情况。。
posted @
2018-08-28 08:25
AWCXV
阅读(
364)
评论()
编辑
收藏
举报