随笔分类 -  EOJ

摘要:题意:给出编译规则,求是否满足条件 A:= '(' B')'|'x'.B:=AC.C:={'+'A}.其中{}表示里面的内容可以出现0次或者多次注意点见代码注释 1 #include 2 #include 3 #include 4 const int maxn = 205; 5 6 int... 阅读全文
posted @ 2014-09-11 23:15 xxx0624 阅读(228) 评论(0) 推荐(0) 编辑
摘要:题意: 有一个连通器,由两个漏斗组成(关于漏斗的描述见描述)。 现向漏斗中注入一定量的水,问最终水的绝对位置(即y轴坐标)思路: 总体来说分为3种情况。 1.两个漏斗可能同时装有水。 2.只可能a漏斗有水。 3.只可能b漏斗有水。 于是可以二分枚举y的坐标。 关键在于对于某个y坐标来... 阅读全文
posted @ 2014-05-31 19:04 xxx0624 阅读(447) 评论(0) 推荐(0) 编辑
摘要:题意:从起点到终点有几条特殊路径。特殊路径指的是:对于任意两条路径,他们的与起点相连的点是不同的点 && 与终点的相连的点是不同的点。 1 /* 2 题意:从起点到终点有几条特殊路径。 3 特殊路径指的是:对于任意两条路径,他们的与起点相连的点是不同的点 && 与终点的相连的点是不同的点。 4 思路: 5 把起点和后继节点的流量设置为1,同理对终点处理 6 这样在寻找最大流的增广路径时就会消除一条。。 7 */ 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 us. 阅读全文
posted @ 2013-10-20 19:46 xxx0624 阅读(238) 评论(0) 推荐(0) 编辑
摘要:简单的BFS题意:多起点多终点 1 /* 2 简单的BFS 3 题意:多起点多终点 4 */ 5 #include 6 #include 7 #include 8 #include 9 #include10 using namespace std;11 12 const int maxn = 184;13 const int inf = 0x3f3f3f3f;14 15 int dis[ maxn ][ maxn ];16 char mat[ maxn ][ maxn ];17 const int dx[]={0,0,1,-1};18 const int dy[]={1,-1,0,0};1.. 阅读全文
posted @ 2013-10-20 17:25 xxx0624 阅读(304) 评论(0) 推荐(0) 编辑
摘要:#include<stdio.h>#include<string.h>const int maxn = 12;//the size of the mazeint a[ maxn ][ maxn ];const int dx[]={0,1,0,-1};const int dy[]={1,0,-1,0};bool inside( int x,int y,int n ){ if( x>=0&&x<n&&y>=0&&y<n ) return true; else return false;}int main 阅读全文
posted @ 2013-03-25 23:18 xxx0624 阅读(206) 评论(0) 推荐(0) 编辑
摘要:题意:给定数组a,b。求数组b在a中第一次出现的位置。KMPView Code 1 #include<stdio.h> 2 #include<string.h> 3 const int maxn = 20001; 4 int a[ maxn ],b[ maxn ]; 5 int n,m; 6 7 int next[ maxn ]; 8 void get_next(){ 9 int j,k;10 next[ 0 ]=-1;11 j=0,k=-1;//b[j]为目标串 b[k]为模式串12 while( j<m ){13 if( k==-1||b... 阅读全文
posted @ 2013-02-02 10:52 xxx0624 阅读(178) 评论(0) 推荐(0) 编辑
摘要:View Code 1 #include 2 #include 3 #include 4 using namespace std; 5 const int maxn = 305; 6 int dp[ maxn ][ maxn ]; 7 char a[ maxn ],b[ maxn ]; 8 int same( int i,int j ){ 9 if( a[ i ]==b[ j ] ) return 1;10 return 0;11 }12 int fmax( int i,int j,int k ){13 if( i<j )i=j;14 if( i<k )i=k... 阅读全文
posted @ 2012-12-27 21:33 xxx0624 阅读(173) 评论(0) 推荐(0) 编辑
摘要:附代码View Code 1 /* 2 无向图的联通分量 3 dfs 4 */ 5 #include<stdio.h> 6 #include<string.h> 7 const int maxn =30 ; 8 int map[ maxn ][ maxn ]; 9 int vis[ maxn ];10 int max;11 void dfs( int now ){12 //vis[ now ]=1;13 for( int i=1;i<=max;i++ ){14 if( map[ now ][ i ]==0||map[ i ][ now ]==0 ) conti.. 阅读全文
posted @ 2012-12-17 00:18 xxx0624 阅读(185) 评论(0) 推荐(0) 编辑
摘要:(先对数字排序,再对字符排序)View Code 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 struct g{ 5 char name[32]; 6 int sum; 7 }gl[305]; 8 int cmp2( const void *a ,const void *b) 9 { 10 return (*(struct g *)b).sum > (*(struct g *)a).sum ? 1 : -1; 11 }12 int main()13 {14 int i, 阅读全文
posted @ 2012-05-01 18:39 xxx0624 阅读(236) 评论(0) 推荐(0) 编辑
摘要:View Code 1 #include<stdio.h> 2 #include<string.h> 3 __int64 p[1000005]; 4 void ff() 5 { 6 __int64 i,j,sum; 7 memset(p,-1,sizeof(p)); 8 p[1]=1; 9 p[2]=2;10 for(i=3;i<=1000000;i++)11 {12 j=i;13 sum=0;14 while(1){15 if(j%2 == 0)16 ... 阅读全文
posted @ 2012-05-01 00:10 xxx0624 阅读(199) 评论(0) 推荐(0) 编辑
摘要:View Code 1 #include<stdio.h> 2 int main() 3 { 4 int m,y,d,sum; 5 scanf("%d%d%d",&y,&m,&d); 6 if((y%4==0&&y%100!=0)||(y%400==0))//闰年 7 { 8 if(m==1) 9 sum=d;10 else11 if(m==2)12 sum=31+d;13 else14 if(... 阅读全文
posted @ 2012-04-29 17:04 xxx0624 阅读(186) 评论(0) 推荐(0) 编辑
摘要:View Code 1 #include 2 #include 3 int a[5005]; 4 int sum[5005];//用来记录以a[i]结尾之前的最大上升子序列 5 int main() 6 { 7 int i,j,num=-1,tpmax,t,n,max; 8 scanf("%d",&t); 9 while(t--)10 {11 num++;12 scanf("%d",&n);13 for(i=1;ia[j]&&(tpmaxa[j]用来判断前者比后者大;tpmax<sum[j]是用来判断能否把a[j.. 阅读全文
posted @ 2012-04-28 23:57 xxx0624 阅读(251) 评论(0) 推荐(0) 编辑
摘要:View Code 1 #include<stdio.h> 2 int a[105]; 3 int main() 4 { 5 int t,i,j,n,max,thismax;//,num=0;//p1,p2; 6 scanf("%d",&t); 7 while(t--) 8 { 9 scanf("%d",&n);10 //num++;11 //p1=1;p2=1;12 for(i=0;i<n;i++)13 scanf("%d",&a[i]);14 max=a... 阅读全文
posted @ 2012-04-27 16:16 xxx0624 阅读(224) 评论(0) 推荐(0) 编辑
摘要:View Code 1 #include<stdio.h> 2 int wi[3420]={0},di[3420]={0},val[40000]={0};//di表示价值也就是各个物体的重量.val为目标。 3 int fmax(int i,int j) 4 { 5 if(i>j)return i; 6 else return j; 7 8 } 9 int main()10 {11 int max,n,i,j;12 scanf("%d%d",&n,&max);13 getchar();14 for(i=1;i<=n;i++)15 .. 阅读全文
posted @ 2012-04-26 23:51 xxx0624 阅读(193) 评论(0) 推荐(0) 编辑
摘要:1 #include<stdio.h> 2 #include<string.h> 3 const int dx[]={0,0,1,-1,-1,-1,1,1}; 4 const int dy[]={1,-1,0,0,-1,1,-1,1};//走的方向 5 char map[1005][100]; 6 int dfs(int x,int y) 7 { 8 int i,j,k,tp,ddx,ddy; 9 if(map[x][y]=='.')10 return 0;//11 map[x][y]='.';//表示遍历过了12 tp=1;13 fo. 阅读全文
posted @ 2012-04-26 23:23 xxx0624 阅读(241) 评论(0) 推荐(0) 编辑
摘要:View Code 1 #include<stdio.h> 2 #include<string.h> 3 const int dx[]={0,0,1,-1}; 4 const int dy[]={1,-1,0,0};//走的方向 5 char map[1005][100]; 6 int max,hang,lie; 7 int fmax(int p,int q) 8 { 9 if(p>q)10 return p;11 else12 return q;13 }14 int dfs(int i,int j)15 {16 int ddx,ddy,k,tp;17 map[i 阅读全文
posted @ 2012-04-26 23:03 xxx0624 阅读(186) 评论(0) 推荐(0) 编辑