题面 思路 50 pts 暴力。我们发现每次操作等于将前面的红的变成蓝的,将第一个蓝的变成红的。 要养成写暴力的好习惯。 #include <bits/stdc++.h> using namespace std; /* */ int n; string s; int cnt = 0; bool check() { for (int i …
SPFA学习笔记 SPFA,他死了!——某次 noi T1 的出题人。 感觉和 DIJ 很像。 使用范围:负边权,判断负环,随机图 不适用于构造图。容易超时。 思路: 对于出发的点,向所有可以到达,并且没到达过的点的边都进行松弛(见 图论——dijkstra),将松弛的点入队,注意是队列不是优先队列。 继续重复上面的操作,直到队列为空。 #incl…
难度:黄。 思路 我们假设 $x \bmod k == y \bmod k$,那么 $x = nk + a$,$y = mk + a$。我们可以计算出: $$ y - x = (mk + a) - (nk + a)\\ $$ $$ y - x = mk - nk\\ $$ $$ y - x = (m - n)k\\ $$ $$ K | y - x …
题目链接:洛谷 P1048 题目大意 给定一个最大重量为 $V$ 的背包,和 $n$ 个物品。每个物品有一个重量和价值。现在问在背包可以装下的范围内,最大的价值是多少。 朴素 DP 我们定义 dp[i][j] 为到第 $i$ 个物品,背包的重量为 $j$ 的最大价值。 我们可以得出状态转移方程: $$ \text{dp[i][j] = max(dp…
前言 题目算比较简单的思维题目,很符合 CF 的出题特点。 题目大意 现在有 $1$ 到 $n$ 的牌每个两张。你现在有 $n$ 张,并且在输入中给出。另一个人有剩下的 $n$ 张牌。 你和那个人进行一个游戏: 两人轮流。你先手,另一个人后手。一共进行 $2 \times n$ 轮。 每轮的那个人需要出一张牌。 如果那张牌上的数字是之前出过的,那么…
2024-3-31 学校比赛记录
算法 dp 思路 直接用 set 统计即可。 代码 #include <bits/stdc++.h> using namespace std; /* */ int n, m, k; set <int> dp[105][105]; int a[105][105]; int main() { ios::sync_with_std…
思路 题目一眼 tarjan 求桥,属于模板题目。 代码 #include <bits/stdc++.h> using namespace std; int n, a[155][155]; int dfn[1005], l[1005], cnt, vis[1005]; //vector <int> ans; int cntt…
介绍了 Tarjan 求割点和桥。
学校的比赛记录。