模板
信鸦
这个作者很懒,什么都没留下…
展开
-
个人模板 大数阶乘
#includeusing namespace std;#define N 1000int a[N];void factorial(int n){ memset(a,0,sizeof(a)); int sum,k; a[0]=1; for(int i=2; i { k=0; for(int j原创 2017-03-27 19:19:23 · 356 阅读 · 0 评论 -
个人模板 Kruskal 最小生成树
#include #include using namespace std;const int N = 1e5 + 10;int n, m;struct xx{ int u, v, len;}a[N];int f[N];int Find(int x){ return x == f[x] ? x : (f[x] = Find(f[x]));}int Merg原创 2017-07-01 10:24:40 · 266 阅读 · 0 评论 -
个人模板 prim 最小生成树
#includeusing namespace std;const int Inf = 0x3f3f3f3f;const int N = 1e4 + 10;int n, m;int a[N][N];int prim(){ int mst[N], low[N], ans = 0; mst[1] = 0; for(int i = 2; i <= n; i++)原创 2017-07-01 12:31:38 · 272 阅读 · 0 评论 -
HYSBZ 1191HYSBZ 1191(二分图最大匹配裸题)
1191: [HNOI2006]超级英雄HeroTime Limit: 10 Sec Memory Limit: 162 MBSubmit: 4717 Solved: 2155[Submit][Status][Discuss]Description现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题的多少获得不同数目的奖品原创 2017-08-03 17:12:32 · 295 阅读 · 0 评论 -
个人模板 线段树
有n个结点,m次查询#includeusing namespace std;#define N 5struct tree{ int l,r,sum,mmax;} T[N*4];int ans;void build(int l,int r,int k){ T[k].l=l,T[k].r=r,T[k].sum=0; if(l==r) return; in原创 2017-03-28 15:55:50 · 360 阅读 · 0 评论 -
个人模板 树状数组
#include #include #include using namespace std;int a[50000];int tree[50000];int n;int lowbit(int x){ return (x&-x);}void pushup(int x,int value){ while(x<=n) { tree[x原创 2017-05-05 22:38:01 · 273 阅读 · 0 评论 -
个人模板 堆
大顶堆#include using namespace std;const int N = 1e5 + 10;struct heap{ int size, a[N<<1]; heap(){ size = 0; memset(a, 0, sizeof(a)); } void Pushup(int k){原创 2017-08-14 17:07:43 · 235 阅读 · 0 评论 -
个人模板 KMP
#include#includeusing namespace std;char a[1001];char b[101];int next[101];int lena,lenb;void get_next(){ int i=0,j=-1; next[0]=-1; while(i { if(j==-1||b[i原创 2017-03-27 18:04:42 · 512 阅读 · 0 评论 -
个人模板 拓扑排序
#include using namespace std;int n, m;int a[101][101], d[101];void topo(){ for(int i = 1; i <= m; i++){ for(int j = 1; j <= m; j++){ if(!d[j]){ d[j]--;原创 2017-08-07 17:12:07 · 485 阅读 · 0 评论 -
HDU - 2222 Keywords Search(AC自动机模板题)
Keywords SearchTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 67795 Accepted Submission(s): 22825Problem DescriptionIn the原创 2017-09-12 20:48:41 · 320 阅读 · 0 评论 -
bzoj - 1588 营业额统计 (Splay裸题)
1588: [HNOI2002]营业额统计Time Limit: 5 Sec Memory Limit: 162 MBSubmit: 16991 Solved: 6843[Submit][Status][Discuss]Description营业额统计 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况。 Tige原创 2017-08-28 17:06:03 · 338 阅读 · 0 评论 -
BZOJ - 1036 树的统计Count(线段树树链剖分裸题)
1036: [ZJOI2008]树的统计CountTime Limit: 10 Sec Memory Limit: 162 MBSubmit: 19039 Solved: 7761[Submit][Status][Discuss]Description 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。我们将以下面的形式来要求你对这棵树完成一些操作:原创 2017-10-20 16:29:50 · 288 阅读 · 0 评论 -
HDU - 1251 统计难题(字典树模板题)
统计难题Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others)Total Submission(s): 45711 Accepted Submission(s): 16279Problem DescriptionIgnatius最近遇到一个难题,老原创 2017-10-28 22:57:56 · 332 阅读 · 0 评论 -
个人模板 Manacher求最长回文字串
#includeusing namespace std;const int N = 1000 + 10;string manacher(string s){ int length=s.size(); for(int i=0,k=1;i<length-1;i++)//给字符串添加 # { s.insert(k,"#"); k=k+2原创 2017-05-08 16:57:51 · 264 阅读 · 0 评论 -
C++ string 字符串查找匹配
在写C++程序中,总会遇到要从一个字符串中查找一小段子字符串的情况,对于在C中,我们经常用到strstr()或者strchr()这两种方法。而对于C++的string,我们往往会用到find()。C++:#inlcudeC: #includefind():在一个字符串中查找一个指定的单个字符或字符数组。如果找到,就返回首次匹配的开始位置;如果没有查找到匹配的内容,就返回stri转载 2017-10-24 18:51:35 · 7360 阅读 · 0 评论 -
个人模板 最短路SPFA
#includeusing namespace std;const int N = 10000 + 10;struct xx{ int v; int c;} f[N];int head[N];int nex[N];int dis[N];int vis[N];int cnt[N];int e, n, m;void Clear(){ memset(原创 2017-05-10 12:48:04 · 288 阅读 · 0 评论 -
个人模板 组合数 C(m,n)
#include const int maxn=1000000; #include using namespace std; bool arr[maxn+1]={false}; vector produce_prim_number() { vector prim; prim.push_back(2); int i,j;原创 2017-04-14 21:11:26 · 641 阅读 · 0 评论 -
个人模板 字符串最小表示法
#includeusing namespace std;int getminsub(char *a){ int i = 0,j = 1,len = strlen(a),k = 0; while(i < len && j < len && k < len) { if(k == len) break; if(i == j) j++;原创 2017-05-09 17:21:47 · 391 阅读 · 0 评论 -
个人模板 最短路floyd
#include#define inf 0x3f3f3fusing namespace std;int a[101][101];int main(){ int m,n; while(scanf("%d%d",&n,&m)==2) { for(int i=0; i { for(int j=原创 2017-03-27 19:03:22 · 268 阅读 · 0 评论 -
个人模板 最短路djkstra
在n个点m条边的图中求s点到e点的最短距离#include#define inf 1e7using namespace std;int m,n,s,e;int a[101][101];int dis[101];int vis[101];void djkstra(int m,int k){ for(int i=1; i {原创 2017-03-27 18:52:24 · 417 阅读 · 0 评论 -
个人模板 筛法求素数
#includeusing namespace std;#define Max 10000int temp[Max+1]={1,1};int su[Max]={};void prime(){ int x=0; for(int i=2;i { if(!temp[i]) { su[x++原创 2017-03-27 18:20:19 · 352 阅读 · 0 评论 -
个人模板 01背包
#includeusing namespace std;struct item{ int vol,val; //volum和value}item[1001];int main(){ int n,m; int dp[1001]; while(scanf("%d%d",&n,&m)==2) { memset(d原创 2017-03-27 18:12:56 · 299 阅读 · 0 评论 -
个人模板 BFS
#includeusing namespace std;int m,n;char a[110][110];int vis[110][110];int dx[]={1,-1,0,0};int dy[]={0,0,1,-1};struct xx{ int a,b;};int judge(int i,int j){ if(i>=0&&i=0原创 2017-03-27 17:37:55 · 283 阅读 · 0 评论 -
个人模板 图的深度,广度优先遍历
#include#includeusing namespace std;int vis[101];int a[101][101];int n,m,sum;//n个点,m条边void dfs(int s){ printf("%d ",s); sum++; if(sum==n) return; for(int i=1原创 2017-03-27 19:31:31 · 482 阅读 · 0 评论 -
个人模板 归并排序
#include const int maxn = 100004;void Merge(int data[], int pd[], int l, int mid, int r){ int i, j, k; i = l; j = mid + 1; k = 0; while(i <= mid && j <= r) // 合并 pd[k++] =原创 2017-04-14 17:50:50 · 291 阅读 · 0 评论 -
个人模板 计算年月日
#include #include #include #define ll long long using namespace std; int judge(int y) { if(y%400==0) return 1; if(y%4==0&&y%100!=0) return 1; return 0; } int yue1[13]原创 2017-04-14 21:17:55 · 439 阅读 · 0 评论 -
个人模板 ST表
#include using namespace std;const int N = 1e5 + 10;int a[N];int f[N][16];int n;void rmq_init() //建立:dp(i,j) = min{dp(i,j-1),dp(i+2^(j-1),j-1) O(nlogn){ for (int i = 1; i <= n; i++)转载 2017-05-05 22:34:42 · 357 阅读 · 0 评论 -
个人模板 最长公共连续子序列
#includeusing namespace std;void getLCS(char* str1, char* str2){ int len1 = strlen(str1); int len2 = strlen(str2); int matrix[len1]; //str1为x方向 //初始化matrix for (int i = 0; i <原创 2017-05-05 22:42:13 · 288 阅读 · 0 评论 -
个人模板 最长公共子序列
例题: http://acm.hdu.edu.cn/showproblem.php?pid=1159#includeusing namespace std;const int N = 5000 + 10;char a[N], b[N];int dp[2][N];int main(){ int n; while(~scanf("%s%s", a, b))原创 2017-05-05 22:57:38 · 276 阅读 · 0 评论 -
个人模板 简单离散化
#include ///简单离散化(去重???)using namespace std;const int N = 1e5 + 10 ;struct zuobiao{ int date,pos;} a[N];int aa[N];int n;int cmp(zuobiao a,zuobiao b){ if(a.date==b.date) retu原创 2017-04-15 09:32:10 · 424 阅读 · 0 评论 -
个人模板 字符串按字典序排序
#includeusing namespace std;struct A{ char str[101];};char a[100][100];int n;int cmp(const void *a,const void *b){ A *c, *d; c = (A *)a; d = (A *)b; return strcmp(c -> st原创 2017-05-06 18:48:38 · 403 阅读 · 0 评论 -
个人模板 快速幂取模,矩阵快速幂,快速乘
#includeusing namespace std;const int MOD = 1007;int xx(int a,int n,int MOD) //计算a的n次方对MOD取模{ int ret=1; int tmp=a%MOD; while(n) { if(n&1) ret=ret*tmp原创 2017-03-27 17:54:29 · 650 阅读 · 0 评论 -
个人模板 高精度BigInt
#includeusing namespace std;const int M = 1001 ;void Add(char a[],char b[],char d[]){ char c[10001]; int lena=strlen(a),lenb=strlen(b); int i,j,len; len=lena>lenb?lena:lenb; le原创 2017-04-14 21:29:53 · 470 阅读 · 0 评论