- 博客(62)
- 资源 (2)
- 收藏
- 关注
原创 poj 1456
#include#include#include#define N 10010#define inf 999999999int pre[N];struct node { int x,deadline;}map[N];int cmp(const void *a,const void *b) { return (*(struct node *)b).x -(*
2013-11-27 21:41:36 513
原创 POJ 1988相对偏移
//不容易啊,终于自己a了一道这种类型的题99M 1 2M 2 4M 4 6M 3 5M 3 7M 1 7// ////////只要变成这种形式然后路径压缩就行了//#include#includeusing namespace std;const int N=30010;struct node {
2013-11-27 19:16:04 558
原创 poj 1986tarjan模板题
#include#includeusing namespace std;const int N=40010;int pre[N];//并查集int visit[N];//是否经过int ancestor[N];//祖先int dis[N];//储存距离int result[N];//储存结果struct tre{ int x,length;};vec
2013-11-26 22:58:02 455
原创 poj 1330lca模板题离线算法
#include#includeusing namespace std;const int MAX=10001;int pre[MAX],visit[MAX],indegree[MAX];vectorqury[MAX],tree[MAX];int ancestor[MAX];void init(int n) {//初始化 int i; for(i=1;i
2013-11-26 20:56:59 608
原创 poj1984并查集的相对偏移
#include//典型题#include#define N 40010struct node {int x,y,z;}pre[N];struct fff{int a,b,dis;char s[2];}map[N];//储存int find(int x) {if(x!=pre[x].z) {int h=pre[x].z;pre[x].z=fin
2013-11-25 16:09:56 574
原创 poj 1703
#include#include#define N 100010int father[N],link[N];int find(int x) { if(x!=father[x]) { int h=father[x]; father[x]=find(father[x]); link[x]=(link[x]+link[h])%2; } return fath
2013-11-24 22:27:56 501
原创 poj 1182用向量的思考模式
#include#include#define N 50010int father[N],link[N];int find(int x) { if(x!=father[x]) { int h=father[x]; father[x]=find(father[x]); link[x]=(link[x]+link[h])%3; } return fa
2013-11-24 18:20:14 588
原创 codeforces 361A
//这题看着吓人,为何这么水#includeint main() { int n,m,i,j; while(scanf("%d%d",&n,&m)!=EOF) { for(i=1;i for(j=1;j if(j==n) { if(i==j) printf("%d",m); else printf("0"
2013-11-22 15:27:36 1222
原创 hdu 1711
http://www.cppblog.com/oosky/archive/2006/07/06/9486.html#includeint a[10010],b[1000100],n,m,next[10010];void getnext() { int j=0,k=-1; next[0]=-1; while(j if(k==-1||a[j]==a[k]) {
2013-11-21 18:20:51 696
原创 codeforces 359A
#include#define N 60int map[N][N];int main() { int n,m,i,j,flag; while(scanf("%d%d",&n,&m)!=EOF) { flag=0; for(i=1;i for(j=1;j scanf("%d",&map[i][j]); if(map[i][j]&&(i==1
2013-11-21 11:59:41 857
原创 hdu 1027
#include#includeusing namespace std;int a[1100];int main() { int n,m,i; while(scanf("%d%d",&n,&m)!=EOF) { for(i=1;i a[i]=i; for(i=1;i next_permutation(a+1,a+n+1); printf("
2013-11-21 11:47:00 670
原创 codeforces 361B
#includeint a[100100];int main() {int n,i,k;while(scanf("%d%d",&n,&k)!=EOF) {if(k==n) {printf("-1\n");continue;}for(i=2;ia[i]=i;for(i=k+3;ia[i]=i-1;a[i-1]=i;}if(i-1==n) {
2013-11-20 21:43:29 801
原创 hdu 361B
#includeint a[100100];int main() {int n,i,k;while(scanf("%d%d",&n,&k)!=EOF) {if(k==n) {printf("-1\n");continue;}for(i=2;ia[i]=i;for(i=k+3;ia[i]=i-1;a[i-1]=i;}if(i-1==n) {
2013-11-20 21:42:44 651
转载 codeforces 362A找规律
刚开始以为是搜索白忙活了原来是个简单的找规律,以后要多想啊http://blog.csdn.net/firwaless/article/details/16342823#include#includeint main() {int m,i,j,t,startx,starty,endx,endy;char s[10][10];scanf("%d",&t);while(
2013-11-20 21:08:30 917
原创 codeforces 363A
#include//这题挺有意思小学学的算盘int main() {int n,i,m;while(scanf("%d",&n)!=EOF) {if(n==0) {printf("O-|-OOOO\n");continue;}while(n) {m=n%10;if(m>=5) {printf("-O|");m-=5;}elseprintf
2013-11-20 20:04:30 767
原创 codeforces 362B
#include#includeint cmp(const void *a,const void *b) {return *(int *)a-*(int *)b;}int main() { int n,m,i,a[3100],flag; while(scanf("%d%d",&n,&m)!=EOF) { for(i=0;i scanf("%d",&a[i])
2013-11-20 19:46:41 711
原创 hdu 1787
#include#includeint huzhi(int n) {//欧拉函数公式int i,j=n;for(i=2;iif(n%i==0) {j=j/i*(i-1);while(n%i==0)//保证i都是素数n/=i;}if(n>1)//当n为2时用到此步j=j/n*(n-1);return j;}int main() {int n
2013-11-20 15:31:03 739
原创 codeforces 363B
#include#include#define inf 999999999#define N 151000int a[N],b[N],c[N];int main() {int n,k,i,j,min,p;while(scanf("%d%d",&n,&k)!=EOF) {for(i=1;ib[i]=inf;memset(c,0,sizeof(c));for
2013-11-20 11:17:36 903
原创 codeforces365A
#include#include//刚做codeforces上的比赛题我都没看懂啊啊啊啊啊啊int main() {int n,m,i,k,visit[110],total;while(scanf("%d%d",&n,&m)!=EOF) {total=0;while(n--) {scanf("%d",&k);memset(visit,0,sizeof(visit))
2013-11-20 10:42:25 811
原创 codeforces365B
#includeint main() {int a,b,c,n,sum,max,i;while(scanf("%d",&n)!=EOF) {if(nscanf("%d",&a);printf("1\n");continue;}scanf("%d%d",&a,&b);sum=2;max=2;for(i=3;iscanf("%d",&c);if(c=
2013-11-20 10:32:36 768
原创 hdu 2642二维树状数组 单点更新区间查询 模板题
二维树状数组 单点更新区间查询 模板从零开始借鉴http://www.2cto.com/kf/201307/227488.html
2013-11-19 21:00:56 829
原创 hdu 1166 树状数组模板题
#include#include#define N 51000int c[N],n;int number(int x) {return x&-x;}void creat(int a,int x) {int i;for(i=a;ic[i]+=x;}int sum(int x) {int h=0,i;for(i=x;i>0;i-=number
2013-11-19 20:42:10 765
原创 zoj4710暴力
#include#include#define N 110int map[N][N];int main() {int n,m,k,i,j,u,v,t,s,total,flag,sum;scanf("%d",&t);while(t--) {total=0;scanf("%d%d%d",&n,&m,&k);memset(map,0,sizeof(map));
2013-11-19 15:29:06 1036
原创 hdu 4771好题
#include#include//通过只记录每一步此时点的状态。#includeusing namespace std;#define N 110int map[N][N][30];//一共最多16种状态,记录状态和此时已得到宝物的多少char ma[N][N];//读入struct node {int x,y,t,h;};int chu[N][N];//
2013-11-18 20:35:29 784
原创 codeforces 363B
#include#include#define N 200100char s[N];int main() {int i;while(scanf("%s",s)!=EOF) { if(strlen(s)printf("%s\n",s);continue;}printf("%c%c",s[0],s[1]);for(i=2;s[i];i++)
2013-11-18 17:33:30 773
原创 hdu 1075 字典树
#include#includestruct node {int num,i;node *a[27];char s[20];//定义局部不是空的node() {num=0;for(i=0;ia[i]=NULL;}}*root;char s2[20],str[20],str1[3100],s1[20],h[20];void insert(int l
2013-11-18 17:07:35 718
原创 hdu 4788
#include#includeint main() { int a,i,n,m=0; double d=1000; char s[30],ch; for(i=1;i10;i++) d/=2; int t; scanf("%d",&t); while(t--) { scanf("%s",s);
2013-11-18 13:03:26 890
原创 poj 2236
#include#include#include#define N 1100struct node { int x,y;}map[N];int s[N];int pre[N];int find(int n) { if(n!=pre[n]) pre[n]=find(pre[n]); return pre[n];}int main() { int n,m,i,
2013-11-18 13:01:30 753
原创 codeforces 330b
#include#include#include#define N 1100int map[N];int main() {int i,k,n,m,a,b;while(scanf("%d%d",&n,&m)!=EOF) {memset(map,0,sizeof(map));for(i=0;iscanf("%d%d",&a,&b);map[a]=1;map[
2013-11-17 22:24:36 698
原创 hdu 1251简单字典树
#include#include#includeusing namespace std;struct node {int num,i;node *a[27];node (){num=0;for(i=0;ia[i]=NULL;}}*root;char str[20];void insert(int len,node *root) {int
2013-11-17 16:41:04 696
原创 字典树
个人觉得这个模板比较好http://www.tuicool.com/articles/6Fv2Ej模仿这个模板我写的poj上的2001#include#include#includeusing namespace std;struct node {int num;node *a[27]; node () {int i;num=0;for
2013-11-17 16:18:00 697
原创 poj 2001
#include#include#includeusing namespace std;struct trie {trie *a[27];int v;}*h,*t;int len,k;char str[1100][30];void build(int count,trie *h) {int i,j;h->v++;if(count>len)retu
2013-11-17 15:37:28 716
原创 hdu 1075
#include#include#include#include#include#includeusing namespace std;mapmymap;int main() {int i,j,k,n,m;char s[4000],str[30],str2[30];string str1; scanf("%s",str);while(s
2013-11-14 10:29:41 559
原创 hdu 1698区间延迟更新
#include#define N 100100struct node {int x,y,yanchi;}a[N*4];//注意数组范围void build(int t,int x,int y) {a[t].x=x;a[t].y=y;a[t].yanchi=1;if(x==y)return ;int temp=tint mid=(x+y)/2;b
2013-11-13 20:22:38 677
原创 hdu 4325
#include//数据弱线段树延迟更新水过#define N 100100struct node {int x,y,yanchi,num;}a[N*4];void build(int t,int x,int y) {a[t].x=x;a[t].y=y;a[t].yanchi=0;a[t].num=0;if(x==y)return ;int temp
2013-11-13 19:55:30 655
原创 hdu 4325
//用二分查找,先找到x小于等于m的有几个数这些数有可能y大于u即为符合。//然后找这些数中y小于u的即为排除//相减即可#include#include#define N 100100struct node {int x,y;}a[N],b[N];int n;int cmp1(const void *a,const void *b) {//对x小到大排序
2013-11-13 19:08:03 791
原创 hdu 2181暴搜
#include#include#define N 30int map[N][4],total;void dfs(int n,int count,int end,int path[N],int h[N]) {int i;path[count]=n;//记录for(i=0;iif(map[n][i]==end&&count==19) {//如果下一个点就是起始点并且是
2013-11-13 15:06:38 720
原创 hdu 3342
#include#include#define N 200int map[N][N],n,m,indegree[N];int judge() { int k,i,j; for(k=0;kn;k++) { for(i=0;in;i++) { if(indegree[i])continue; indegree[i]
2013-11-11 19:02:01 544
原创 hdu 1285
#include#include#define N 600int map[N][N],indegree[N],n,m;void judge() {int k,i,j,flag=0;for(k=1;kfor(i=1;iif(indegree[i])continue;indegree[i]--;if(flag==0) {flag=1;printf("%d
2013-11-11 19:00:50 488
原创 hdu 1598
//暴力+并查集#include#include#define N 300#define inf 0x7fffffffstruct node {int x,y,spee;}map[N*4];int pre[N];int find(int n) {if(n!=pre[n])pre[n]=find(pre[n]);return pre[n];}i
2013-11-11 17:09:46 796
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人