Codeforces Round #534 (Div. 1) – 解题报告

A – Grid game

竖的横的上下分开填。

// CF1103A.cpp
#include <bits/stdc++.h>

using namespace std;

const int MAX_N = 1e5 + 200;

int n, ux, uy, dx, dy;
char str[MAX_N];

int main()
{
    scanf("%s", str + 1), n = strlen(str + 1);
    ux = 1, uy = 1, dx = 0, dy = 1;
    for (int i = 1; i <= n; i++)
        if (str[i] == '0')
            printf("%d %d\n", ux, uy), uy = uy % 4 + 1;
        else
            printf("%d %d\n", (dx >> 1) + 3, dy), dx = (dx + 1) % 4, dy = (dy + 1) % 4 + 1;
    return 0;
}

B – Game with modulo

一共有 60 次询问机会,我们可以分两个 30 次:第一个 30 次用来询问最高位前的一位,第二个 30 位用来补全我们对 \(a – 1\) 的猜测。

Continue reading →

二月份总结

这个月相比上个月好多了,也开始按照规律做题和学新东西,就是博客写少了一点。3月份应该会多写写博客。

二月算是彻底搞清了方向找回了初心,也知道要怎么走了。希望之后能一直保持一个较好的状态。

没了。

Continue reading →

P5169:xtq的异或和 – 题解

主要思路

这题还挺好的。最后异或出来的路径是有链和环组成的。我们可以把链和环分开来求,因为从链上某点到环上某点之间的距离可以计算两次,所以不造成影响。所以我们可以把链做一个多项式,环做一个多项式,在做一遍 FWT_XOR 就完美了。

Continue reading →

单位根反演

简述

在计数题解题中遇到要求 \(x \bmod m = 0\) 的条件时,如果式子的计算复杂度比较高,但是式子里含有二项式系数的时候,就可以考虑用单位根反演。

Continue reading →

P3978:「TJOI2015」概率论 – 题解

推导思路

第一次坐到这种类型的题,社会社会(抱拳)。

先考虑怎么算分母:如果有 \(f_i\) 代表大小为 \(i\) 的树的种类数,那么可以显然得到 \(f_i = \sum_{j = 0}^{n – 1} f_j f_{n – j – 1}\)。得到这一步之后,分治 FFT?不,数据范围到达了惊人的 \(10^9\),所以分治 FFT 显然不现实。我们可以继续推:

Continue reading →