ustc三月月赛解题报告

AB水题,C是斜率优化的动态规划。

报告从D开始。

D 高精度乘法。

题目的bug带来了比较大的困扰,之后许多弱弱的小毛病也耽误了不少时间

 

E 找每点最近三个点

赛后写的算法其实和比赛时思路是一致的。这个算法肯定不算是正统的, 不过解决一些随机产生的,分布比较平均的数据应该还是可以的(含有人品因素)。具体解法是:把所有点进行一个先比x再比y的排序,然后对每个点i在排序表里上/下交替地找一些点j进行比较,当i和j的x坐标差大于得到的最近三个距离的时候,就可以停止枚举了。

写的时候没有交替地在排序表里上/下寻找邻进点,时间花得比较多。

还有在精度问题上卡了非常久,最后还是放宽了很多地方才AC的。

 

F 集合的操作

这道题其实就是经典的集合操作,关键在于如何合并这些操作。

操作最终可以归结为染色和取反两种,分别写好就可以了。

并运算对应的是T部分的染1色。

交运算对应的是非T部分染颜色0,即S中不在T里的部分染成0。

S-T运算就是把T部分染成0色。

对称差运算对应的是T部分中属于S的染成0,不属于S的染成1。这里用到异或/取反。

T-S运算复杂一些:

先把T部分中属于S的染成0,不属于S的染成1。这里用到异或/取反。

再把整区域中非T的部分染成0

这一道题纠结了非常久主要是由于T-S部分的运算没有弄清楚,漏掉了一部分。却一直以为是线段树写的有问题,非常久了才找到问题所在。

 

G 网络流

还没有写,大概想了一下构图,但是可能不是最好的。

字符串处理也比较不熟,用STL应该会比较好。

对网络流的算法不是很熟悉,以后找一段时间来突击一下。

H 快速幂

如果能往快速幂方向去想了应该就能比较快得到这个思路,只可惜比赛的时候很二地去推通项,以为能得到一个带有规律的迭代项……

这一道题在long long和int上纠结了比较长时间,太弱了。起初打算偷懒,变量都写成long long的,但是中途发现各种问题,就改掉了。最后得出的结论是,其实int都够用,只是偶尔中间有大数乘积的时候需要用long long暂时放一放再%prime。

long long的输入还是用cin比较靠谱(输出用cout,这题没用到)。还得到一个结果是__int64或者long long最好不要直接和0比较,这一次挂掉了,虽然不知道理论原因,不过知道了可以改写成“if (abs(n-0)<0.5) break;”这样的判断。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值