2019.11.summary

本文分享了算法竞赛中的解题思路与技巧,包括使用主席树、线段树优化建图的最短路、数位DP等高级数据结构与算法,以及在解决复杂问题时的通用构造思想。

2019.11.10
BZOJ2653: middle
挺好的题,要先知道一个二分求中位数的trick
然后上主席树就好了,懒得多嘴了qwq
调了2天,因为以前写const没感觉,现在写define直接写的20000+10
然后下面N*40,#define是直接把你写的带入,然后就GG了
(虽然调题的时候发现自己最近弱智到主席树模版也挂了一次,捂脸)


2019.11.14
BZOJ1303: [CQOI2009]中位数图
还是中位数的那个trick,但是一开始没有考虑到必须要跨过这个数……
naive啊


2019.11.16
丢脸了被烤炸了
Vp了一场耍耍?
CF805D
从D开始稍微有点意思
没想出来,看了hint
考虑终态肯定是所有的b在所有的a前面
倒着扫一遍,碰到b就cnt++
碰到a说明要和后面所有的b组合一次,ans+=cnt,然后cnt<<=1

CF805E
好暴力啊?为啥我现在连暴力这么显然的做法都不想写?
显然答案为max(sz)
然后某个点用vector存一下,然后直接染色?太艹了


2019.11.18
CF798D
好题啊?
这题不太会,
首先可以乱搞,直接random_shuffle,然后检验前一半可不可行,听说也还能过?orz
正解要用到这类题的通用构造思想
先把a记个位置拍个序
然后a[1]的位置必取,然后接下来两个两个考虑,取b大的那个
这样b序列肯定满足要求了
A序列第一次去的肯定比第二次取完剩下的大……第二次肯定比第三次剩下的大……然后就这样也得证了
好妙啊!


2019.11.19
CF798E
只会搜QAQ
像这个问题应该挺显然可以建图然后拓扑排序的啊
设b[i]为i被谁标记了,如果没有就为n+1
显然b[i]比i小,还有[1,a[i])中没有被mark的一定也比i小
如果b[j]>i则没有被标记,线段树维护一下区间即可
一开始我觉得a[i]后面的也可能比i小啊,但那是不确定的,我们这里只需要把所有确定的大小关系列出来建一个dag然后toposort即可


2019.11.20
CF789D
思维题想不出啊
问题可以转化为选出两条边,然后把其余的边变为2条,然后求是否为欧拉通路
分类讨论一下发现
只能是一条边是两条正常边共顶点,一个是正常边一个是自环,2个都是自环这三种情况
如果m条边没有把提到的所有点联通起来的话就输出0


2019.11.21
CF789E
想到了平均数为n,那就把每个数-n
然后做背包看能不能做到0
因为数组要平移,所以n^3要死
因为最后答案一定<=1k
所以你枚举答案,然后做dp[i][j]表示能不能装到j,用bitset存,第一维滚掉就行了

CF787C
好题啊,流泪
我没想出来
由于博弈游戏的状态转移关系,应该能想出来dp
然后因为loop的情况不好处理,所以倒着bfs,没有vis到的状态就是loop


2019.11.23
CF787D
学习了线段树优化建图的最短路,挺有趣的?


2019.11.24
CF787E
主席树啊我怎么没想到数据结构呢,还是学的不够活啊
首先肯定是贪心对吧
然后查询的那啥倒着建一个主席树即可


2019.11.30
CF810E
有一个关于mex和xor的小trick需要推一下(其实应该是感性理解吧……
然后数位dp即可

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值