csp-s模拟测试51(b)attack,tree题解】的更多相关文章

题面:https://www.cnblogs.com/Juve/articles/11598286.html attack: 支配树裸题? 看一下支配树是什么: 问题:我们有一个有向图(可以有环),定下了一个节点为起点s.现在我们要求:从起点s出发,走向一个点p的所有路径中,必须要经过的点有哪些{xp}. 换言之,删掉{xp}中的任意一个点xpi以及它的入边出边,都会使s无法到达p. 对于此题而言,建出支配树就可以了 具体步骤: 我们用bfs实现,在新树中,一个节点x要连向原图上所有能到它的点在…
考试过程: 惯例先看一遍三道题,T1 一开始反应要求割点,但是这是有向图,肯定不能求割点,康了一下数据范围,有40%是树的,还不错,决定待会在打. 看T2 字符串题,完了我字符串最弱了,肯定只能打暴力了,带着前两题都不会的心情,看了T3发现是期望,完了爆0了,在一看,发现是sb原题,还简单一点,赶紧把T3码了一遍过大样例,觉得很稳就交了,然后用一点时间把T1树的分给码了,然后开始磨T2,发现啥都不会开始dfs,一开始觉得只能拿30pts,后来发现没有回溯是$O(n^2)$的,打完就没剩多少时间了…
错失人生中第一次AK的机会…… A.attack 支配树板子题.考场上发明成功√ 首先支配树上两点路径之间的点都是必经之点,根据这个性质我们就可以yy出建树的方法.跑拓扑,在每个点(设为$x$)即将入队之前利用反图找到$x$的入点,显然这些点都不是根到$x$的必经之点.那么谁才是呢?这些点在支配树上的lca.因为建树是拓扑进行的,所以$x$入队一定是在它的入点入队之后,也就是说这些点此时已经在树上了,那么就可以查询到这些点在支配树上的lca并由它向$x$连边(支配树上). 如果把根节点深度设为1…
题面:https://www.cnblogs.com/Juve/articles/11631298.html permutation: 参考:https://www.cnblogs.com/clno1/p/10832579.html 因为原来的数组不好做于是我们想反过来数组,根据交换条件:值相邻且位置差大于等于k,那么在变换后的数组就变成了位置相邻且差值大于等于k.这样的话变换操作变成了,相邻的大于等于k的值临近交换,于是我们注意到因为现在只能临近交换的原因,两个差值小于k的数他们的相对位置不可…
总参赛人数:15 有点菜. 不知道是撞了什么大运没有滚出A层. 但是一回到A层就暴露出了一个大问题:码速. 不是调试速度,,就是纯粹码的速度... 边讲考试状态边说吧... 上来肝T1.一看,是个换根的题?没做过啊... LCT?啊?还要维护子树???这不是之前看的top_tree吗? 600行的玩意考场上还是不要考虑的. 然后就走上了一条不归路. 一个真正坑的暴力就是暴力的码量和调试难度都比正解还高. 幸而都是打熟了的东西,板子出锅倒不多. 但是纯粹码出来用了一个小时???感觉状态也不是很好.…
T1:还在头铁,顺便复习了一下lct[虽然这题用不上因为复杂度不对] 头铁结束. 虽然题目存在换根的操作,实际上并不用真的换根. 2操作中求lca的时候只要考虑原树上root和x.y的lca以及x,y的lca,三个中取最深的就是现树上x和y的lca. 关于u的子树整体操作需要分类讨论.如果现根不在原树上u的子树里,那么在新树上的目标子树与原树相同,直接操作.如果u就是root,那么直接整棵树都操作.最后如果root在原树上u子树里,那么需要反一下,应当进行操作的部分是整棵树上除了u包含root的…
看到这个标题我想你一定会想为什么小编只发T3,T4的题解,原因有很多:1)小编也不怎么会讲:2)小编搜遍各大OJ,都没有找到可以提交的地方:3)虽然给了测试数据,小编懒得一个一个试.如果你找到了测评网址,欢迎留言. 先说T3,题目如下: C.团伙 [问题描述]    TEIAI 集团共有 n 名员工,编号为 1~n.由于长期的权力斗争,他们形成了复杂的势力网络.对于任意两名员工,他们可能是朋友,可能是敌人,也可能没什么关系.并且这种关系满足:(1)朋友的朋友是我的朋友:(2)敌人的敌人也…
首先计算块内贡献,很显然是$(x_2-x_1)*(y_2-y_1)*2$. 然后考虑矩形之间的贡献,sort一遍分类讨论$n^2$暴力即可. 注意考虑边界情况是否能多两个,以及角对角的情况. 另外,排序之后可以通过剪枝排除无用情况(j从i+1开始枚举以及那个break)来实现$n^2$过十万的梦想 #include<cstdio> #include<iostream> #include<cstring> #include<algorithm> using n…
Orz 送分比较慷慨的一道题,疯狂特判能拿不少分. 对于$a>0,b>0$的情况: 用exgcd求出方程通解,然后通过操作得到最小正整数解和最大正整数解 他们以及他们之间的解满足等差数列性质,小学数奥求项数即可 (其实就是(末项-首项)/公差+1) 其他情况特判掉或者转化为可处理情况即可(比如全负),不多说,代码里写的还是比较清晰的 //#define XR #include<cstdio> #include<iostream> #include<cstring&…
题面(加密) 不得不说这次的题除了引起单身汪极度不适之外还是出的很有水平的…… A. 很好的dp题 模型非常简单,如果数据范围足够友好的话就是一道dp入门题 30%: 我们可以设$dp[i][j]$为到第i天一共喂食给出了j块饼干的方案数 易得转移方程:$dp[i][j+k]=\sum \limits_{k=0}^{min(m-1,n-j)}{dp[i-1][j]}$,i枚举天数,j枚举已给出数量,k枚举下一步给出数量 $\sum \limits_{i=1}^{n}{dp[i][n]}$即为答案…