标签:OI 组长 正睿 组员 可受 可攻 CP 附加赛 熟练度
一场考试让我成了自( 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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。