ACM算法模板题
文章平均质量分 78
ACM算法模板题
pxlsdz
冲就完了!
展开
-
后缀自动机模板
1 . 求不同子串的种类2.长度为k的字符串的个数3.计算所有子串的和(0-9表示)(前导0与非前导0)4. 一种是在字符串后面添加一个字符,另一个是查询出现过最少出现K次的字串个数。5. 恰好出现k次的字符串,至少k次的子串-至少(k+1)次的子串 =至少k次题目来源1445 后缀自动机二·重复旋律5 Lv.4 2016-12-10 ...原创 2019-10-22 10:16:40 · 293 阅读 · 0 评论 -
一元三次方程求解
a*x^3+b*x^2+c*x+d=0枚举+二分#include<cstdio>#include<cmath>#include<cstdlib>using namespace std;const double PI = acos(-1.0);double a,b,c,d;double R,m;double f(double x){...原创 2019-10-18 11:20:39 · 2994 阅读 · 0 评论 -
HDU6592 - Beauty Of Unimodal Sequence(贪心,线段树+LIS+单峰)
Beauty Of Unimodal SequenceTime Limit: 8000/4000 MS (Java/Others)Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 734Accepted Submission(s): 262Problem DescriptionYou a...原创 2019-10-15 09:59:56 · 353 阅读 · 0 评论 -
单向链表结构基本操作
链表结构,这里只要是单向链表的模板。(顺便放张图片偷偷懒)关键是书上讲的真好注意单链表的图示,很形象下面代码模板:/*1.查找“数据域满足一定条件的点” p=head->next; while(p->data!=x&&p->next!=NULL) p=p->next; if(p->next==x) 找到了处理 e...原创 2018-04-05 13:59:18 · 401 阅读 · 0 评论 -
多起点多终点 spfa(邻接矩阵模板)HDU 2066 一个人的旅行
一个人的旅行TimeLimit: 1000/1000 MS (Java/Others) Memory Limit:32768/32768 K (Java/Others)Total Submission(s): 47739 Accepted Submission(s): 15834ProblemDescription虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~)...原创 2018-05-18 07:51:22 · 338 阅读 · 0 评论 -
次短路+ Dijstra HDU 3191 How Many PathsAre There
How Many PathsAre ThereTimeLimit: 2000/1000 MS (Java/Others) Memory Limit:32768/32768 K (Java/Others)Total Submission(s): 1820 Accepted Submission(s): 646ProblemDescription oooccc1 is a Softwar...原创 2018-05-18 15:20:21 · 315 阅读 · 0 评论 -
快速排序函数
功 能: 快速排序头文件:stdlib.h用 法: void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));参数: 1 待排序数组首元素的地址 2 数组中待排序元素数量3 各元素的占用空间大小4 指向函数的指针,用于确定排序的顺序 注意:数组中可以存储数字,字符,或者结构体都行。1.普通数组...原创 2018-05-12 13:28:51 · 4796 阅读 · 0 评论 -
(带权并查集) HDU 3038 How Many Answers Are Wrong
How ManyAnswers Are WrongTimeLimit: 2000/1000 MS (Java/Others) Memory Limit:32768/32768 K (Java/Others)Total Submission(s): 12756 Accepted Submission(s): 4544ProblemDescriptionTT and FF are ... ...原创 2018-05-22 18:41:30 · 283 阅读 · 0 评论 -
快速排斥实验&跨立实验 判断两直线是否相交
两条线段有且仅有一个公共点,且这个点不是任何一条线段的端点时,称这两条线段是严格相交的。也就是说线段不严格相交时可以将端点作为交点,但本文不讨论不严格相交,只讨论严格相交的情况(即使它们在算法实现上差别不大)。在判断两条线段是否相交时,我们常用快速排斥实验跟跨立实验这两种方法,快速排斥实验能很快的排除掉线段不相交的情况,但并没法成为线段相交的充要条件,在快速排斥实验之后接上跨立实验就能完全的判断两...原创 2018-05-22 13:16:44 · 1653 阅读 · 0 评论 -
并查集+计算几何线段相交(快速排斥实验&跨立实验) HDU 1558 Segment set
Segment setTimeLimit: 3000/1000 MS (Java/Others) Memory Limit:32768/32768 K (Java/Others)Total Submission(s): 5359 Accepted Submission(s): 2064ProblemDescriptionA segmentand all segments which a...原创 2018-05-22 14:15:26 · 441 阅读 · 0 评论 -
拓扑排序算法(AOV)简单例题 【例4-12】、家谱树
【例4-12】、家谱树【问题描述】 有个人的家族很大,辈分关系很混乱,请你帮整理一下这种关系。 给出每个人的孩子的信息。 输出一个序列,使得每个人的后辈都比那个人后列出。【输入格式】 第1行一个整数N(1<=N<=100),表示家族的人数。 接下来N行,第I行描述第I个人的儿子。 每行最后是0表示描述完毕。【输出格式】 输出一个序列,使得每个人...原创 2018-05-24 23:28:12 · 1635 阅读 · 0 评论 -
POJ 3620 Avoid The Lakes(bfs求最大连通块,队列模板)
Avoid The Lakes Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 8708 Accepted: 4585 Description Farmer John's farm was flooded in the most recent storm, a f...原创 2018-06-07 00:15:22 · 701 阅读 · 2 评论 -
3670 EatingTogether /P2896 [USACO08FEB]一起吃饭Eating TogetherDP(最长不下降子序列upper_bound)
EatingTogetherTime Limit: 1000MS Memory Limit: 65536K Total Submissions: 6363 Accepted: 3081 DescriptionThe cows are so very silly about their dinner partners. They haveorganized themselves int...原创 2018-06-08 00:59:58 · 312 阅读 · 0 评论 -
拓扑排序
拓扑排序【定义】 对一个有向无环图(DirectedAcyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。【应用】拓扑排序通常用来“排序”具有依赖关系的任务。比如,如果用一个DAG图来表示一个工程,其中每个顶点表示工程中的一个任务,用有向边<A,B>...原创 2018-06-14 23:34:03 · 239 阅读 · 0 评论 -
拓扑排序判断环
给你一个N点和M条有向边的图,问你该图是否可拓扑排序.#include<cstdio> #include<cstring> #include<vector> #include<queue> using namespace std; const int maxn=100+10; int n,m; vector<int...原创 2018-06-14 23:35:23 · 720 阅读 · 0 评论 -
贪心法求树的最小支配集
贪心法求树的最小支配集定义:支配集:形式上,支配集可描述如下:给定无向图G =〈V , E〉,其中V 是大小为n 的点集,E 是边集,那么V 的一个子集S称为支配集当且仅当对于V - S 中任何一个点v ,都有S 中的某个定点u , 使得( u , v) ∈E。最小支配集:对于图G = (V, E) 来说,最小支配集指的是从 V 中取尽量少的点组成一个集合, 使得V 中剩余的点都与取出来的点有边相...原创 2018-06-02 00:27:44 · 1672 阅读 · 3 评论 -
POJ 3659/洛谷 P2899 [USACO08JAN]手机网络Cell Phone Network 树的最小的支配集(树型DP)
Cell Phone Network Time Limit: 1000MSMemory Limit: 65536KTotal Submissions: 7165Accepted: 2558DescriptionFarmer John has decided to give e...原创 2018-06-02 13:42:00 · 506 阅读 · 0 评论 -
POJ 3669 Meteor Shower (bfs+优先队列)模板
Meteor ShowerTime Limit: 1000MS Memory Limit: 65536K Total Submissions: 24764 Accepted: 6404 DescriptionBessie hears that an extraordinary meteorshower is coming; reports say that these meteors ...原创 2018-06-10 01:26:19 · 214 阅读 · 0 评论 -
POJ 3463 Sightseeing 有向图次短路
Sightseeing Sightseeing Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1385 Accepted Submission(s): 612 Problem Descri...原创 2018-07-25 15:37:11 · 432 阅读 · 1 评论 -
POJ 3255 Roadblocks 无向图次短路
Roadblocks Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 18963 Accepted: 6648 DescriptionBessie has moved to a small farm and someti...原创 2018-07-25 16:56:32 · 295 阅读 · 0 评论 -
POJ 3181 Dollar Dayz 完全背包求方法总数+高精度大数类
Dollar Dayz Time Limit : 2000/1000ms (Java/Other) Memory Limit : 131072/65536K (Java/Other)Total Submission(s) : 6 Accepted Submission(s) : 3Problem DescriptionFarmer John goes to Dollar D...原创 2018-07-25 20:32:26 · 341 阅读 · 0 评论 -
POJ 2435 Navigating the City bfs打印路径
Navigating the City Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 1025 Accepted: 566 DescriptionA dip in the milk market has forced ...原创 2018-07-28 23:28:02 · 234 阅读 · 0 评论 -
POJ 3037 Skiing 二维spfa 模板
Skiing Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5537 Accepted: 1464 Special Judge DescriptionBessie and the res...原创 2018-07-29 09:26:14 · 312 阅读 · 0 评论 -
POJ 3256 Cow Picnic DFS图的遍历
Cow Picnic Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 5933 Accepted: 2445 DescriptionThe cows are having a picnic! Each of Farmer...原创 2018-07-26 15:15:34 · 233 阅读 · 0 评论 -
POJ 2392 Space Elevator 贪心+多重背包
Space Elevator Time Limit : 2000/1000ms (Java/Other) Memory Limit : 131072/65536K (Java/Other)Total Submission(s) : 4 Accepted Submission(s) : 1Problem DescriptionThe cows are going to spa...原创 2018-07-29 21:41:46 · 224 阅读 · 0 评论 -
HDU 2844 Coins 多重背包
Coins Time Limit: 3000MS Memory Limit: 30000K Total Submissions: 42834 Accepted: 14480 DescriptionPeople in Silverland use coins.They have coins ...原创 2018-07-29 22:12:52 · 351 阅读 · 0 评论 -
背包模板(多重背包联系)
01背包void ZERO_ONE_PACK(int cost,int m,int w) //m一般为容量或限制条件{ for(int i=m;i>=cost;i--)//有的题方程是累加,比如计数方案数问题,注意初始化,一般dp[0]=1; dp[i]=max(dp[i], dp[i-cost]+w);}完全背包//完全背包过程void CO...原创 2018-07-29 22:21:54 · 242 阅读 · 0 评论 -
异或运算定义和交换
【定义】 表示当两个数的二进制表示,进行异或运算时,当前位的二进制相同为0,不同为1.【性质】运算规则:同0异1可交换性:a^b=b^a可结合性:a^b^c=(a^b)^c=a^(b^c)自身进行异或运算值为零:a^a=0与 0 异或时结果不变:a^0=a【异或运算代码】当采用异或运算时,实现两变量交换无需借助第三个临时变量void exchange(in...原创 2018-07-30 23:24:11 · 1158 阅读 · 0 评论 -
POJ 3260 Wormholes SPFA判断负边环
Wormholes Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 61855 Accepted: 23054 DescriptionWhile exploring his many farms, Farmer John...原创 2018-07-27 16:23:04 · 197 阅读 · 0 评论 -
母函数原理和应用
【定义】生成函数即母函数,是组合数学中尤其是计数方面的一个重要理论和工具。生成函数普通母函数、指数母函数、L级数、贝尔级数和狄利克雷级数,ACM应用其中普通型用的比较多,其次就是指数母函数,下面我们对这两个讲解。形式上说,普通型生成函数用于解决多重集的组合问题,而指数型母函数用于解决多重集的排列问题。母函数还可以解决递归数列的通项问题(例如使用母函数解决斐波那契数列的通项公式),这是后话。...原创 2018-08-04 17:04:48 · 1637 阅读 · 0 评论 -
HDU 1521 排列组合 指数型母函数
排列组合 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 5013 Accepted Submission(s): 2187 Problem Description 有n种物品,并且知道每...原创 2018-08-04 17:26:43 · 262 阅读 · 0 评论 -
青蛙的约会 扩展的欧几里德算法
青蛙的约会 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 127383 Accepted: 27617 Description两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条...原创 2018-07-31 11:12:31 · 226 阅读 · 0 评论 -
POJ 2689 Prime Distance 大区间素数筛选
Prime Distance Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 22308 Accepted: 5928 DescriptionThe branch of mathematics called number...原创 2018-08-09 11:28:24 · 192 阅读 · 0 评论 -
HDU 1695 莫比乌斯反演
参考博客:点这里莫比乌斯反演解释:点这里这个ppt解释的蛮好:点这里结合看题意:给你 a , b , c , d , k 五个值 (题目说明了 你可以认为 a=c=1) x 属于 [1,b] ,y属于[1,d] 让你求有多少对这样的 (x,y)满足gcd(x,y)==k。给你的时间是 3000 MS。 0 < a <= b <= 100,000,...原创 2018-08-05 11:35:47 · 330 阅读 · 0 评论 -
莫比乌斯反演
莫比乌斯反演【前言】初学莫比乌斯反演真是一脸蒙B,查了很多资料,才有点理解。大家一起学习。【引入】当满足以下求和函数: 可以得到:F(1)=f(1)F(2)=f(1)+f(2)F(3)=f(1)+ f(3)F(4)=f(1)+f(2)+f(4) F(5)=f(...原创 2018-08-05 11:38:45 · 215 阅读 · 0 评论 -
中国剩余定理(CRT) 证明 互质与不互质
中国剩余定理(CRT) 图来自博客:https://blog.csdn.net/u012717411/article/details/43168405我对此做一些解释。首先,(Mi,mi)=1表示它两互质下面这个方程更有利于理解扩展欧几里德如何求解是Mi模mi的逆元,另一种好理解证明:代码模板:typedef long long ll;void ...原创 2018-07-31 22:09:41 · 1317 阅读 · 0 评论 -
Lucas定理理解与应用
【定义】Lucas定理是用来求 C(n,m) mod p的值。条件:n和m是非负整数,p是素数一般用于:n和m但p很小,或者n,m不大但大于p,这样用阶乘解决不了。【公式】表达式:C(n,m)%p=C(n/p,m/p)*C(n%p,m%p)%p。(可以递归)递归方程:(C(n%p, m%p)*Lucas(n/p, m/p))%p。(递归出口为m==0,return 1...原创 2018-08-05 16:22:12 · 796 阅读 · 0 评论 -
预处理(组合数) 重数
组合数预处理:问题:求解组合数C(n,m),即从n个相同物品中取出m个的方案数,由于结果可能非常大,对结果模10007即可。方案1: 暴力求解,C(n,m)=n*(n-1)…(n-m+1)/m!,n<=15方案2: 打表,C(n,m)=C(n-1,m-1)+C(n-1,m),n<=1,000方案3: 质因数分解,C(n,m)=n!/(m!*(n-m)!),C(n,m)=...原创 2018-08-05 17:19:27 · 1090 阅读 · 0 评论 -
线性筛素数 证明详解
线性筛素数代码实现:typedef long long ll; const ll N = 200000; ll prime[N] = {0},num_prime = 0; //prime存放着小于N的素数 int isNotPrime[N] = {1, 1}; // isNotPrime[i]如果i不是素数,则为1 int Prime() ...原创 2018-08-01 08:01:25 · 6195 阅读 · 2 评论 -
素数 (性质,费马小定理 miller_rabin_素性测试)
转载自Matrix大牛的博客 把代码翻译成C++http://www.matrix67.com/blog/archives/234一个数是素数(也叫质数),当且仅当它的约数只有两个——1和它本身。规定这两个约数不能相同,因此1不是素数。对素数的研究属于数论范畴,你可以看到许多数学家没事就想出一些符合某种性质的素数并称它为某某某素数。整个数论几乎就围绕着整除和素数之类的词转过去转过来。对于写...原创 2018-08-01 11:22:39 · 2119 阅读 · 0 评论