第二届ACM协会算法校内赛 正式赛
A. 莉丝缇亚
思路:
- 输出
时间复杂度:
1 | t = int(input()) |
B. 骰子之神
思路:
- 输出
20
为必胜态
时间复杂度:
1 | print(20) |
C. 风导星歌、黎明ノ景
思路:
前缀和维护区间数量
二分那个大于等于
k
的位置,然后减去l
即可
时间复杂度:
1 | signed main() { |
D. 木栅栏与栅栏门
思路:
- 比赛的时候有点紧张,下来直接过了
- 数学推一下
时间复杂度:
1 | void solve() { |
E. 加密通信
思路:
- 暴力枚举即可,枚举
x
和y
时间复杂度:
1 | void solve() { |
F. 琪露诺的魔法九宫格
思路:
- 贪心找到最大的行和列的贡献,然后减去重复的位置即可
时间复杂度:
1 | struct Matrix { |
G. 东方永夜抄
思路:
- 直接暴力枚举距离,然后和半径
r
进行比较即可
时间复杂度:
1 | void solve() { |
xxxxxxxxxx void
solve() { int n; std::cin >> n; std::set st; for (int
i = 0; i < n; i++) { int k; std::cin >> k; for (int j = 0; j
< k; j++) { std::string s; std::cin >> s; st.insert(s); } }
std::cout << st.size() << "";}cpp
思路:
- 暴力枚举所有的冰淇淋机器,选过的直接标记跳过,类似于八皇后,当枚举出界就结束这个分支
- 然后我们在枚举的过程中记录这个结果
时间复杂度:
解法一:状压 DP
1 | constexpr int inf = 0x3f3f3f3f; |
解法二: 暴搜
1 | constexpr int inf = 0x3f3f3f3f; |
I. 吉他与孤独与蓝色星球 (Easy ver)
思路:
- 因为是双向道路,所以直接用最小的那个和其他的挨个连接
- 答案为
时间复杂度:
1 | signed main() { |
J. Never (Hard ver)
思路:
- 给个
Akashi
的官方题解

时间复杂度:
1 | signed main() { |
K. 铁路调度模拟器
思路:
- 直接并查集维护每一个站点的集合,并查集板子题
时间复杂度:
1 | struct DSU { |