C - Alchemist
排序贪心,小的应该先除,大的后除
D - Ki
搜索
pypy不出意外的挂了
// atcoder.cpp :
//
#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
#include <map>
#include <set>
#include <cstring>
#include <string>
#include <cmath>
#include <iostream>
#include <vector>
#include <regex>
#include <queue>
#include <climits>
using namespace std;typedef pair<int, int> PII;
typedef long long LL;
typedef vector<int> vi;int N, P;
vector<int> g[200005];
LL add[200005];
LL a[200005];void dfs(int u, int fa, LL cur_s) {a[u] = add[u] + cur_s;for (auto v : g[u]) {if (v == fa) continue;dfs(v, u, a[u]);}
}int main()
{//freopen("in.txt", "r", stdin);scanf("%d%d", &N, &P);for (int i = 0; i < N - 1; ++i) {int u, v;scanf("%d%d", &u, &v);u--, v--;g[u].push_back(v);g[v].push_back(u);}for (int i = 0; i < P; ++i) {int u, w;scanf("%d%d", &u, &w);u--;add[u] += w;}dfs(0, -1, 0);for (int i = 0; i < N; ++i) {if (i) printf(" ");printf("%lld", a[i]);}printf("\n");return 0;
}
E - Strings of Impurity
S中的每个字符都可以列出一个在S中的位置列表
二分搜索当前的位置,算出每次移动的step
由于当前的位置可能是在列表的后面,因此S重复一遍
# -*- coding: utf-8 -*-
# @time : 2023/6/2 13:30
# @author : yhdu@tongwoo.cn
# @desc :
# @file : atcoder.py
# @software : PyCharm
import bisect
import copy
import sys
from sortedcontainers import SortedList
from collections import defaultdict, Counter, deque
from functools import lru_cache, cmp_to_key
import heapq
import math
sys.setrecursionlimit(50005)def get_pos(arr, target):lo, hi = 0, len(arr)while lo < hi:mi = lo + hi >> 1if target < arr[mi]:hi = mielse:lo = mi + 1return lodef main():items = sys.version.split()if items[0] == '3.10.6':fp = open("in.txt")else:fp = sys.stdinS, T = fp.readline().strip(), fp.readline().strip()set_t = set([c for c in T])set_s = set([c for c in S])if set_t & set_s != set_t:print("-1")returnS = S + Sns = len(S)n = ns // 2ch_dict = defaultdict(list)for i, c in enumerate(S):ch_dict[c].append(i)ans = 0cur = -1for c in T:arr = ch_dict[c]pos = get_pos(arr, cur)ans += arr[pos] - curcur = arr[pos]if cur >= n:cur = cur - nprint(ans)if __name__ == "__main__":main()
F - Coincidence
待续。。。