Day 1
评测系统与参赛策略 王逸松
松松松手把手教你如何搭建评测系统(掉线…)
不过有一点实用的
linux 下 time ./a 可以看a的运行时间
顺便以赠送小黄鸭为评测鸭打了一波广告
既然拿了小黄鸭,那我也打一波广告吧:
https://duck.ac/
量子计算初步 彭宇翔
神仙课程
严重怀疑是将大学里面相当长一段时间的课程浓缩到了一个下午的时间讲
听懂了大概20页PPT?
后面强行记忆+与大佬交流又勉强跟了20页?
定义了量子bit,以及一系列运算
可以用类似门电路的东西连成量子电路,从而解决一系列问题
当然我所看到的只是纯理论的部分
有时间可以去wikipedia猎一猎
Day 2
《具体数学》选讲 吴瑾昭
Stern-Broot Tree
可以弄出所有的既约分数,每个节点形如m/n,相邻节点m’n-mn’=1
大概就是Farey数列上树,构造方法网上都有
可以搞什么无理数的有理逼近(51nod 1517)
超几何函数:
这一个part真的心态崩了
大概是一个关于z的n+m个参的函数
F
(
a
1
,
⋯
 
,
a
n
;
b
1
,
⋯
 
,
b
m
;
z
)
=
∑
k
≥
0
a
1
k
‾
⋯
a
n
k
‾
z
k
b
m
k
‾
⋯
b
m
k
‾
k
!
F(a_1,\cdots,a_n;b_1,\cdots,b_m;z)=\sum\limits_{k\geq 0} {a_1^{\overline k}\cdots a_n^{\overline k} z^k\over b_m^{\overline k}\cdots b_m^{\overline k}k!}
F(a1,⋯,an;b1,⋯,bm;z)=k≥0∑bmk⋯bmkk!a1k⋯ankzk
上横线是上升幂的意思,就是
x
(
x
+
1
)
⋯
(
x
+
k
−
1
)
x(x+1)\cdots(x+k-1)
x(x+1)⋯(x+k−1)
很多有趣的级数都可以化成超几何函数的形式
比如
F
(
1
;
1
;
z
)
=
∑
k
≥
0
z
k
k
!
=
e
x
F(1;1;z)=\sum\limits_{k\geq 0}{z^k\over k!}=e^x
F(1;1;z)=k≥0∑k!zk=ex
F
(
a
,
1
;
1
;
z
)
=
∑
k
≥
0
a
k
‾
z
k
k
!
=
∑
k
≥
0
(
a
+
k
−
1
k
)
z
k
=
1
(
1
−
z
)
a
F(a,1;1;z)=\sum\limits_{k\geq 0}{a^{\overline k}z^k\over k!}=\sum\limits_{k\geq 0}{a+k-1\choose k}z^k={1\over (1-z)^a}
F(a,1;1;z)=k≥0∑k!akzk=k≥0∑(ka+k−1)zk=(1−z)a1
令k=i时后面的项为
t
i
t_i
ti
一个级数是超几何的,可以化式子得出
t
i
+
1
t
i
=
(
k
+
a
1
)
(
k
+
a
2
)
.
.
.
(
k
+
a
n
)
z
(
k
+
b
1
)
(
k
+
b
2
)
.
.
.
(
k
+
b
m
)
(
k
+
1
)
{t_{i+1}\over t_i}={(k+a_1)(k+a_2)...(k+a_n)z\over (k+b_1)(k+b_2)...(k+b_m)(k+1)}
titi+1=(k+b1)(k+b2)...(k+bm)(k+1)(k+a1)(k+a2)...(k+an)z
这是个关于k的有理函数
注意k+1那项和z那项
为了搞负数的阶乘,还引入了广义阶乘
这一部分就真的不会了…
应用,主要实在级数求和上,可以考虑相邻两项之比,往超几何函数上面凑…
然后怎么计算呢?查表…
Scape自己也说这个东西OI中应用不大,因为你无法在NOI时查表23333
高阶差分与牛顿级数
考虑算子E,使得
E
f
(
x
)
=
f
(
x
+
1
)
Ef(x)=f(x+1)
Ef(x)=f(x+1),不要管它是什么
那么f的差分
Δ
f
(
x
)
=
E
f
(
x
)
−
f
(
x
)
=
(
E
−
1
)
f
(
x
)
\Delta f(x)=Ef(x)-f(x)=(E-1)f(x)
Δf(x)=Ef(x)−f(x)=(E−1)f(x)
Δ
n
f
(
x
)
=
(
E
−
1
)
n
f
(
x
)
=
∑
i
=
0
n
(
n
i
)
f
(
x
+
i
)
(
−
1
)
n
−
i
\Delta^n f(x)=(E-1)^nf(x)=\sum\limits_{i=0}^{n}{n\choose i}f(x+i)(-1)^{n-i}
Δnf(x)=(E−1)nf(x)=i=0∑n(in)f(x+i)(−1)n−i
相比考虑每个数每一轮差分的贡献,这个推导简单明了
牛顿级数:
一个d次多项式写成这样的形式
f
(
x
)
=
∑
i
=
0
d
C
i
(
x
i
)
f(x)=\sum\limits_{i=0}^{d}C_i{x \choose i}
f(x)=i=0∑dCi(ix)
接下来是我还没搞懂的
C
i
=
Δ
i
f
(
0
)
C_i=\Delta^i f(0)
Ci=Δif(0)
套进去的就可以得到泰勒级数(形式很像泰勒展开,因为差分可以感性理解成是离散函数的求导)
还有些应用待补
斯特林数
老生长谈
各种乱七八糟的恒等式和递推式,有些比较妙的组合意义。就不多说了
前沿字符串算法
一堆乱七八糟的border和周期的应用,没怎么听懂
不过有两题印象深刻
给出一个字符串,动态询问一个区间[l,r]字典序最小/最大的后缀
还有一个自己YY的问题待解决
给出一个字符串,每次动态询问i,j,求S[1…i]+S[j…n]这个串在S中出现了多少次。
好像是一道例题我看错题然后YY的…
具体解法待研究讲课课件
IOI Day 1题解及ACM2018趣题选讲 任轩笛
清真好题选讲
其实挺多题都挺友好的
不少题都很可想,可做
具体我到时候挑几题做一下
Day 3
模拟费用流问题 陈江伦
一个上午的佬鼠进栋老鼠进洞问题
模型就是一个数轴分布,若干只老鼠,若干个洞,需要让每只老鼠进洞,从一开始的简单(每只老鼠只能左走,每个洞只能一只老鼠) 到后面(每个洞有容量,进一只老鼠还要花费额外代价之类的),甚至是上了树…
从一开始DP,栈优化,堆优化
个人感觉堆的做法其实跟我们所熟知的可撤销贪心非常类似,不过需要更多一些的讨论。
我目前是会到Problem 4 每个洞有容量上限
目标是要解决Problem 8
IOIDay 2题解及国外选拔题选讲 杨懋龙
也是清真题选讲,很多题都蛮有意思的,感觉收获不少
有不少的有趣的题目,很锻炼思维
具体的话到时候再挑几题出来搞搞
Day 4
简单数论算法 朱震霆
这个就很毒了
O
(
n
1
/
2
+
ϵ
)
O(n^{1/2+\epsilon})
O(n1/2+ϵ)的求素数个数
Wikipedia上能查到的是Meissel算法
课件上还介绍了一个更优秀的Deleglise-Rivat算法
然后是积性函数
狄利克雷级数(狄利克雷生成函数),两个数论函数做狄利克雷卷积就是他们的狄利克雷生成函数相乘
F ( s ) = ∑ n = 1 ∞ f ( n ) n s F(s)=\sum\limits_{n=1}^{\infin}{f(n)\over n^s} F(s)=n=1∑∞nsf(n)
二次剩余讲了一个有趣的做法
能够拓展到高次剩余
整数分解介绍了一系列很有趣的做法
(二次筛法、椭圆曲线群…)
生成函数,多项式算法与图的计数 汪乐平
一开始讲师还在介绍基本的多项式内容
后面就逐渐变得毒瘤
有标号无向连通图
有标号二叉树、多叉树
有标号仙人掌(先考虑有根,枚举根情况,然后再转成无根的)
有标号点双连通图、边双连通图计数
DAG计数,强连通分量计数等等
后面的我都想不出来了。。。
最后还提了一道用到齐次线性递推的题
Day 5 比赛日
7:55到的体育馆,然而所有选手都被咕在外头
最后一直到8:13比赛才开始
看题
T1计数推式子题
T2奇怪的提答
T3是更奇怪的交互。。。
一个小时,T1随便暴力乱搞搞了44分,去看T3
题意就搞不太懂
(主要是相等的时候的回答比较懵)
后来发现题目说了交互库给的结果是会卡人的,出题人也说了下发的grader不是官方的grader的
然后就一直想不出靠谱的确定性算法
有一个思路是两两建图连边
然后不太会计算答案
最后想这题想了3h,仍然想不出n=5的第一个subtask
随便写了一个水法然后去玩T2
第一个点直接读入输出
第二个点是要求用一个远古计算机算斐波那契数列
然而认真看发现最多只到第44项,打表即可
但我用了一个很蠢的方法,读入一个a,然后一个一个减下去,完全忽略了轮数的限制(题目并没有明确给出,容易被忽略),而没有想着尽量去减少轮数
第三个点感觉就直接找一条最短路走过去就好,但是实在不够时间了只好作罢
考场出来感觉自己44+40+0
最后评测出来44+20+0
感觉自己还是不太擅长做这些比较考思维的非传统题,很多看上去很简单的思路到了考场上就是想不出来
后记
NOI WC就这样以打铁结束,连去年都不如
OI生涯也许所剩无几了
自己到底能走多远呢?