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

博主分享竞赛解题过程,A题小心作答后通过,B题联想到特殊情况提交代码也通过。C题采用离散化 + set思路,预测试通过但赛后WA。失误原因是在tot==n且大根堆顶大于小根堆顶时,未考虑可删一个矩形使剩余n - 1个满足题意。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

又是爆炸的一场

1251265-20180828081431484-803708356.png

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

看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个也满足题意!我显然漏算了这种情况。。

转载于:https://www.cnblogs.com/AWCXV/p/9545943.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值