记近半年来最失败的一次考试——正睿OI成都附加赛
作者:互联网
一场考试让我成了自( xin )闭( tai )症( bao )患( zha )者
说起来这次的题还真是让人丧心病狂,第一题只有8个人AC,最高分没上200分,这真的是csp-s模拟赛吗。
T1总结:
我总结出的性质:
- 最优的一对CP不一定在全局最优解中。
- 若不考虑可攻可受的人的存在,本图就是一张二分图,可以用费用流来做。(然而无法解决可攻可受的问题,因此是指数级别的复杂度——唯一能想到的方法)
- 若选中了A,与A最优的CP不一定会被选中。
得出的结论是贪心是不可行的(想了1个多小时贪心,还是不知道怎么贪)
这种时候就应该悬崖勒马,考虑动态规划,因为如果方向错了是永远都想不出来的。
我未总结出的性质:
- 先假设所有人的熟练度都不一样,那么按照熟练度从小到大排序之后,组长一定在组员的后面,然后考虑前i个人。这样做的好处在于使得DP有了一定的拓扑序,不会出现DP到了后面还要去前面选人的情况,把复杂度由指数级变为多项式级。
- 我们考虑的是前i个人,故可能出现选了组员没选组长的中间态,然而选了组长没选组员的情况是不存在的,因为排序过后一定是先选组员再选组长。可以设f[i,j,k]表示前i个人中有j对CP,k个单身组员的所有方案的集合的最小代价。
- DP的正确性:我们只关心选了多少对CP,而不关心具体选了哪些CP,对于2n个可以组CP的人,我们只关心他们总共的花费,而不关心具体是谁和谁组CP。事实上,若已经选了x个组员,要选一个组长,那么组长和任何一个组员组CP都是可以的,因为此时组长的熟练度一定是大于组员的,后面的组长的熟练度也一定大于当前所有组员,因此可以随便换妻,然而事实上,换不换都是一样的
- 针对熟练度相同的情况,顺序是 受->可攻可受->攻。因为组员要在组长之前被选,对于可攻可受的人来收,谁先选都一样,对于前面的他是组长,对于后面的他是组员(如果是小于的话则先后顺序无所谓)
- 若2k>n,则一定无解,故n>=2k,由于2kk<=n*k<=1e5,故算法复杂度\(O(1e5*\sqrt[1e5])\)
标签:OI,组长,正睿,组员,可受,可攻,CP,附加赛,熟练度 来源: https://www.cnblogs.com/White-star/p/11632171.html