套题
文章平均质量分 58
一套一套的题
b_b_lai_lai
学啥啥不会
展开
-
最近公共祖先(LCA)
1172. 祖孙询问题目链接#include <algorithm>#include <cstdio>#include <cstring>#include <iostream>using namespace std;const int N = 40010, M = N * 2;int n, m;int h[N], e[M], ne[M], idx;int depth[N], fa[N][16];int q[N];void add原创 2021-11-12 10:37:31 · 200 阅读 · 0 评论 -
树形dp系列
1072. 树的最长路径题目链接#include <algorithm>#include <cstring>#include <iostream>using namespace std;const int N = 10010, M = N * 2;int n;int h[N], e[M], w[M], ne[M], idx;int ans;void add(int a, int b, int c) { e[idx] = b, w[idx原创 2021-10-28 19:41:00 · 1617 阅读 · 0 评论 -
二分算法+
训练题目链接#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N = 2e5 + 10;const int INF = 0x3f3f3f3f;int n, m;int a[N], b[N], cnt[N];int main() { scanf("%d%d", &n, &m); for (int i = 1; i <= n; ++i) {原创 2021-10-26 15:58:57 · 62 阅读 · 0 评论 -
无明显算法纯思维
3993. 石子游戏题目链接#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N = 2e5 + 10;const int INF = 0x3f3f3f3f;int n, m;int s[N];int minh = N, maxh = 0;int get(int j) { return s[maxh] - s[j - 1];}int main() { sc原创 2021-10-25 11:08:40 · 76 阅读 · 0 评论 -
双端队列广搜
175. 电路维修题目链接#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef pair<int, int> PII;const int N = 510;int n, m;char g[N][N];int d[N][N];int bfs() { memset(d, 0x3f, sizeof(d)); deque<PII> dq;原创 2021-09-13 11:13:41 · 61 阅读 · 0 评论 -
最短路套题
1129. 热浪题目链接#include <bits/stdc++.h>using namespace std;const double eps = 1e-6;typedef long long ll;const int M = 1e6 + 10;#define maxn 3000#define maxn1 20000int n, m, start, ending, v, s, num;int dis[maxn], head[maxn]; // dis数组表示起点到某点的原创 2021-08-31 15:52:54 · 131 阅读 · 0 评论 -
动态规划dp
美丽序列题目链接#include <string.h>#include <iostream>#define Mod 1000000007using namespace std;int main() { int n; long long a[42]; long long dp[42][42][3][1602]; // dp[i][j][1][k]代表当前 处理到第i个且值为j 在递减序列中第1个 前i个和为k memset(d原创 2021-08-25 20:57:27 · 67 阅读 · 0 评论 -
区间dp系列
牛牛的回文串题目链接#include <bits/stdc++.h>using namespace std;#define ll long long/* 解决一个回文串可以发现,添加一个字符和删除一个字符是等价的,删除一个字符相当于在另一侧添加一个字符,所以只需要计算删除一个字符 所需要的的代价即可,删除一个字符可以用过 1. 先将该字符change成另一个字符再删除 2. 添加任意一个字符再修改成该字符相当于添加 3. 将该字符替换成另一个字符c在通过添加另一个原创 2021-08-25 16:44:43 · 45 阅读 · 0 评论 -
线性dp系列
被3整除的子序列题目链接#include <bits/stdc++.h>using namespace std;typedef long long ll;const int M = 5 * 1e4 + 10;const int MOD = 1e9 + 7;string str;int dp[55][5];int main() { cin >> str; dp[1][(str[0] - '0') % 3] = 1; for (int i原创 2021-08-23 15:08:42 · 81 阅读 · 0 评论 -
莫队算法系列
数列互质题目链接#include <bits/stdc++.h>using namespace std;typedef long long ll;const int M = 5 * 1e4 + 10;const int MOD = 109;int n, m, unit, ans;int a[M], Be[M], sum[M];struct node { int l, r, k, id, ans;} e[M];set<int> s;bool cmp(原创 2021-08-22 17:51:23 · 69 阅读 · 0 评论 -
字符串哈希
圈圈题目链接#include <cstdio>#include <vector>using namespace std;typedef unsigned long long ull;const int maxn = 100005;int n, m, k, a[maxn];ull base = 100007, b[maxn], h[maxn];vector<int> v[maxn];int Solve(int s1, int s2, int add)原创 2021-08-20 16:39:25 · 95 阅读 · 0 评论 -
二分图匹配
A - 过山车题目链接#include <algorithm>#include <cmath>#include <cstdio>#include <cstring>#include <iostream>#include <queue>#include <vector>using namespace std;const int N = 505;int line[N][N];int girl[N],原创 2021-08-03 16:20:51 · 86 阅读 · 0 评论 -
博弈论专题
A - Good Luck in CET-4 Everybody!#include <iostream>#include <cstdio>using namespace std;typedef long long ll;int main(){ int n; while(cin>>n) { if(n%3==0) cout<<"Cici"<<endl; el转载 2021-07-30 10:30:31 · 81 阅读 · 0 评论 -
最小生成树
D - Qin Shi Huang’s National Road System#include <algorithm>#include <cmath>#include <cstdio>#include <cstring>#include <iostream>#include <queue>#include <stack>using namespace std;const double eps =转载 2021-07-29 21:38:24 · 61 阅读 · 0 评论 -
2021牛客暑期多校训练营3
B-Black and white题目链接#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N = 3e7 + 10;const int M = 5010;struct node { int x, y; ll v; bool operator<(const node& u) const { return v < u.v; }}转载 2021-07-28 15:17:15 · 102 阅读 · 0 评论 -
树状数组套题
Contest题目链接#include <bits/stdc++.h>using namespace std;typedef long long ll;const ll N = 2e5 + 5;ll n, res, t[N];struct Node { ll a, b, c;} q[N];bool cmpa(Node x, Node y) { return x.a < y.a;}bool cmpb(Node x, Node y) { r原创 2021-07-28 09:40:59 · 259 阅读 · 0 评论 -
线段树套题
A - 敌兵布阵题目链接#include <algorithm>#include <bitset>#include <cassert>#include <cctype>#include <cmath>#include <complex>#include <cstdio>#include <cstdlib>#include <cstring>#include <ctime转载 2021-07-25 15:56:59 · 61 阅读 · 0 评论 -
2021牛客暑期多校训练营2
J.Product of GCDs题目链接#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef unsigned long long ull;typedef double db;typedef pair<int, int> Pii;#define reg register#define mp make_pair#define pb push_back#define转载 2021-07-21 16:29:47 · 42 阅读 · 0 评论 -
图的遍历与拓扑排序
A - A Knight’s Journey#include <algorithm>#include <bitset>#include <cassert>#include <cctype>#include <cmath>#include <complex>#include <cstdio>#include <cstdlib>#include <cstring>#include原创 2021-06-26 15:46:02 · 159 阅读 · 0 评论 -
并查集系列
A - How Many Tables#include <algorithm>#include <bitset>#include <cassert>#include <cctype>#include <cmath>#include <complex>#include <cstdio>#include <cstdlib>#include <cstring>#include <原创 2021-06-20 16:54:12 · 91 阅读 · 0 评论 -
牛客小白月赛33
官方题解大全A.字符统计题目链接#include <bits/stdc++.h>using namespace std;int main() { int t; string s; cin >> t; getchar(); while (t--) { int duan = 0, word = 0, cntchar = 0; while (getline(cin, s), s != "=====")原创 2021-06-11 17:00:44 · 96 阅读 · 0 评论 -
第三届太原理工大学程序设计竞赛新生赛(未完结)
C.小迢的盒子题目链接解法1:稍微快一点#include <bits/stdc++.h>using namespace std;string out, s = "TYUTICPC";int n, mid, len, cnt;string f(int y, char c) { string full(mid, '*'), blank(mid, ' '), blank1(len - 2, ' '), ans; if (y == 0 && (c ==原创 2021-06-07 10:52:27 · 459 阅读 · 0 评论 -
牛客小白月赛34
**1.计算几何**题目链接#include <bits/stdc++.h>using namespace std;iinline int read() { int f = 1, ans = 0; char c = getchar(); while (c < '0' || c > '9') { if (c == '-') f = -1; c = getchar(); }原创 2021-05-23 16:19:03 · 3885 阅读 · 0 评论 -
第十二届蓝桥杯全国软件和信息技术专业人才大赛软件组模拟赛(一)
试题 F: 完全二叉树的权值时间限制: 1.0s 内存限制: 256.0MB 本题总分:15 分【问题描述】给定一棵包含 N 个节点的完全二叉树,树上每个节点都有一个权值,按从上到下、从左到右的顺序依次是 A1, A2, · · · AN,如下图所示:现在小明要把相同深度的节点的权值加在一起,他想知道哪个深度的节点权值之和最大?如果有多个深度的权值和同为最大,请你输出其中最小的深度。注:根的深度是 1。【输入格式】第一行包含一个整数 N。第二行包含 N 个整数 A1, A2, · · ·转载 2021-04-21 20:07:28 · 489 阅读 · 0 评论 -
2020年10月蓝桥杯C/C++省级B组题目分析以及题解
**试题A 门牌制作**【问题描述】小蓝要为一条街的住户制作门牌号。这条街一共有 2020 位住户,门牌号从 1 到 2020 编号。小蓝制作门牌的方法是先制作 0 到 9 这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌 1017 需要依次粘贴字符 1、 0、 1、 7,即需要 1 个字符 0, 2 个字符 1, 1 个字符 7。请问要制作所有的 1 到 2020 号门牌,总共需要多少个字符 2?【答案提交】这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整转载 2021-04-16 22:59:38 · 307 阅读 · 0 评论