A
。
import sys
input = sys.stdin.readline
a, b = map(int, input().split())
if a == 1:
print("LU" if b == 1 else "LD")
else:
print("RU" if b == 1 else "RD")
B
。
import sys
input = sys.stdin.readline
n = int(input())
deg = [0 for i in range(n)]
for i in range(n - 1):
u, v = map(int, input().split())
u -= 1; v -= 1
deg[u] += 1
deg[v] += 1
for i in range(n):
if deg[i] == n - 1:
print(i + 1)
break
C
。
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
print((n - 1) * m + (m - 1) * n)
D
。
import sys
input = sys.stdin.readline
n = int(input())
deg = [0 for i in range(n)]
for i in range(n - 1):
u, v = map(int, input().split())
u -= 1; v -= 1
deg[u] += 1
deg[v] += 1
ans = 0
for i in range(n):
ans += max(0, deg[i] - 2)
print(ans)
E
。
import sys
input = sys.stdin.readline
from collections import deque
n, m, k = map(int, input().split())
x1, y1, x2, y2 = map(int, input().split())
x1 -= 1; y1 -= 1; x2 -= 1; y2 -= 1
dx = [1, 2, 1, 2, -1, -1, -2, -2]
dy = [2, 1, -2, -1, 2, -2, 1, -1]
dis = [[-1] * m for i in range(n)]
pa = [[(-1, -1) for j in range(m)] for i in range(n)]
q = deque()
q.append((x1, y1))
dis[x1][y1] = 0
while q:
x0, y0 = q.popleft()
for i in range(8):
nx = x0 + dx[i]
ny = y0 + dy[i]
if 0 <= nx < n and 0 <= ny < m and dis[nx][ny] == -1:
dis[nx][ny] = dis[x0][y0] + 1
pa[nx][ny] = (x0,y0)
q.append((nx, ny))
if dis[x2][y2] == -1 or dis[x2][y2] > k or (k - dis[x2][y2]) % 2 != 0:
print("No")
sys.exit(0)
res = []
curx, cury = x2, y2
while curx != -1:
res.append((curx, cury))
curx, cury = pa[curx][cury]
res.reverse()
def neigh(x, y):
for i in range(8):
nx = x + dx[i]
ny = y + dy[i]
if 0 <= nx < n and 0 <= ny < m:
yield(nx, ny)
ex = k - dis[x2][y2]
ans = []
for i in range(1, len(res)):
cur = res[i - 1]
while ex > 1:
nxt_on_path = res[i]
c = None
for nb in neigh(cur[0], cur[1]):
c = nb
break
if c is None:
break
ans.append(c)
ans.append(cur)
ex -= 2
ans.append(res[i])
cur = (x2, y2)
while ex > 1:
c = None
for nb in neigh(cur[0], cur[1]):
c = nb
break
if c is None:
break
ans.append(c)
ans.append(cur)
ex -= 2
if ex != 0 or len(ans) != k:
print("No")
sys.exit(0)
print("Yes")
for x, y in ans:
print(x + 1, y + 1)
F
#include "bits/stdc++.h"
using namespace std;
using i64 = int64_t;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
vector<vector<int>> adj(n);
for (int i = 1; i < n; i++) {
int u, v;
cin >> u >> v;
u -= 1, v -= 1;
adj[u].push_back(v);
adj[v].push_back(u);
}
const int K = 9;
vector<int> pa(n, -2), ord;
pa[0] = -1;
function<void(int)> dfs = [&](int u) {
ord.push_back(u);
for (auto v : adj[u]) {
if (pa[v] == -2) {
pa[v] = u;
dfs(v);
}
}
};
dfs(0);
vector down(n, vector<i64>(K + 1));
for (auto u : ord) {
down[u][0] = 1;
}
for (int i = (int) ord.size() - 1; i >= 0; i--) {
int u = ord[i];
for (auto v : adj[u]) {
if (pa[v] == u) {
for (int d = 0; d < K; d++) {
down[u][d + 1] += down[v][d];
}
}
}
}
vector dp(n, vector<i64>(K + 1));
dp[0] = down[0];
for (auto u : ord) {
for (auto v : adj[u]) {
if (pa[v] == u) {
dp[v][0] = 1;
for (int d = 1; d <= K; d++) {
i64 fr = dp[u][d - 1];
if (d > 1) {
fr -= down[v][d - 2];
}
dp[v][d] = down[v][d] + fr;
}
}
}
}
for (int i = 0; i < n; i++) {
cout << dp[i][K] << " \n"[i == n - 1];
}
return 0;
}

京公网安备 11010502036488号