2016-2017 ACM-ICPC, Egyptian Collegiate Programming Contest (ECPC 16)

我带了大表(哥)? 两人组帮集训队测比赛,这场三星GYM做挂了。。。
GG

然后看到q AK了。。。
当时熊神过了一大堆题,我才把A 过了。。。
然后熊神又过了一大堆题,我还没有做出J
。。。
然后赛后发现,J题读错题了。。。。。。。。。。。

A
有G堆石子,每一堆有n个,每次可以从一堆中取 b^0..b^1..b^2......b^m<=n)个,判断先手胜负
诶,一开始就看到这题,然后刚好最近这部分博弈搞了下。
我们可以发现这题数据太大了,我们无法打出sg函数值。。。
so,我打了个表,然后找了找规律,前两发naive了,发现奇偶sg函数值,会交替 更改。
B
对阴影部分跑Floyd,一大堆矩形分情况讨论
D 签到题,C(n,m)
E 搜索会T,所以别看时限很长。。。
 我们对字符串建图(这想法很吼啊),然后跑最短路即可。
G 其实当时根本不会,因为不会去重,这部分数学少了小学弟感觉很艰难,
然后 似乎这是一个第二类斯特林数的模板题。
H 不难的搜索(记忆化?)。。或者dp也吼啊

补题:
J
在q的wiki里面看了看题解。。。然后悲剧的发现自己读错题了。。。。
cf1700分的选手实力还是不错呢?,嘿嘿

题意:城市i的魅力值= 从i的子树中 有多少个j 能够到达i。。。
在q神的指导(贴代码)下,我进一步加深了对倍增法的理解???
我们在树上倍增存下节点i 到根上 这一条链,然后就可以二分了打标记,然后就简单了。。。

总结:

找规律的时候不能够太着急,仔细一点,万一规律找错了岂不GG,打表当然也要小心别打错。。。

做题速度还有待提高:
希望能够solo几套cf提高一下自己的做题速度。。。
C 、F、I、K不会。。。。
以下内存都是从q那里抄的
https://wiki-saltyfish.icpc-camp.org/2016-2017%20ACM-ICPC,%20Egyptian%20Collegiate%20Programming%20Contest%20(ECPC%2016)
C
用最少的行列覆盖给定点,其中横线是一些半圆,对每个点坐标变换(x,y)→(x,y−(n/2)^2−(n/2−x)^2−−−−−−)即可转换成水平竖直的行列,然后二分图最大匹配

F
dp+离散化之后线段树维护。。。。待补

离散化,维护那个地方还不是很懂
因为我们的判定条件是

int dist(node a,node b){
    return abs(a.x-b.x)+1;
}
bool ok(node a,node b){
    if(a.p*a.p + b.p*b.p +c <= dist(a,b)){
        return 1;
    }
    return 0;
}

所以我们没有办法去,lower_bound 或者其他的线段树单纯维护大小啊。。。

I
求出覆盖每个小圆时大圆圆心的横坐标区间,然后扫描线
这个要不要去补呢,很是纠结

K
条件概率dp

你可能感兴趣的:(2016-2017 ACM-ICPC, Egyptian Collegiate Programming Contest (ECPC 16))