CDQ

额。。。忘得差不多了

1.陌上花开:

如何去重:我们直接去重,然后对于每一类数,贡献再加上tot - 1,我们直接对个数开桶即可。

2.动态逆序对:

下午一开就嘎嘎打,然后疯狂调,发现:我只考虑了当前数和之前形成的对,没有考虑这个数和后面数形成的对。

我们可以cdq求出这个数的贡献,然后对时间开桶,后缀和一下就行。

fake了。

不知道为啥,换成所有逆序对减就对了。麻了,推式子,自闭,去做核酸,还把cd得罪了。。。。都不理我了,看来得使用七分饱了。

为啥fake了?

因为时间一维没有整成偏序,我把没有删去的数的时间都设为了m + 1,然后这样我对于第二位偏序就必须是<=,但是对于x,y都没有被删的情况会贡献两次,答案就偏大了。

发现的历程:因为我觉得我的做法就是对的(虽然洛谷题解没有人这么写,我也不知道哪来的自信),没有什么问题,但是答案偏大,那么一定是算重,发现<=,开始思考<=为啥是对的,想到<=不对。然后给时间这一维强制一个偏序关系,让它不算重,然后切了。

1.推式子,考虑贡献的时候一定要确定一个pos,这样好想一点。

2.整偏序关系的时候可以n - a + 1,改变偏序关系。

3.对于时间的也要整出来一个偏序关系。

posted @ 2022-11-20 17:24  zasdcn  阅读(111)  评论(4编辑  收藏  举报