
模板
Lawliet_ZMZ
ACMERandNODER
展开
-
【转】 cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
1、cin 1、cin.get() 2、cin.getline() 3、getline() 4、gets() 5、getchar()1、cin>> 用法1:最基本,也是最常用的用法,输入一个数字:#include using namespace std; main () { int a,b; cin>>a>>b; cout输入:2[回车]3[回车] 输出:5转载 2016-04-28 11:20:17 · 210 阅读 · 0 评论 -
最短路之SPFA模板
一:邻接矩阵版本SPFA//如果要判断负环的话加一个记录入队的数组就行,当入队次数大于n的时候出现负环 int d[MAXN],vis[MAXN],w[MAXN][MAXN]; int n; void SPFA(int s) { fill(d,d+n,INF); d[s]=0;原创 2016-08-10 11:05:04 · 555 阅读 · 0 评论 -
(质因子打表记录素数的位置)HDU Largest prime factor
利用素数打表的筛选法#include #include using namespace std;int a[1000000];int main(){ int ans,k=0; memset(a,0,sizeof(a)); for(int i=2;i<1000000;i++) { if(a[i]==0){ k++; for原创 2016-05-07 01:04:45 · 528 阅读 · 0 评论 -
找割点和割边
#include #include using namespace std;int n,m,e[9][9],root;int num[9],low[9],flag[9],index;void dfs(int cur,int father){ int child= 0,i; index++; num[cur]=index; low[cur]=index原创 2016-08-14 00:14:34 · 1897 阅读 · 0 评论 -
POJ 1061 扩展欧几里德算法
传送门:http://poj.org/problem?id=1061裸扩展欧几里德算法,可做模板根据题意可列出一个等式:(x+m*s) - (y+n*s) = k*L(k = 0,1,2,.....)变形后:(n-m)*s + k*L =x-y令 a = n - m,b = L,c = x - y,即a*s +b*k =c只要上式存在整数解,则两青蛙能相遇,否则原创 2016-09-07 22:22:42 · 403 阅读 · 0 评论 -
C++之pair
转载自:http://www.cnblogs.com/archimedes/p/cpp-pair.htmlhttp://www.cnblogs.com/Nimeux/archive/2010/10/05/1844191.htmlstd::pair主要的作用是将两个数据组合成一个数据,两个数据可以是同一类型或者不同类型。例如std::pair 或者 std::pair等。pair实质上是转载 2017-02-10 17:11:41 · 373 阅读 · 0 评论 -
c++ string函数详细返回值及用法!
通过在网站上的资料搜集,得到了很多关于string类用法的文档,通过对这些资料的整理和加入一些自己的代码,就得出了一份比较完整的关于string类函数有哪些和怎样用的文档了!下面先罗列出string类的函数有哪一些,然后再罗列出函数的原型,最后到代码的实现标准C++中提供的string类得功能也是非常强大的,一般都能满足我们开发项目时使用。现将具体用法的一部分罗列如下,只起一个抛砖原创 2016-08-04 11:25:14 · 29478 阅读 · 4 评论 -
L2-005. 集合相似度 数组&Sets容器
L2-005. 集合相似度时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者陈越给定两个整数集合,它们的相似度定义为:Nc/Nt*100%。其中Nc是两个集合都有的不相等整数的个数,Nt是两个集合一共有的不原创 2017-03-17 22:30:49 · 380 阅读 · 5 评论 -
hdu 1575 矩阵快速幂模板题
Tr ATime Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5008 Accepted Submission(s): 3738Problem DescriptionA为一个方阵,则Tr A表示A的迹原创 2017-05-01 02:07:55 · 504 阅读 · 0 评论 -
Dijkstra队列优化矩阵版
#include #define INF 0x3f3f3f3f //定义一个很大的数using namespace std;const int maxn = 100 + 10;int vis[maxn];int mp[maxn][maxn];int v[maxn][maxn];int dis[maxn];int mon[maxn][maxn];int val[maxn]原创 2017-04-12 18:46:12 · 461 阅读 · 0 评论 -
HDU 2680 有点坑的稠密图最短路(dij各版本)
Choose the best routeTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 14431 Accepted Submission(s): 4711Problem DescriptionOne原创 2017-05-03 14:36:49 · 406 阅读 · 0 评论 -
快速排序(啊哈算法)
#include #include using namespace std;int a[101],n;void quicksort(int left,int right){ int i,j,t,tmp; if(left>right) return ; //当i变为left值,进入第一个递归,right变为0,此时return 结束此递归函数。原创 2016-06-19 23:21:46 · 993 阅读 · 0 评论 -
Gym - 100712 F输出最长边的最小生成树
标准的最小生成树,一点隐藏题意的意思都没有。题意就是一个人想在任意两个城市开车,路上没有加油的,每个城市都有。每条路会有花费,求能遍历所有城市需要的至少汽油有多少。这里讲下最下生成树和最短路径的区别:最小生成树能够保证整个拓扑图的所有路径之和最小,但不能保证任意两点之间是最短路径。最短路径是从一点出发,到达目的地的路径最小。如图,最小生成树只要能扩展枝条到全部点就行原创 2017-05-05 11:24:23 · 445 阅读 · 0 评论 -
扩展欧几里得算法详解
一:欧几里得算法(辗转相除法) 基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a%b)。证明: a可以表示成a = kb + r,则r = a mod b 假设d是a,b的一个公约数,则有 d|a, d|b,而r = a原创 2017-09-04 21:02:22 · 1298 阅读 · 0 评论 -
3259 spfa判断负环(邻接表)
WormholesTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 44174 Accepted: 16235DescriptionWhile exploring his many farms, Farmer John has discovered a nu原创 2016-08-10 11:02:07 · 385 阅读 · 0 评论 -
用数组模拟邻接表
用图的邻接矩阵存储法,它的空间和时间复杂度都是N2,现在我来介绍另外一种存储图的方法:邻接表,这样空间和时间复杂度就都是M。对于稀疏图来说,M要远远小于N2。先上数据,如下。4 5 1 4 9 4 3 8 1 2 5 2 4 6 1 3 7 第一行两个整数n m。n表示顶点个数(顶点编号为1~n),m表示边的条数。接下来m行表示,每行有3个数x y z,表示顶点x到原创 2016-08-08 20:58:51 · 6731 阅读 · 12 评论 -
优先队列
优先队列:顾名思义,首先它是一个队列,但是它强调了“优先”二字,所以,已经不能算是一般意义上的队列了,它的“优先”意指取队首元素时,有一定的选择性,即根据元素的属性选择某一项值最优的出队~百度百科上这样描述的: 优先级队列 是不同于先进先出队列的另一种队列。每次从队列中取出的是具有最高优先权的元素 优先队列的类定义 优先队列是0个或多个元素的集合,每个元素都有一个优先权或转载 2016-08-08 15:28:43 · 748 阅读 · 0 评论 -
pow()函数
函数名称: pow函数原型: double pow( double x, double y );函数功能: 计算x的y次幂所属文件: 这个例子中计算了8的2次方: double x=8, y=2; double z; z=pow(x,y);在codeblocs打出pow后会有不同类型的参数类型选项。以下为网上的搬砖pow: C/C+原创 2016-05-19 20:11:48 · 24206 阅读 · 0 评论 -
floor()向下取整函数
floor(x),有时候也写做Floor(x),其功能是“向下取整”,或者说“向下舍入”,即取不大于x的最大整数(与“四舍五入”不同,下取整是直接去掉小数部分),例如:[1] x=3.14,floor(x)=3y=9.99999,floor(y)=9与floor函数对应的是ceil函数,向上取整,一个地板,一个天花板原创 2016-05-19 20:14:39 · 2817 阅读 · 0 评论 -
max()和数组里面的max
#include using namespace std;int main(){ cout return 0;}可以直接调用,这里输出13追问:1.如果两个相等呢?2.如果里面的参数个数不确定呢?这时还可以么?Thx追答:这个函数的实现是这样的:原创 2016-05-21 17:57:20 · 1906 阅读 · 0 评论 -
sort,qsort排序
对多个字符串排序,比较函数用strcmp写,如string数组存储的多个字符串#include #include #include #include #include using namespace std;string s[110];bool cmp (string a, string b) { return a < b; }int main () { int原创 2016-07-24 16:16:55 · 506 阅读 · 0 评论 -
输入两个字符串,不用系统提供的函数strcat,自定义函数将两个字符串连接起来。
#include #include#includeusing namespace std;char *catstr(char *a,char *b){char *p=a,*q=b;while(*p) p++;while(*q)*p++=*q++;*p='\0';return a;}int main(){ char str1[105]; char str2[1原创 2016-07-03 16:22:46 · 10875 阅读 · 0 评论 -
UVa 156 map小用
#include #include #include #include #include #include //olower 将大写字母转换为小写字母#include using namespace std;map cnt;vector words;string biaozhun(const string &s){ string ans = s; for原创 2016-07-27 09:34:07 · 240 阅读 · 0 评论 -
POJ 2330 进制转换
一个没用到大数的进制转换的思想:http://www.cnblogs.com/phinecos/archive/2009/09/11/1564975.html二、八、十、十六进制转换(图解篇):http://www.cnblogs.com/gaizai/p/4233780.html题目连接:http://poj.org/problem?id=1220#include#include原创 2016-07-28 17:36:52 · 607 阅读 · 0 评论 -
啊哈算法_全排列
#include #include using namespace std;int a[10],book[10],n;void dfs(int step) //step表示站在第几个盒子面前{ int i; if(step==n+1) { for(i=1;i<=n;i++) cout<<a[i]; cout原创 2016-07-29 16:01:59 · 1671 阅读 · 0 评论 -
二分图最大匹配模板
#include #include using namespace std;int e[101][101];int match[101];int book[101];int n,m;int dfs(int u){ int i; for(i=1;i<=n;i++) { if(book[i]==0&&e[u][i]==1) {原创 2016-08-15 15:31:54 · 1818 阅读 · 0 评论 -
解救人质 BFS模板(迷宫问题)
和上个DFS的问题一样,这次用BFS的思想,BFS没有像DFS那样专门有个step累加,是靠队列思想实现,更像一群路径竞速,最快的到达后,就break输出了#include struct node{ int x; int y; int f;//父亲在队列中的编号,本题不要求输出路径,可以不需要f int s;//步数};int main(){原创 2016-07-30 09:45:32 · 999 阅读 · 0 评论 -
解救人质 DFS简单模板
解救人质,给一张二维地图,有障碍的点不能移动,给定起始点和人质坐标,求到达人质路程的最短路程,DFS模型#include #include using namespace std;int n,m,p,q,Min=99999999;int a[51][51],book[51][51];void dfs(int x,int y,int step){ int next[4][2]原创 2016-07-29 20:52:37 · 838 阅读 · 0 评论 -
最小生成树-Prim算法和Kruskal算法
Prim算法1.概览普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (graph theory)),且其所有边的权值之和亦为最小。该算法于1930年由捷克数学家沃伊捷赫·亚尔尼克(英语:Vojtěch Jarník)发现;并在1957年由美国计算机科学家罗伯特·普转载 2016-08-02 11:22:23 · 510 阅读 · 0 评论 -
最小生成树kruskal算法
#include#include#include using namespace std;const int maxn = 2000+10;char map[maxn][10];int f[maxn];int n,cnt;struct edge{ int u,v; int w;}e[maxn*maxn/2];int dist(int st, int en)原创 2016-08-02 20:28:00 · 384 阅读 · 0 评论 -
SPFA的队列优化模板
#include&lt;iostream&gt;#include&lt;algorithm&gt;#include&lt;cstring&gt;#include&lt;string&gt;#include&lt;set&gt;#include&lt;queue&gt;using namespace std;原创 2018-04-16 15:15:10 · 322 阅读 · 0 评论