tg 48
最近两天日本题
这一场是日本国赛&春令营的题
下一场是网赛题
好像日本国赛也是网赛
T1
就是啥都不会先考虑一个贪心
就是"能摇人先摇人"这样策略
事实上先摇人是比先拉票多一个分母于是更优就是显然的了
然后就是一起行动这样策略,是比分开行动优一个分母
依据上述贪心策略,我们可以对于摇人的州排序,
先选出时间最少的摇人州,再选剩下时间最短的拉票
但是摇人的不能直接钦定最短时间,
因为或许这里边某个州选摇人反而不是最优决策,可以仅拉票即可
到这里,实际上贪心不在适用
贪心假了,考虑退而求其次,考虑\(DP\)
当然还是要照上述方案排个序先
定义\(f_{i,j}\)就是在\(i\)个州已经摇上\(j\)个人的最短时间
于是状态转移
\(f_{i,j}=min(f_{i-1,j-1}+\frac{b_i}{j},f_{i-1,j}+\frac{a_i}{b+1})\)
式子的含义:
第一个贡献来源是:
已经有\(j-1\)的帮手,但是算上自己是\(j\)个人,
还要摇人,所以时间必须\(b_i\),此时演讲者\(j\)个人,时长除\(j\)
第二个贡献来源:
因为在这里只用拉票,
所以由于贪心策略我们攒够\(b\)个人再回来是更优的
不需要考虑别的,因为贪心策略在这时是钦定所以一定保证正确
考虑完\(b\)个人来源以后,
我们只需要再做个前缀和求出剩下一段时长\(a_i\)最小的部分即可
对于所有合法解更新答案即可
在这里时间复杂度\(O(n^2)\)
套上外面枚举人数就是\(O(n^3)\)
过了这题还是非常轻松的
T2
事实上会有这样一个东西:
如果会有一段区间相交且不包含,那么这两个东西不能放同一个栈
于是对于一段相交区间,对于编号连边
如果连出来没有奇环那问题不大
否则就会出现两个直连的节点处于同一个栈,
而因为这个玩意“对于一段相交区间,对于编号连边”
所以直连肯定相交,矛盾无解
于是先有一段染色判二分图是否有解
接下来考虑方案数
事实上,如果二分图上钦定了某一个点颜色
那么整张联通的子图中,所有节点的颜色都将会确定
所以事实上一个联通块的合法方案只有\(2\)种,
也就是某一个钦定的节点染黑染白对应的方案,
其他的和这两种方案本质相同
于是,应用乘法原理即可知道:
事实上答案就是\(2^{cnt},cnt\)为联通块的个数
事实上,暴力连边时间复杂度是\(O(n^2),\)这很显然
考虑优化连边过程,并查集即可做到优化连边
T3
最简单最朴素最直接最没有脑子的方法就是
暴力搜!!!
XIN队算法,天下无敌!!!
但是不加优化的XIN队算法会让你在\(NOIP\)获得XIN队一样的奖
考虑优化这个XIN队
第一个想法是记忆化搜索,
配合一些东西即可拿下\(Subtask\space 1\&2\)
第二个想法就是,
实际上我们知道\(x\)可以到的区间范围,
可以快速求出\(x+1\)的范围即可
如果\(t\)在\(s\)范围就是能行
然后:
对于一个点来说,从左边到这个点,
就是看看左边有没有这个钥匙
右边同理,
所以左右边界是否可以更新,就是看这一段有没有钥匙
考虑维护每种钥匙出现的位置
对于第\(i\)种钥匙在\([l,r]\)是否出现过,只需二分查找即可
对于每个端点,均摊查找是\(O(1)\)的,单次查找开销\(\log\)
时间复杂度\(O(n\log n)\)
T4
留坑待补?

浙公网安备 33010602011771号