摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1181一开始忘记 回溯了。。简单的dfs 只要把每个字符串的第一个和最后一个处理一下 就可以 了#include<iostream>#include<string.h>#include<cstdio>#include<vector>using namespace std;vector <int> p[30];char s[1000002];int flag;void dfs(int n){ int w,i; w=p[n].size(); for(i= 阅读全文
posted @ 2013-06-04 15:20 galaxy77 阅读(139) 评论(0) 推荐(0) 编辑
摘要: STL vector简介vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的.用法:1.文件包含:首先在程序开头处加上#include<vector>以包含所需要的类文件vector还有一定要加上using namespace std;2.成员函数1.push_back 在数组的最后添加一个数据2.pop_back 去掉数组的最后一个数据 3.at 得到编号位置的数据4.begin 得到数组头的指针5.end 得到数组的最后一个单元+1的指针6.front 得到 阅读全文
posted @ 2013-06-03 21:17 galaxy77 阅读(513) 评论(0) 推荐(0) 编辑
摘要: 第n年的 牛数 为第n-1年的 加上n年新生下来的牛 只有 n-3 年的牛才能产牛所以 递推式为 p[n]=p[n-1]+p[n-3]#include<iostream> using namespace std; int n; int main() { int s[55]; int i; s[0]=0; for(i=1;i<=4;i++) s[i]=i; for(i=5;i<=54;i++) s[i]=s[i-1]+s[i-3]; while(~scanf("%d",&n)&&n) pr... 阅读全文
posted @ 2013-06-01 15:42 galaxy77 阅读(157) 评论(0) 推荐(0) 编辑
摘要: void solve(int n){ int k=2; while(n) { if(n%k==0) printf("%d \n",k); else { n=n/k; k++;} }}//像 120 会输出 2 2 2 3 5 // 当k=2时 n一直自除2 除到不能被2整除了 当然就 不能被 4 6 8 10 。。。整除了 所以 就不用判断下一个能被n整除的//数是不是素数了 这有点像 素数筛选法的感觉 .// 如果不要重复的 再进行处理 就好了 阅读全文
posted @ 2013-06-01 15:13 galaxy77 阅读(143) 评论(0) 推荐(0) 编辑
摘要: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=20&page=show_problem&problem=1811不过我测试数据 第三组没过 估计是 取余这里错了代码还是 贴一下吧。。 到时候 再 贴ac代码#include<iostream>using namespace std;struct node{int p[100][100];};node a,b,c,f;int mod;node cheng(node a,node b,int n, 阅读全文
posted @ 2013-05-30 20:43 galaxy77 阅读(146) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2157题意:求从点s 走k步 到点 t 的方法种数#include<iostream>#include<string.h>using namespace std;struct node{int p[22][22];};node a,b;int n;node cheng(node a,node b){ node c; int i,j,k; for(i=0;i<n;i++) for(j=0;j<n;j++) { c.p[i][j]=0; ... 阅读全文
posted @ 2013-05-30 20:33 galaxy77 阅读(157) 评论(0) 推荐(0) 编辑
摘要: #include<iostream>using namespace std;struct node{int p[100][100];};node a,b;int num,n,qq;node cheng(node a,node b){ node c; int j,i,w,k; for(i=0;i<num;i++) for(j=0;j<num;j++) { int w=0; //c.p[i][j]=0; for(k=0;k<num;k++) w+=(a.p[i][k]*b.p[k][j])%qq; c.p[i][j]=w%qq; } return c;}void so 阅读全文
posted @ 2013-05-30 20:28 galaxy77 阅读(137) 评论(0) 推荐(0) 编辑
摘要: #include<iostream>#include<math.h>using namespace std;double a[100][100];int n;void gaosi(){ int i,j,k,r; for(i=0;i<n;i++) { r=i; for(j=i+1;j<n;j++) if(fabs(a[j][i])>fabs(a[r][i])) r=i; for(j=i;j<=n;j++) { double w; w=a[i][j];a[i][j]=a[r][j];a[r][j]=w; } for(j=i+1;j<=n;j++ 阅读全文
posted @ 2013-05-30 20:26 galaxy77 阅读(758) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3070#include<iostream>#include<cstdio>using namespace std;int a[4];void j(int n){ int q,b,c,d; if(n==1) { a[0]=1;a[1]=1;a[2]=1;a[3]=0; } else { j(n/2); q=a[0]*a[0]+a[1]*a[2]; b=a[0]*a[1]+a[1]*a[3]; c=a[2]*a[0]+a[3]*a[2]; ... 阅读全文
posted @ 2013-05-27 17:30 galaxy77 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 好久没有写 并查集的程序了。。 这个 并查集的模板题#include<iostream>using namespace std;int p[100002],v[100002],u[100002],q[100002];int f(int n){return p[n]==n?n:p[n]=f(p[n]);}int main(){ int i,j,n,m;while(1){scanf("%d%d",&u[0],&v[0]);if(u[0]==-1&&v[0]==-1)break;if(u[0]==0&&v[0]==0){ 阅读全文
posted @ 2013-05-26 19:17 galaxy77 阅读(127) 评论(0) 推荐(0) 编辑