第一次在宿舍打CF
把同宿舍的妹子吵得不行。。。
特此抱歉QAQ
A
题意:给定一个字符串, 最多删掉一个字符,使得剩余字符串字典序最小
n<=2e5
当然“最多”是假的 删了肯定比不删小
所以找到字符串里第一个字符i 满足str[i] > str[i + 1] 然后删掉str[i]显然就是最优的了
要是单调的的话 就把最后一个删了
B
题意:给定一个数n,对n做如下操作
1.如果n = 0 结束操作
2.找到n的最小质因数
3.将n减去它的最小质因数,继续操作1
现在给出n,求n会经历多少轮操作
n<=1e10
如果n是1或奇数 那么一步到位
如果n是偶数 那么一直减二就好了
如果还不是的话 那么它是奇数 它的最小质因数一定也是奇数
那么 她减去这个质因数之后就是偶数了
C
题意:T组数据 每组给一个d
求两个实数a b使得a+b==d&&a*b==d
如果有解 输出Yes a b
如果无解 输出No
d<=1e3 误差<=1e-6
二分答案。
很明显 对于a +b== d
a b的差的绝对值越小 a * b越大
l = 0, r = d / 2;
首先判定 若r*r < d那么无解
每次判定 mid * (d - mid)
若大于d 那么r = mid
反之 l = mid
最后答案就是 l, d - l
D
题意:一张无向简单连通图 n个点m条边
及每个点i到1的最短距离是dis[i]
最多能保留k条边
输出保留的边数 使得剩下的点中 到一最短距离不变的点数最多
n,m<= 3e5
当然 保留边数一定是k
裸的最小生成树么。。。
prim造最小生成树 每加入一条边 连通一个点到1的最短路
当然这个点要记录最后把它连进来的那条边编号
所以最多有k + 1个点dis[]不变(包括1)
优先队列优化一下 类似dijkstra
E
题意:一棵树n个点 每个点初始权值为一
有m个操作 每次给定的v d x
在x的子树中 与x深度差小于等于d的点 每个点加上v
操作完成后
输出每个点的权值
n,m<=3e5 其他<=1e9
这道题蒟蒻每个深度开一个set 用dfn序差分
然后最后再来个差分。。。
十分乱搞
有人说是树上主席树
不过蒟蒻还是觉得树上差分好写
F
抄作业 已知要抄n页(顺序)和常数k
每页要吵xi个表格和yi个公式
当要抄连续大于k个公式或连续大于k个表格时Vova就会觉得厌烦
现在求能否给出一种抄写顺序使得Vova不会厌烦
n <= 3e5 k,x,y<= 1e6
太菜了不会QAQ