大江东去,浪淘尽,千古风流人物。故垒西边,人道是,三国周郎赤壁。乱石穿空,惊涛拍岸,卷起千堆雪。江山如画,一时多少豪杰。遥想公瑾当年,小乔初嫁了,雄姿英发。羽扇纶巾,谈笑间,樯橹灰飞烟灭。故国神游,多情应笑我,早生华发。人生如梦,一尊还酹江月。

记近半年来最失败的一次考试——正睿OI成都附加赛

一场考试让我成了自( xin )闭( tai )症( bao )患( zha )者

说起来这次的题还真是让人丧心病狂,第一题只有8个人AC,最高分没上200分,这真的是csp-s模拟赛吗

T1总结:

我总结出的性质:

  1. 最优的一对CP不一定在全局最优解中。
  2. 若不考虑可攻可受的人的存在,本图就是一张二分图,可以用费用流来做。(然而无法解决可攻可受的问题,因此是指数级别的复杂度——唯一能想到的方法)
  3. 若选中了A,与A最优的CP不一定会被选中。

得出的结论是贪心是不可行的(想了1个多小时贪心,还是不知道怎么贪)

这种时候就应该悬崖勒马,考虑动态规划,因为如果方向错了是永远都想不出来的。

我未总结出的性质:

  1. 先假设所有人的熟练度都不一样,那么按照熟练度从小到大排序之后,组长一定在组员的后面,然后考虑前i个人。这样做的好处在于使得DP有了一定的拓扑序,不会出现DP到了后面还要去前面选人的情况,把复杂度由指数级变为多项式级。
  2. 我们考虑的是前i个人,故可能出现选了组员没选组长的中间态,然而选了组长没选组员的情况是不存在的,因为排序过后一定是先选组员再选组长。可以设f[i,j,k]表示前i个人中有j对CP,k个单身组员的所有方案的集合的最小代价。
  3. DP的正确性:我们只关心选了多少对CP,而不关心具体选了哪些CP,对于2n个可以组CP的人,我们只关心他们总共的花费,而不关心具体是谁和谁组CP。事实上,若已经选了x个组员,要选一个组长,那么组长和任何一个组员组CP都是可以的,因为此时组长的熟练度一定是大于组员的,后面的组长的熟练度也一定大于当前所有组员,因此可以随便换妻,然而事实上,换不换都是一样的
  4. 针对熟练度相同的情况,顺序是 受->可攻可受->攻。因为组员要在组长之前被选,对于可攻可受的人来收,谁先选都一样,对于前面的他是组长,对于后面的他是组员(如果是小于的话则先后顺序无所谓)
  5. 若2k>n,则一定无解,故n>=2k,由于2kk<=n*k<=1e5,故算法复杂度\(O(1e5*\sqrt[1e5])\)

T3总结

由于T2更难,故先总结T3。

一:

55分是很好骗的,若只有+操作或只有操作,可以直接维护一个全局变量。也可以通过全局变量来维护,因为她也满足结合律,但考试时脑残了没想到。

事实上,考试时把multiset开成set,只有25分

也可以选择维护一个懒标记状物

二:

posted @ 2019-10-07 20:48  White_star  阅读(235)  评论(0编辑  收藏  举报
}