【AIM Tech Round 5 (rated, Div. 1 + Div. 2) 总结】【题解往前或往后翻,不在这】

又是爆炸的一场

心态有点小崩。但问题不大。。

看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)  评论(0编辑  收藏  举报