首页 > 其他分享 >P5289 [十二省联考 2019] 皮配

P5289 [十二省联考 2019] 皮配

时间:2023-10-28 12:15:23浏览次数:30  
标签:特殊 皮配 复杂度 我们 P5289 选手 做法 联考

很容易想到设 \(dp_{i,j,k}\) 表示考虑前 \(i\) 个阵营,\(C_0=j\),\(D_0=k\) 时的方案数,层内转移时可以用辅助数组对两种阵营决策分别转移,此时时间复杂度为 \(O(nM^2)\)。

考虑 \(k=0\) 的情况,如果我们能做这个的话,\(k=30\) 其实就是在暗示我们把特殊选手拆出来单独做。而如果所有选手都没有偏好,我们发现 \(C\) 和 \(D\) 其实是独立的,即,我们完全可以先用每个城市对 \(C\) 一维做背包,再用每个选手对 \(D\) 一维做背包,此时时间复杂度 \(O((n+c)M)\)。

到这里我们已经有了 \(70\) 分。

此时一个很自然的思路是,我们对非特殊选手用第一种做法,特殊选手用第二种做法。但特殊选手也 需要和其城市内的其它选手选到一个阵营,故我们并不能完全独立地将其拉出来做。不过考虑 \(C,D\) 既然完全独立,我们把存在特殊选手的城市也拆出来单独做不就好了嘛。

具体地,我们对于非特殊选手和不含特殊选手的城市用第二种做法做一遍,再对含特殊选手的城市及其内部的特殊选手用第一种做法做一遍,最后拼起来即可。

此时时间复杂度 \(O(kM^2)\),常数巨大,且需要滚动数组优化空间。根据常数的优化不同可以拿到 \(60\sim 90\) 的分数。

再读题,发现我们还有条件 \(s_i\le \min(M,10)\) 没用到,这样以来 \(k=30\) 时特殊选手的人数总和不会超过 \(10k\),减少枚举时间复杂度即可被优化为 \(O(k^2M)\) 带一个 \(10\) 的常数,就过了。

独立无关变量,单独处理特殊变量。

标签:特殊,皮配,复杂度,我们,P5289,选手,做法,联考
From: https://www.cnblogs.com/ydtz/p/17793925.html

相关文章

  • 【多校联考NOIP#3】比赛复盘 && 题解
    A.卡牌这次比赛,一道签到题都没有。本来以为是线段树上二分。就类似于花神的数论题那道,刚开始暴力修改(修改到线段树的每一个叶子节点),然后由于boss的attack在不断增加,到了\(Att_i>=hp_j\)的时候,\(j\)这个牌顶多打一次,如果一个区间的\(max\)都小于boss的攻击力了,那么就不......
  • 八点五省联考 2018
    一双木棋状态数不多,直接爆搜https://loj.ac/s/1676274IIIDX考虑依次给\(i=1,2,\cdots,n\)填上数,每次尽量填最大的。考虑什么时候\(i\)填上\(x\)是合法的。考虑Hall定理,发现左部点约束最严的时候肯定是找一个已经填过的点\(u\),然后对所有\(d_v\ged_u\)的\(v\),选出......
  • 联考test1009
    写在前面的话感觉比以往的比赛难多了。出题人卡高精度,不好评价,但是题目还是好题。考试的时候开题顺序为\(T1-T3-T4-T2\),感觉和题目的实际难度排序差不多。考试的时候懒了,没有去拼暴力,实际得分\(80+0+100+0=180\),总体排名\(rk29\)。\(T1\)题意简述我们知道,对于一个整......
  • 2023.09.26 联考总结&题解
    T1derby你考虑直接贪心进行匹配即可,就是说对于每一个\(1\)去匹配最大的\(0\)#include<bits/stdc++.h>usingnamespacestd;intn,m;vector<int>A[2],B[2];intmain(){ freopen("derby.in","r",stdin); freopen("derby.out","w",s......
  • Luogu P5290 [十二省联考 2019] 春节十二响
    LuoguP5290[十二省联考2019]春节十二响题目链接题目大意一颗有根树,有点权,把点分成若干个集合,要求每个集合内不包含祖先关系,求集合的最大值的和的最小值.做题思路考虑合并两个集合,我们只需要不停把分别吧两个集合的最大值取出取max加入答案,再把大集合剩下的内......
  • [DS记录] P6623 [省选联考 2020 A 卷] 树
    题目传送门\(\rmTrie\)树的一些牛逼应用异或和是可以用\(\rm01-Trie\)维护的。我们发现对于一个点\(x\),需要需要维护\(x\)子树的所有点的异或和,这可以理解成\(\rmTrie\)树的合并。同时有一个\(d(y,x)\)的存在,其实考虑\(\rmdfs\)的过程,相当于先合并所有子节点的......
  • [十二省联考 2019] 春节十二响
    题目链接。题意给出一棵有\(n\)个节点的树,要求你将集合\(\{1,2,\dots,n\}\)划分成若干个子集,使得没有子集拥有节点对满足两个元素在树上是祖孙关系。你需要最小化子集的最大值之和。先考虑带有启发性的子任务\(4\)(树是一颗链)。具体来说,树有以下两种形态:根节点是链的......
  • [九省联考 2018 D1T3] 秘密袭击
    考虑转化为求\(\gei\)的权值个数\(\gek\)的联通块数量。设\(f(u,i,j)\)表示\(u\)子树内含\(u\)联通块内权值\(\gei\)的有\(j\)个的方案数,\(g(u,i,j)\)维护子树的和,也就是最终答案。发现转移非常简单所以可以写成生成函数:\[F(u,i)=x^{[d_u\gei]}\prod_{(u,......
  • 洛谷 P6620 [省选联考 2020 A 卷] 组合数问题
    前置知识二项式定理\[(x+y)^n=\sum_{i=0}^n\binomnix^iy^{n-i}\]组合恒等式\[k\times\binomnk=n\times\binom{n-1}{k-1}\]题解先不管取模的事情。考虑把\(f(k)\)中次数相同的项拿出来,则原式可化为:\[Ans=a_0\sum_{k=0}^nx^k\times\binomnk......
  • SDFZ 8 月联考游记
    前言现在写的时候已经是\(\mathsf{15}\)号了。省流:\(100+100+100+100=400\)。Day0大颓,打原神+崩铁。崩铁刷出极品双爆衣,感觉明天会寄掉了。晚上随便刷点区间dp睡觉。Day1\(8:00\)到校,发现\(9:00\)才开考。清峥说会有矩阵乘法的题目,所以复习了一下。接下来就是......