08 2012 档案
摘要:#include<stdio.h>#include<stdlib.h>int cmp( const void *a , const void *b ) { return *(double *)a > *(double *)b ? 1 : -1; }int main(){ int t,i,j,n,v,ansv,tpcnt; double s,ansp,tp; double a[110]; scanf("%d",&t); while(t--){ scanf("%d%d%lf",&n,&v,&s);
阅读全文
摘要:View Code 1 #include<cstdio> 2 #include<cstdlib> 3 #include<cstring> 4 #include<iostream> 5 #include<queue> 6 #include<algorithm> 7 #define N 55 8 int map[N][N][N]; 9 int a,b,c,maxt,ans;10 int fmin(int i,int j){11 return i>j?j:i;12 }13 using namespace std;14 st
阅读全文
摘要:#include<stdio.h>#include<string.h>#include<stdlib.h>#define N 1005int map[N][N];int vis[N][N];int n,ans,now_k;const int dx[]={0,0,-1,1};const int dy[]={-1,1,0,0};void dfs(int sx,int sy){ int i,tx,ty; if(ans==n){ return ; } for(i=0;i<4;i++){ tx=sx+dx[i]; ty=sy+dy[i]; if(tx<1|
阅读全文
摘要:#include<stdio.h>#include<stdlib.h>#include<math.h>struct g{ double l,r;}point[1005];int cmp(const void *a,const void *b){ return (*(struct g *)a).l>(*(struct g *)b).l?1:-1;}int main(){ int i,n,tcase=1,ans; double a,b; bool flag; double dis,temp; scanf("%d%lf",&n,&
阅读全文
摘要:#include<stdio.h>#include<string.h>#include<stdlib.h>struct tree{ int lev; struct tree*next[26];};tree root;char str[12];void creat_tree(char *str){ int i,j,len,id; len=strlen(str); tree *p=&root,*temp; for(i=0;i<len;i++){ id=str[i]-'a'; if(p->next[id]==NULL){ tem
阅读全文
摘要:题目意译:有n个人围在桌子前面喝茶,等大家都坐定后,必然有个前后左右顺序,比如:a左边b,b左边c,依次类推,最后一个假设是g,那么他左边必然是a。形成一个圆环。现在有个规则,规定每次只能相邻两个人进行交换位置。请问要经过多少次交换,才能让之前位置交换(b左边a,c左边b,a左边是g)思路:大家都清楚假定是一排的情况下:a b c d e f g如果位置交换后:g f e d c b a需要经过n*(n-1)/2次交换(冒泡法进行交换)现在情况是环形,试问能不能将环拆分成两个线性,然后进行交换,再拼接在一起。举例如下:a b c d e f g(g后面又是a)如果分成a b c,d e f g
阅读全文
摘要:#include<stdio.h>int main(){ int dp1[30005],dp2[30005],a[30005]; int n,j,i,k,max; scanf("%d",&n); for(i=1;i<=n;i++) scanf("%d",&a[i]); if(a[1]==1) dp1[1]=1; else dp1[1]=0; for(i=2;i<=n;i++){ if(a[i]==1) dp1[i]=dp1[i-1]+1; else dp1[i]=dp1[i-1]; } if(a[n]==2) dp
阅读全文