![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
题目总结的经验
在vj,cf题目的总结
蓝展展
这个作者很懒,什么都没留下…
展开
-
题目记录 2021年6月1日
(1)AC自动机的应用:https://vjudge.z180.cn/contest/441262#status加了一个dp转移原创 2021-06-01 15:36:14 · 141 阅读 · 0 评论 -
绝密文件(黑科技)
(1) 数学方面:非齐次线性方程的解 = 它对应的齐次线性方程的解 + 一个特解。原创 2021-01-20 16:43:56 · 486 阅读 · 0 评论 -
快读fastread
inline ll read(){ ll x = 0, sign = 1; char ch = getchar(); for (; !isdigit(ch); ch = getchar()) if (ch == '-') sign = -1; for (; isdigit(ch); ch = getchar()) x = x * 10 + ch - '0'; return sign * x;}// isdigit()判断的是这个数是不是数字,原创 2020-11-09 19:50:59 · 296 阅读 · 0 评论 -
Beauty of Array问题, 贡献度问题
每次求的是这个数对于整体的贡献度:例子:1 2 1 3for 1 : nans = 0i = 1:现在讨论第一个1的贡献度:11 21 2 11 2 1 3第一个1的贡献度是四次, 那么1在哪里贡献了呢, 那只有是包含1的, 就是含有1之前的所有都是有所贡献的, ans += (4) * (1) ;4 是指1贡献的次数, 1是指1之前且包含1的个数是1个。现在i = 2:现在讨论2的贡献度:22 12 1 32总共贡献了三次, 那么2之前且包含2的个数有几个呢, 有从第一原创 2020-10-24 20:40:28 · 157 阅读 · 0 评论 -
欧拉函数的一些见解
欧拉函数求互质的个数当时在res = res - res / i 出没有想明白, 其实是挺简单的, 就是一个公式, &(n) = n * (1 - 1 / p1) * (1 - 1 / p2) * … (1 - 1 / pr);每次是res等于n,那么只更新res, 那么为什么不用n呢, 因为n有更大的用处, 那就是判断终点, 那什么是重点呢 ? 其实就是咱们要用的素数大于n的时候, 就应该停止了, 但是每次n的值是要更新的, 要更新到不能被本次的值乘以某个数得到, 意思是, 咱们的素数只用一次原创 2020-10-12 20:49:26 · 234 阅读 · 0 评论 -
Dijkstra priority_queue优化
#include<bits/stdc++.h>using namespace std;typedef long long ll;typedef pair<int, int> pii;const int N = 1e5 + 10;const ll inf = (ll)1e16;int n, m;bool vis[N];ll dis[N];vector <pii> g[N];struct Node{ int id; ll d; Node() {}转载 2020-09-30 14:19:10 · 218 阅读 · 0 评论 -
Floyd_Warshall算法的一些理解
这是核心正确的代码:int k; for (k = 1; k <= n; k++) { int i; for (i = 1; i <= n; i++) { if (e[i][k] == 0x3f3f3f3f) continue; int j; for (j原创 2020-09-16 20:01:09 · 155 阅读 · 0 评论 -
堆得些许应用
正儿八经的堆:void shift_down(int i){ while (i * 2 <= n) { int t = i * 2; if (t + 1 <= n && hp[t + 1] < hp[t]) t++; if (hp[i] > hp[t]) swap(hp[i], hp[t]); else break原创 2020-09-10 21:03:01 · 490 阅读 · 0 评论 -
2020年SDUTACM暑假集训(总结5386)
2020年SDUTACM暑假集训阶段总结9#504计科1902王展一、学习内容–暑假新学了哪些专题,每个专题刷了多少题(1) 01背包:3题(2) 完全背包:1题(3) 多重背包:2题(4) 字典树:6题(5) 线段树:4题(6) 线段树扫描线:3题(7) 素数:2题(8) 快速幂:1题(9) 调和级数:1题(10) KMP:5题(11) Manacher: 1题(12) exKMP: 1题(13)二分图最大匹配:2题二、比赛内容总结(2020年7月27日-8月27日个人赛)原创 2020-08-29 11:10:28 · 204 阅读 · 0 评论 -
对于二分图的认识
不正确的:(为的是找错误)#include <iostream>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <string>#include <algorithm>#include <math.h>#define Fast_io ios::sync_with_stdio(false), cin.tie(0), cout.ti原创 2020-08-21 15:35:54 · 111 阅读 · 0 评论 -
二分匹配的认识
Consider a group of N students and P courses. Each student visits zero, one or more than one courses. Your task is to determine whether it is possible to form a committee of exactly P students that satisfies simultaneously the conditions:. every student i原创 2020-08-20 20:33:34 · 143 阅读 · 0 评论 -
manacher algorithm
#include <iostream>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <string>#include <algorithm>#include <math.h>#define ll long long#define Fast_io ios::sync_with_stdio(false), cin.tie(0),原创 2020-08-19 10:11:29 · 127 阅读 · 0 评论 -
数论(继续补充)(gcd + lcm + qpow + prime+qmul)
#include <iostream>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <queue>#include <limits.h>#include <math.h>#define ll long long#define mod 66132using namespace std;//快速幂ll qpow(ll a,原创 2020-08-12 10:14:54 · 226 阅读 · 0 评论 -
最小生成树(prim, kruscal + 非递归)
kruscal常用:#include <iostream>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <algorithm>using namespace std;struct node{ int u, v, w;} e[10001];bool cmp(node a, node b){ return a.w < b.原创 2020-08-11 09:42:52 · 122 阅读 · 0 评论 -
素数:欧拉筛法(自己的一些认识)
对于原创:https://blog.csdn.net/Losk_0/article/details/87884390的一些认识转自:https://blog.csdn.net/Losk_0/article/details/87884390简单就是说:当i == 4 时,4 * 2 = 8, 将8筛掉是可以的4 * 3 = 12 是不可以的因为 4 % 2 == 0 所以 4 = 2 * 某个数n(此处n = 2)所以可以写成 2 * 2 * 3 = 12;所以 2 * 6 = 1212将会原创 2020-08-10 15:11:06 · 4353 阅读 · 1 评论 -
比赛总结(以后再添加)
SDUT 2020 Summer Team Contest 2nd(for 19)1, 最重要的是,第一次遇到文件形式的输入输出,记住吧,审清题意。解决:2,认真读题,尽管你很多是不认识的,但是一定要自己先手动模拟一下,就很简单了。...原创 2020-07-30 19:09:22 · 120 阅读 · 0 评论 -
图的储存的四种形式(只有邻接矩阵没有)
题目:https://acm.sdut.edu.cn/onlinejudge3/problems/3117#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include <stdlib.h>#include <memory.h>#include <limits.h>#include <vector&原创 2020-07-17 11:04:26 · 177 阅读 · 0 评论 -
BFS和DFS的模板
DFS的模板#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include <stdlib.h>#include <memory.h>#include <limits.h>using namespace std;int k, m, e[105][105], book[105];void dfs(in原创 2020-07-17 09:41:18 · 155 阅读 · 0 评论 -
最短路径的三种方法(全)(另外Bellman的改进再看看)
#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include <stdlib.h>#include <memory.h>using namespace std;int u[20005], v[20005], w[20005];int Bellman_Ford(int n, int m) //最短路的长度算法 没有原创 2020-07-16 10:56:08 · 152 阅读 · 0 评论 -
二叉树最简单的建树和三序之间的关系加层序遍历+深度+叶子节点的个数
#include #include <stdio.h>#include <stdlib.h>#include <string.h>#include <memory.h>#include <math.h>#include #include #include #define N 1000000using namespace std;char s[55], pre[101], mid[101], post[101];int n;原创 2020-07-13 10:42:44 · 144 阅读 · 0 评论 -
最大子段 动态规划求解
先看代码,就几行,挺好理解的#include #include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>#include <limits.h>#include <memory.h>#include #define N 100005using namespace std;int main(){int n;scanf("%d"原创 2020-06-04 19:54:19 · 163 阅读 · 0 评论 -
分治递归求最大子段
#include #include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>#include <limits.h>#include <memory.h>#include #define N 50005using namespace std;int step = 0;int a[N];int f(int l, int r){原创 2020-06-04 19:45:51 · 153 阅读 · 0 评论 -
cin和scanf的区别专题
C 的代码#include #include <stdio.h>#include <string.h>#include #include #define N 1000000using namespace std;void rever(int a[], int l, int r){int mid = (l + r) / 2;for(; l <= mid; l++, r–){int t = a[l];a[l] = a[r];a[r] = t;}}原创 2020-05-21 20:55:17 · 286 阅读 · 0 评论