Dashboard - The 2021 CCPC Weihai Onsite - Codeforces
A. Goodbye, Ziyin!
思路
首先,根的度数必须 <= 2
然后,不能存在度数 > 3 的点
cpp
#include <bits/stdc++.h>
#define int long long
constexpr int N = 1e6 + 10;
constexpr int mod = 998244353;
constexpr int Inf = 0x3f3f3f3f;
int n;
int d[N];
void solve() {
std::cin >> n;
for (int i = 1; i <= n - 1; i ++) {
int u, v;
std::cin >> u >> v;
d[u] ++;
d[v] ++;
}
int ans = 0;
bool ok = true;
for (int i = 1; i <= n; i ++) {
if (d[i] <= 2) ans ++;
if (d[i] > 3) ok = false;
}
if (!ok) std::cout << 0 << "\n";
else std::cout << ans << "\n";
}
signed main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
int t = 1;
while (t--) {
solve();
}
return 0;
}
J. Circular Billiard Table
cpp
#include <bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pb push_back
#define all(x) (x).begin(), (x).end()
#define int long long
const int mxn = 1e6+7;
int in[mxn];
void solve(){
int a, b;
cin >> a >> b;
cout << (180*b/__gcd(180*b,a))-1<<'\n';
}
signed main(){
ios::sync_with_stdio(false);cin.tie(nullptr), cout.tie(nullptr);
int T = 1;
cin >> T;
while(T--) solve();
return 0;
}