下分!
写了,没保存,毁了两次/fn
k/n+(k%n>0)+′A′−1
if(a[l+1]!=a[l]+1&&a[l]!=n)a[l]++;
不做解释
思路就是前缀和来维护 [1,i] 区间的 0,1 个数。
那答案就是 s[i][0]+s[n][1]−s[i][1]
哈哈哈我赛事脑子进水狂想三分法 然而 ABC 不是某 sp,数据不是用【数据删除】造的/fn
图论
对于一条边 u→v,边权为 pu∣xu−xv∣+∣yu−yv∣
注意,不是无向边,方向不同,边权也不同
然后跑最小生成树,记录最大边权即可
小清新贪心题
首先,保证数字长度最大,其次,对于每一位,保证数字大的在前
定义 m=i=1min9Ci,l=⌊mn⌋
然后 n−ml 就是可以支配的“零花钱”
对于左侧的数,尽量“大方”,比如对 1111111111 进行改造,改成 9111111111 比 5511111111 好
首先考虑暴力,每次重新建图,重新跑最短路
这显然会 T 飞
但是要么 1→n 经过 i,要么不经过
如果不经过就不用管那些与 i 相连的边,如果经过就以 i 为分界,i 以前的跑一遍最短路,以后的跑一遍最短路,相加即可
不太会,哈哈