jsoi2018 R1R2】的更多相关文章

Jsoi2018 R1: D1:T1:签到题,状压dp,(思考:讲题人说可以卡一卡空间,怎么做?) T2:50pts:贪心,因为无重复 100pts:线段树合并? T3:25pts 树形dp D1:T1:签到题,网络流,(玄学复杂度)(思考:讲题人说什么网络流/匹配都可以过). 实际得分:50pts 写了C=1的分支, if(c==1)baoli();else Dinic(); 结果正解写对了,暴力写炸了. T2:树形dp,线段树合并 T3:SAM R2: D1:  T1:树形dp 80pts…
[JSOI2018]潜入行动 树形\(DP\).设\(f_{i,j,0/1,0/1}\)表示以\(i\)为根的子树中,用了\(j\)个监听器,是否放置了监听器,是否被监听的方案数.转移就多讨论几种情况就好了. 关键问题是直接这么做是\(O(NK^2)\)的. 解决方案就是,我们别\(DP\)边维护子树的大小\(size\),每次枚举子树的监听器的时候不能超过\(min\{size,k\}\).这看似只是一个常数优化,但其实可以吧复杂度降到\(O(NK)\). 可以看这位dalao的证明 \(DP…
[BZOJ5318][JSOI2018]扫地机器人(动态规划) 题面 BZOJ 洛谷 题解 神仙题.不会.... 先考虑如果一个点走向了其下方的点,那么其右侧的点因为要被访问到,所以必定只能从其右上方的点走过来.同理,如果这个点向右,那么其下方的点就只能从其左下方的点向右走过来. 因此我们可以确定所有平行于副对角线的斜线上的位置的方向都是相同的. 考虑\(n=m\)的情况,从一个点开始无论向右开始向下,都只会走到下一条对角线上,因此这个过程本质上就是就是固定了一个向下向右的序列,然后循环这个操作…
[BZOJ5316][JSOI2018]绝地反击(网络流,计算几何,二分) 题面 BZOJ 洛谷 题解 很明显需要二分一个答案. 那么每个点可以确定的范围就是以当前点为圆心,二分出来的答案为半径画一个圆,和目标的圆的交就是可行的区间. 首先我们不知道正\(n\)边形的转角,如果我们知道的话,可以直接暴力网络流来进行\(check\). 首先一个答案可行,意味着某个点在目标圆上覆盖的弧的两端中,一定有一个是可行的. 所以我们需要验证的转角只有\(2n\)个.这样子暴力跑网络流的次数是\(2nlog…
[BZOJ5314][JSOI2018]潜入行动(动态规划) 题面 BZOJ 洛谷 题解 不难想到一个沙雕\(dp\),设\(f[i][j][0/1][0/1]\)表示当前点\(i\),子树中一共放了\(j\)个,这个点是否放了,这个是否被覆盖了. 看起来直接合并是\(O(nk^2)\)的QwQ..... 然后我以为是\(O(nk^2)\)的就不会做了嘤嘤嘤. 实际上是\(O(nk)\)的... 证明大概是这样的: 考虑什么时候会产生\(O(k^2)\)的贡献,即一个点有两棵子树的大小大于\(k…
[BZOJ5315][JSOI2018]防御网络(动态规划,仙人掌) 题面 BZOJ 洛谷 题解 显然图是仙人掌. 题目给了斯坦纳树就肯定不是斯坦纳树了,,,, 总不可能真让你\(2^n\)枚举点集再来一个至少\(2^n*n\)的斯坦纳树吧... 现在对于每一条边考虑贡献. 如果这条边是不在环内,那么这条边被选当且仅当其子树内外都有点备选,这个随便算算就知道贡献了. 然后就是环上的边,只考虑这个环,如果一个点的子树内选择了点的话就把环上这个点给标记出来,那么最后选择的东西就一定是整个环的长度减去…
[BZOJ5317][JSOI2018]部落战争(凸包,闵可夫斯基和) 题面 BZOJ 洛谷 题解 很明显我们只需要两个凸包\(A,B\). 假设询问给定的方向向量是\(v\). 那么现在就是判断\(B+v\)与\(A\)时候有交集. 转移一下改为判定向量\(v\)时候在\(A-B\)中,翻转\(B\)的坐标,做闵可夫斯基和得到\(A-B\). 那么每次只需要判断向量\(v\)是否在凸包内即可. #include<iostream> #include<cstdio> #includ…
「JSOI2018」战争 解题思路 我们需要每次求给一个凸包加上一个向量后是否与另外一个凸包相交,也就是说是否存在 \[ b\in B,(b+w)\in A \] 这里 \(A, B\) 表示凸包内部的点集,可以转化一步变成 \[ a\in A,b \in B,b+w=a \\ w =a -b \] 那相当于对 \(A,(-B)\) 作闵可夫斯基和,判断 \(w\) 是否在新的凸包内部,把新的凸包划分成三角区域,让 \(w\) 和原点做一条向量,二分一下在哪个区域然后判断一下在区域内部还是外部就…
[Luogu4558] [LOJ2550] \(19.3.25\) JSOI2018简要题解 - FallDream 规律就是 对于\(n=m\)我们每一条左下到右上的对角线上的点的走法都是一样的且每\(n\)步一个轮重复 对于\(n!=m\)我们找到最大公约数\(d\),在每个\(d∗d\)的方格里满足左上到右下的对角线点的走法一样且\(d\)轮一个重复 然后枚举\(dx,dy=d−dx\),我们要满足\(gcd(n,dx)==1且gcd(m,dy)==1\)这时是一个合法路径 显然有一些点是…
来自FallDream的博客,未经允许,请勿转载,谢谢. 有幸拜读到贵省的题目,题的质量还不错,而且相比zjoi可做多了,简单发一下题解吧. 还有就是,怎么markdown在博客园上的代码这么丑啊 「JSOI2018」潜入行动 不难想到一个dp,用f[i][j][0/1][0/1]表示i的子树内放了j个监听设备,i这个节点是否放置,i是否已被监听的方案数. 表面上看起来是\(O(nk^{2})\)的,但是仔细考虑发现转移显然不满,复杂度是\(O(nk)\) #include<bits/stdc+…