冬令营模拟day2总结
今天是模拟day2的冬令营,考得很差,题答题还把一个数据点看错了。前面一道仙人掌上的点分(求最长简单路径),一道杜教筛都不会,连暴力分都没有拿全。
仙人掌点分的题图上因为有树型的20分,注意到最长路径只可能是新加的一个点和直径的任意一端的距离或以前的直径。离线出树的形态,直接l倍增lca求一下路径,记录一下直径两端和长度即可。;
正解在先人掌上点分需要讨论多种情况,如每一层环的走法,经不经过环的顶部或底部。主要分两种情况考虑:首先,分层后的子仙人掌的答案可以直接处理,但必须删掉当前根与它相连的所有环上的边(我也不知道为什么,不过每层递归删的边肯定是越多越好);第二,考虑把环上所有的边都删掉后,这个环上的自仙人掌之间的路径长度就必须处理出来,这就必须分类讨论上述情况了。(当然,直接与根相连的自仙人掌问题直接考虑就行了)
总体来说,这道题的思路是先离线构造仙人掌的形态,再重新考虑每一个询问,用点分治的思想动态维护。
主要思路
点分治:适用于子树性质,特殊性质路径,对整体进行考虑的过程中将整体分割为log个子问题,因为子问题规模小,易处理,只合并子问题即可。需要满足性质:图中子问题易分开,可以保证复杂度。对于子问题合并时,讨论情况不多,已统计答案。
离线:维护图的形态,处理询问:适用于形态改变,但最后形态确定,每一个问题需要用到整体的形态,维护的东西难以随着形态的改变而改变(难以动态维护)。分布考虑每一个子问题。
题答题做法巧妙:贪心的跑最短路,每跑完一次将走过的边权+1
注意不要将两个dfs的调用混为一潭
杜教筛不会,应抽时间学一下
题面
挪威的森林是一片不曾存在的森林。
那个森林很大,里面什么植物都有。
渡边在其中发现了一颗渐渐生长出来的——仙人掌。是的,它会慢慢长出点和环。
渡边很好奇它的最长简单路径长度。
【输入格式】
第一行为整数 T,表示操作次数。
节点从 1 开始依次编号。开始仅含 1 号点。
接下来 T 行,每行先给出一个整数 x 和 g,表示连接点和添加的点数。
记 p 为添加前点数。
若 g=1,则表示添加一个点 p+1,并与 x 相连。
若 g>1,则表示添加一个环 p+i (1<= i <= g),点 p+1 与 x 相连,点 p+i 和 p+i+1 顺次相连
(1<= i < g),点 p+g 和 x 相连。
记加入的点数为 N。N <= 100000。
【输出格式】
每次操作后,输出答案。
【样例输入】
2 1
1
1 3
【样例输出】
1 4
【数据规模】
记点数为 N。
对于 20%的数据,N<=1000。
另有 20%的数据,满足所有 g=1。
现在,你要做的是在数论中舞!舞!舞!——已知 f(N)求第 K 小的 N。
这里的 f 可以是莫比乌斯函数、欧拉函数和除数个数函数σ0。
【输入格式】
三个正整数 type,f(N),K,分别表示函数类型、函数值和 K。
莫比乌斯函数为 1,欧拉函数为 2,除数个数函数为 3。
【输出格式】
一个整数,表示满足条件的第 K 小的 N。
【样例输入】
注意以下每行都是独立的数据。
1 1 1
2 1 1
3 1 1
1 1 70926127
2 219104256 14
3 123 4
【样例输出】
1 1 1
233333333
233333333
133040906960896
【数据规模】
以下数字表示上限。
数据点 type F(N) K 其他
1 1 10^6
2 1 10^8
3 1 10^8
4 2 10^6 1000 答案<=10^6
5 2 10^10 1 答案<=10^12
6 2 10^10 1000 答案<=10^12
7 3 10^3 1 答案<=10^9
8 3 10^7 50 答案<=10^18
9 3 10^7 50 答案<=10^100
10 3 10^7 50 答案<=10^100
这个荒诞的世界充满着追寻,有意义的,没意义的。
现在有若干个人在无向图上从各自的起点走向各自的终点,希望你引导他们,并能使得走过
人最多的边的走过次数最少。
【输入格式】
第一行三个数 n,m,p。表示图的点数、边数和人数。
接下来 p 行每行两个数,表示每个人的起点和终点。
接下来 m 行每行两个数,表示图中的边。图无重边和自环。
【输出格式】
共 p 行,每行第一个数表示路径的节点数 e,接下来 e 个数表示从起点到终点依次经过的节
点编号。
【样例输入】
4 4 3
1 4
1 4
3 4
1 2
2 4
1 3
4 3
【样例输出】
3 1 2 4
3 1 2 4
2 3 4
【评分标准】
这是一道提交答案题。
我们按照你给出答案的优劣给分。
对于前 3 组数据,若严格比参考答案劣,则得 0 分,否则得 10 分。
对于后 7 组数据,会按优劣程度分层次给分。