2019.11.summary

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即可

你可能感兴趣的:(刷题总结)