AtCoder Grand Contest 046 – 解题报告

A – Takahashikun, The Strider

SB 题,不解释。

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

using namespace std;

int x;

int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); }

int main()
{
    scanf("%d", &x), printf("%d\n", 360 / gcd(x, 360));
    return 0;
}
Continue reading →

「LibreOJ」#6060「2017 山东一轮集训 Day1 / SDWC2018 Day1」Set – 题解

主要思路

神仙题。

发现 \(x_1 \oplus x_2 = xorsum\),所以我们尽量把 \(xorsum\) 的位分给 \(x_2\)。如果 \(xorsum\) 的某位为 \(1\),那就直接给 \(x_2\) 就好;如果为 \(0\) ,那么有 \(0, 0\) 和 \(1, 1\) 两种情况。所以,我们构造线性基时,通过优先考虑为更高的 \(0\) 的位可以使得答案更大(我们考虑用线性基求最大异或和的过程,优先插入权更大的位置)。

Continue reading →