cin >> n >> m; cin >> s >> t; for (int i = 0; i < m; i++) { int l, r; cin >> l >> r; sub[l]++; sub[r + 1]--; } for (int i = 1; i <= n; i++) { cnt[i] = cnt[i - 1] + sub[i]; } for (int i = 1; i <= n; i++) { if (cnt[i] % 2 == 1) { s[i - 1] = t[i - 1]; } } cout << s << endl;
usingnamespace std; constint N = 500+10; constint INF = 1e9; int n, m, l; int a[N]; // dp[i][j]代表a[1] to a[i] = j mod m 的步数 // ans = dp[L][0] int dp[N][N]; // c[i][j] 代表把a[i + kL]-> j mod m的总花费 int c[N][N];
cin >> n >> m >> l; for (int i = 1; i <= n; i++) { cin >> a[i]; } for (int i = 1; i <= l; i++) { for (int j = 0; j < m; j++) { for (int p = i; p <= n; p += l) { // a[p] -> j 总花费 c[i][j] += (j - a[p] + m) % m; } } } fill(dp[0], dp[0] + N * N, INF); dp[0][0] = 0; for (int i = 1; i <= l; i++) { for (int j = 0; j < m; j++) { for (int k = 0; k < m; k++) { dp[i][j] = min(dp[i][j], dp[i - 1][(j - k + m) % m] + c[i][k]); } } } cout << dp[l][0] << endl;
usingnamespace std; typedef pair<int, int> PII; constint N = 2e5+10; int n, m; set<PII> g[N]; int cnt[N] = {0}; bool vis[N] = {false};
voiddfs(int u, int l){ if (u == n) { cnt[l]++; return; } vis[u] = true; for (auto [v, w] : g[u]) { if (!vis[v]) { dfs(v, l + w); } } vis[u] = false; }
intmain() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); cin >> n >> m; for (int i = 1; i <= m; i++) { int u, v; cin >> u >> v; g[u].insert({v, 1}); g[v].insert({u, 1}); } // 删去度为1的点 queue<int> q; for (int i = 2; i <= n - 1; i++) { if (g[i].size() == 1) q.push(i); } while (!q.empty()) { int u = q.front();q.pop(); int to = g[u].begin()->first; g[to].erase({u, 1}); if (to != 1 && to != n && g[to].size() == 1) q.push(to); } // 合并度为2的点 for (int i = 2; i <= n - 1; i++) { if (g[i].size() == 2) { auto [u, w1] = *g[i].begin(); auto [v, w2] = *next(g[i].begin()); g[u].erase(g[u].find({i, w1})); g[v].erase(g[v].find({i, w2})); g[u].insert({v, w1 + w2}); g[v].insert({u, w1 + w2}); } } dfs(1, 0); for (int i = 1; i <= n - 1; i++) { if (i > 1) cout << " "; cout << cnt[i]; }