小男娘
小男娘
全部文章
分类
题解(2)
归档
标签
去牛客网
登录
/
注册
小男娘的博客
全部文章
(共40篇)
题解 | 小红的gcd
两行用分号可以一行 from math import gcd print(int(input()) * gcd(*map(int, input().split())))
2026-01-30
1
9
直接推导即可
如标题所示,考虑路径长度的异或和,路径中间节点的异或全都被消掉,于是其等于一条边路径的异或和。考虑到一大堆数求和一定大于等于其异或和,于是最短路就是一条边路径。于是题目变成了求。先求,发现四个一组异或和为零可以直接消掉,于是答案就只剩下四种情况,分别求即可 #include <iostream...
2026-01-28
0
9
题解 | 【模板】图的结构Ⅰ ‖ 拓扑排序:Kahn
众所周知,拓扑排序可以任意取入度为零的点,故可以用任意数据结构处理然后我们需要字典序最小,自然就用最小堆就可以了 #include <iostream> #include <queue> #include <vector> using namespace std;...
2026-01-23
0
19
单调队列优化
发现 DP 式子除了一个初始价格以外和部分背包类似,于是直接使用相同的方式优化,时间复杂度。 #include <iostream> #include <deque> using namespace std; using ll = long long; ll dp[301...
2026-01-13
0
24
暴力出奇迹
发现可以 bitset 优化,但是自带的 bitset 不是很好实现这些操作于是考虑手写 bitset,将每 64 位压成一个 ull,每次暴力翻转暴力统计即可。这个做法甚至比部分实现不够优秀的线段树跑的还要快。 #include <iostream> using namespace s...
2026-01-08
8
24
题解 | 圣
吸收律:于是可以得到,故答案为所有数的异或和 #include <iostream> using namespace std; int n; void Solve() { int res = false; cin >> n; int a; ...
2025-12-23
3
43
题解 | 圣
吸收律: 于是可以得到,故答案为所有数的异或和 #include <iostream> using namespace std; int n; void Solve() { int res = 0; cin >> n; int a; ...
2025-12-23
0
28
题解 | 好多次方
注意到是质数,且,故可以使用费马小定理(),设,则。而也可通过快速幂求出。算法需要两次快速幂,故时间复杂度为。 import sys MOD = 10 ** 9 + 7 sys.stdin.readline() for line in sys.stdin: a, b, c = map(i...
2025-12-22
0
30
线性做法
类似阶乘逆元预处理,预处理出所有前缀积以及前缀积逆元,然后回答每个询问,总时间复杂度。 #include <iostream> using namespace std; using ll = long long; const int MOD = 1e9 + 7; ll Pow(ll...
2025-12-22
2
28
Alice 有必胜策略
Alice 必胜策略:Alice 放在中间,之后不断放 Bob 的对称位置所以 Alice 的必胜条件就是可以放置第一枚硬币 #include <iostream> using namespace std; int a; int b; int r; void Solve() { ...
2025-12-10
1
62
首页
上一页
1
2
3
4
下一页
末页