跳转至

The 2021 CCPC Guilin Onsite (Grand Prix of EDG)

排名 当场过题数 至今过题数 总题数
46/546 8 8 12

B

solved by 2sozx JJLeo

题意

两行十进制 \(n\) 位数,第三行永远等于这两行相加后低 \(n\) 位的值,每次修改两行中的某一行的某一位,问修改后第三行对应这一位是多少,以及三行总体相比之前修改了多少位。

题解

先算出来第三行每一位是多少,之后对每个修改分类讨论:

  • 如果改的位置的数没变,则不会有变化。
  • 如果第三行的数直接加上偏移量还是 \([0,9]\) 的范围,说明不会进位,直接改即可。
  • 否则,如果 \(>9\) 说明会进位,找到左边最长连续 \(9\),全变成 \(0\),再右边一个 \(+1\);如果 \(<0\) 说明会退位,找到左边最长连续 \(0\),全变成 \(9\),再右边一个 \(-1\)。 s 上述操作都可以在线段树上二分完成,每个节点记录区间内是否全部变成了 \(0/9\) 以及 \(0/9\) 的个数即可,需要注意单点修改也要把标记传下去再清楚,每次查询单点也要把标记传下去看看有没有。

复杂度为 \(O(q\log{n})\)

C

upsolved by

题意

题解

D

upsolved by

题意

题解

E

solved by JJLeo Bazoka13

题意

给定一个有向图,每条边有费用,在不超过给定的最大费用的情况下,可以选择一些边构成新的有向图。对于新的有向图,每次可以删除一个DAG,最大化新生成的有向图删除次数。

题解

可以证明一切如果有向图非DAG两次即可将整张图删掉。

即求最小环的大小。

对于每个点作为起点跑一次最短路,然后对于连接到起点的边我们新开一个点作为终点,起点到终点的最短距离即为这个最小环,复杂度 \(O(nm\log{m})\)

\(n\le 2000, m\le 5000\)

F

upsolved by

题意

题解

H

upsolved by

题意

题解

J

solved by JJLeo

题意

把一个长度为 \(n\) 的字符串所有本质不同字串拿出来按长度为第一关键字,字典序为第二关键字进行排序,\(q\) 次询问第 \(k\) 个第一次出现位置是什么。

题解

建出后缀树,每个节点代表一段长度连续的子串,可以用差分算出来每种长度有多少个串。

离线所有询问,lowerbound 算出来询问的是为长度是多少的串的字典序第几个。

按字典序 dfs 后缀树,每个点记录一个 dfn 序,从小到大遍历长度,设每个节点对应串长度是 \([l,r]\),则在 \(l\) 时将其 dfn 加入树状数组,在 \(r+1\) 时从树状数组删掉,对于每个询问就是树状数组求第 \(k\) 大。

卡空间,需要把 \(26\) 换成 map,再把几个 vector 换成链式前向星。

复杂度 \(O((n + q)\log{n})\)

K

solved by 2sozx

题意

\(n\) 个点,\(m\) 条边,边长度为 \(1\),每条边属于一个公司,每个公司有一个权值 \(w_i\)。一个人从 \(1\) 出发,到其余 \(n-1\) 个点,首先他要走最短路,其次他要这条路径花费最小。一条边的花费为 \(w_i\times app_i\) ,其中 \(i\) 是这条边的所属公司,\(app_i\) 是这个公司在这条边之前的出现次数,对 \(2\sim n - 1\) 输出最小花费。\(n\le 50, m \le \dfrac{n(n - 1)}{2}\)

题解

首先跑一个最短路,之后 \(dfs\) 暴力跑即可,最短路最多仅有 \(3^{n/3}\) 条,可以接受。

L

upsolved by

题意

题解

记录

0h:打桂林!MJX看A太长不看,换题,2min发现过穿了,MJX瞅了瞅 Input 和 Output,输出 \(2x-1\) 即可。看I有人过了,也是个签到,ZYF直接冲了过了。看G直接PTSD了,和广州C几乎一样。ZYF写完样例没过,MJX发现有点小不同,先把B的解法喂给ZYF。CSK瞅D YY了个结论,MJX准备写。MJX YY了个大概对的贪心,ZYF开冲,过了。MJX写D,CSK ZYF讨论E。

1h:MJX写完了,交上去WA了。ZYF开始写E,MJX发现有个地方考虑的不对,抢机器改了过了。ZYF 5min速冲AC,ZYF CSK 开始交替冲B F。MJX觉得K可以暴力嗯跑,复杂度很对,不过状态好像存不下。30min后MJX发现自己是个nt,不用存状态,直接跑就行,写写过了,帮ZYF瞅瞅B的代码。

2h:ZYF写完了WA了,发现状态改完没在线段树上modify,改了后又冲了一次,寄了,开始写对拍。CSK继续写F。

3h:拍了半天大概找到错误了,改了过了,开始交替冲J,但是时间空间都不咋够。

4h:MJX和CSK继续爆搞F,感觉很对,但是完全不对,感觉该改的地方不该改,怪。改了一堆样例倒是过了,交上去WA3了,开始de。ZYF发现写线段树分治是nt,改成树状数组时空都对了,交上去MLE11,把SAM改成了map存边变成了MLE13,改成了前向星过了。MJX觉得F应该是凸包共线的问题,然而改了样例也过不去,乱改一同交了两发WA了,寄了。

总结

Dirt

回到页面顶部