![](https://img-blog.csdnimg.cn/89ae236e6d554d8fbec48dd7d01134a8.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
ACM板子
文章平均质量分 80
1
玛咖二锅头
这个作者很懒,什么都没留下…
展开
-
板子总和+
国庆板子前言对拍模板bat@echo off:loopD:/LSNU/codeforces/code/MakeData.exeD:/LSNU/codeforces/code/A.exeD:/LSNU/codeforces/code/force.exefc AC.txt WA.txtif not errorlevel 1 goto looppause:end说明模板//#pragma comment(linker,"/STACK:1024000000,1024000000")原创 2020-09-03 14:05:52 · 2656 阅读 · 0 评论 -
ACM算法题单
数据结构线段树1:差分与gcd性质的利用原创 2020-11-14 23:04:53 · 602 阅读 · 0 评论 -
几何板子
板子成长史const int N=1e6+5;struct point{ double x,y;};struct line{ point p1,p2;} s[N];原创 2020-01-12 14:25:44 · 158 阅读 · 0 评论 -
基础算法——板子
基础算法不AC各种情况TLE:1:多组测试案例,输入到文本结束2:多组测试案例,数组一定要清空WA:1:定义变量:注意要一个全局跟一个局部相同,意想不到得错误Codeblocks编译器问题1:数组越界,任然可以计算,不会报错2:int函数无返回值,任然可以返回,不会报错。快读template<class T>void read(T& x){ T res = 0, f = 1; char c = getchar(); while (!isdigit(c))原创 2020-09-17 11:44:55 · 788 阅读 · 0 评论 -
DP——板子
DP最长上升子序列(LIS)——O(nlogn)定义最长上升子序列是:1:只包含ai的子序列2:满足j<i并且aj<ai3:子序列长度最长朴素算法O(n^2) dp+二分(nlogn)dp数组维护的是以pos位置结尾最小可能的值,如果要打印最长上升子序列路径,开辟新数组path,倒着找合法序列,正序寻找就会出现1 2 4 6(2 8 6 7)这种不合法序列。虽然满足所有ai <aj 但是存在i>jvector<int>dp;for(int i=0原创 2021-01-23 19:56:35 · 267 阅读 · 0 评论 -
图论——板子
图论最小生成树克鲁斯卡尔算法(Kruskal算法)——时间复杂度O(eloge)特性:稀疏图和记录路径普里姆算法——时间复杂度O(n^2)最小生树是否唯一问题:(次小生成树问题)朴素算法(m^2)1:暴力删除最小生树上的2:判断权值和以及是否是一棵树优化后,理论(mlogm)跑一次克鲁斯卡尔即可边权相等的边,边两点不同的并查集的边数<=所在不同的并查集个数-1保证最小生成树唯一 最小生成树:所有边权之和最小瓶颈生成树:定义无向图G,G的瓶颈生成树是一棵 “ 树上最大边权值原创 2020-11-10 01:10:22 · 248 阅读 · 0 评论 -
字符串——板子
字符串回文字符串1:动态规划–O(n^2)string longestPalindrome(string s){ const int n = s.size(); bool dp[n][n]; memset(dp, 0, sizeof(dp)); int maxlen = 1; //保存最长回文子串长度 int start = 0; //保存最长回文子串起点 for(int i = 0; i < n; ++i) {原创 2020-06-08 16:50:21 · 120 阅读 · 0 评论 -
数论——板子
数论欧几里得算法证明 O( logn )gcd求A和B的最大公约数假设X为最大公约数间接条件:X | A X | B假设A >= B建立方程式A + KB = C = A % B∵ X | A X | KB∴ X | A + KB∴ X | C∴ GCD(A,B)== GCD(B, A%B)然后我们就可以不断的往下辗转相除求GCD(B,C)B和C最大公约数也是X何时是个头GCD(KX , X )其实这里能被整除,就已经知道求到GCD了再往下GCD (X ,原创 2021-01-27 11:33:33 · 450 阅读 · 0 评论 -
数据结构——板子
数据结构树状数组单点修改-区间修改注意1:记得空间初始化为n就可以了,内部自动开辟n+1空间struct BIT{ int n; vector<int>vec; BIT(int len=0) { n=len; vec.resize(n+1,0); } int pre(int x) { int sum=0; while(x) sum+=vec[x原创 2020-11-24 00:23:20 · 274 阅读 · 0 评论