The Preliminary Contest for ICPC Asia Nanjing 2019

RankSolvedABCDEFGHI
157/13614/9OOØØ.OØOØ

O: 当场通过

Ø: 赛后通过

.: 尚未通过

A The beautiful values of the palace

solved by viscaria&chelly


chelly’s solution

找到坐标和权值的对应关系,就是一个简单的二维数点。

B super_log

solved by viscaria&chelly


chelly’s solution

欧拉降幂,需要正确的欧拉降幂姿势。

C Tsy’s number 5

upsolved by chelly


chelly’s solution

容易想到算贡献,设 f i = ∑ k = 1 n [ ϕ ( k ) = i ] f_i=\sum_{k=1}^n [\phi(k)=i] fi=k=1n[ϕ(k)=i],那么我们要求的就是
a n s = ∑ i = 1 n ∑ j = 1 n f i f j i j 2 i j = 2 ∑ i = 1 n ∑ j = 1 i f i f j i j 2 i j − ∑ i = 1 n i 2 f i 2 2 i ans=\sum_{i=1}^n \sum_{j=1}^nf_if_jij2^{ij}=2\sum_{i=1}^n \sum_{j=1}^if_if_jij2^{ij}-\sum_{i=1}^ni^2f_i^22^{i} ans=i=1nj=1nfifjij2ij=2i=1nj=1ififjij2iji=1ni2fi22i
受到 B l u e s t e i n ′ s a l g o r i t h m Bluestein's algorithm Bluesteinsalgorithm的启发,我们可以把 2 i j 2^{ij} 2ij拆成 2 ( i + j ) 2 − i 2 − j 2 \sqrt2^{(i+j)^2-i^2-j^2} 2 (i+j)2i2j2,于是可以 N T T NTT NTT了。

upsovled by Feynman1999


Feynman1999’s solution

D Robots

upsolved by chelly&viscaria


chelly’s solution

对于期望问题,需要倒过来dp。
首先可以求出每个点到终点的期望步长,然后根据期望步长可以算出期望花费,在计算期望花费的时候的转移边权就是期望花费。

E K Sum

unsolved


F Greedy Sequence

solved by chelly


chelly’s solution

先利用滑动窗口和set求出每个数字的下一个数字,然后按照数字从小到大的顺序dp出链长即可。

G Quadrilateral

upsolved by chelly


chelly’s solution

一个四边形是合法的当且仅当任意三边之和大于另外一条边。
首先题目的数据范围就是在提示我们枚举 d d d,然后计算有多少组 ( a , b , c ) (a,b,c) (a,b,c)
每条边都有上界和下界,我们可以通过容斥的手段使得只有上界,于是问题就变成了对于一个固定的 d d d,有多少组 ( x , y , z ) (x,y,z) (x,y,z)是合法的,其中 1 ≤ x ≤ a , 1 ≤ y ≤ b , 1 ≤ z ≤ c 1 \leq x \leq a,1 \leq y \leq b,1 \leq z \leq c 1xa,1yb,1zc
容易想到枚举最长边是谁,然后计算它作为最长边时候的答案,但是遇到边长相同的情况就需要减掉多余的,很麻烦。不妨考虑反面,求出不合法的方案数。即枚举一条边作为最长边,计算它为最长边时候不满足条件的三元组的个数(容易发现当不合法的时候,最长边一定是唯一的)。这相当于解一个有上界的线性不定方程组问题,这是个经典问题,直接容斥解决。容易发现,解出来的解一定是满足最长边限制的。

H Holy Grail

solved by chelly


chelly’s solution

二分+SPFA判环


upsolved by chelly

chelly’s solution

对于在 ( S , T ) (S,T) (S,T)加的最小边,就是原图 T − > S T->S T>S的最短路径。所以可以不需要二分。

I Washing clothes

upsolved by chelly


chelly’s solution

注意到用洗衣机的一定是个后缀。
x x x固定的时候,答案就是 min ⁡ i = 1 n max ⁡ ( t i − 1 + y , m a x j = i n t j + ( n − j + 1 ) × x ) \min_{i=1}^n \max (t_{i-1}+y,max_{j=i}^n t_j+(n-j+1)\times x) mini=1nmax(ti1+y,maxj=intj+(nj+1)×x)
f ( i ) = t i − 1 + y f(i)=t_{i-1}+y f(i)=ti1+y是单调递增的, g ( i ) = m a x j = i n t j + ( n − j + 1 ) × x g(i)=max_{j=i}^n t_j+(n-j+1)\times x g(i)=maxj=intj+(nj+1)×x是递减的,所以它们取min后是个凸函数,最优解只有一个,就是它的极值点。但我们不能三分求解(因为这不是严格凸函数)。
容易发现随着 x x x的增大,最优解 p p p是减小的,即是有决策单调性的。
所以我们可以 x x x从大到小枚举,判断目前 p p p是否左移,注意到 g ( i ) g(i) g(i)相当于是有一些直线,每次问横坐标取 x x x的时候最大值是多少,这个可以维护一个凸包或者李超线段树。
时间复杂度 O ( ( n + y ) l o g n ) O((n+y)logn) O((n+y)logn)

注意到对于 x x x,决策 p p p不会小于 n − y / x + 1 n-y/x+1 ny/x+1,所以对于每个 x x x,暴力枚举 p p p即可,时间复杂度 O ( y l o g y ) O(ylogy) O(ylogy)

Dirty Replay

  • B题抄了个筛欧拉函数的板子,结果板子错了,TLE了一发。
  • A题二维数点算权重的时候,将一个矩形拆成4个点的时候,手滑写错了个坐标
  • I题写决策单调的时候,没有处理好等于的情况
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值