A:一个波利亚的题Pólya的题,还没来的急做.
B:[undo]
C:对于每一对询问|qx - xi| + |qy - yi|,有4种情况(qx >= xi, qy >= yi), (qx >= xi, qy < yi), (qx < xi, qy >= yi), (qx < xi, qy < yi),考虑第一种情况,对于一次询问只用找到在(qx >= xi, qy >= yi)范围内-xi - yi最小的值即可,于是可以用线段树来做,像把包括询问点在内的所有点按X排序,然后枚举,遇到询问点就询问y在[0,qy]内的(-xi - yi)最小值是哪个。其他3种情况类似。
D:队友做的
E:队友做的
F:队友做的
G:依次求出每个位置要变成正数需要的离他最近的位置在哪,通过这个可以知道那些位置可以作为第一个位置,也就是答案。用类似链表的东西下即可。O(n)
H:队友做的
I:画出3个点的外接圆,可以发现每条边包含的多边形的边数和这条边对应的夹角成正比,于是只要找到最小边数根据这个比例是正数即可。精度比较蛋疼
J:用ans[n]表示所求答案,求n + 1时,先把n + 1分解质因子,然后对于每个质因子,假如n + 1的数量是偶数,那对结果没有影响,则这个质因子全部乘到ans[n + 1]上,假如是奇数,看之前n!的这个因子的奇偶来判断这个质因子要躲乘一个还是少乘一个。从小开始预处理ans数组,O(1)输出答案即可。
G题Sb了Wa了几次,I题被精度卡了几次。
配合还是在慢慢进步的,恩。。
=========================================================================================
updata by 8.30
A:比较容易看出是Pólya。先算出所有的夹角,然后用KMP预处理加载最近的循环相等的位置在哪,比如夹角是1,2,1,2,那最近的循环的位置就是2。假如K是循环的最近的位置,那只有1 * K, 2 * K..是合法的旋转这多个条线后角度还相等的位置。然后用Pólya求即可。