2011年5月23日星期一

  2011 北邮计算机复试 机试代码

A 题比较简单 分割字符串 然后倒序输出 就行

B 模拟 按题意模拟

#include 
 
  #include 
  
   #include <
   string.h> 
   const 
   int N = 1000 + 3;
   //题目说了 最多 1000
   int stu[N];
   void init(){    
   for(
   int i = 0 ; i < N; i ++)        stu[i] = -1;}
   int main(){    
   int T,n;    
   int i,a,b;    
   char str[20];    scanf(
   "%d",&T);        
   while(T--)    {        scanf(
   "%d",&n);        
   for(i = 0 ; i < n ; i ++)        {            scanf(
   "%s",str);            
   if(strcmp(str,
   "Insert") == 0)            {                scanf(
   "%d%d",&a,&b);                stu[a] = b;
   //学号a 的学生 分数为b            }            
   else            {                scanf(
   "%d",&a);                
   if(stu[a] == -1) 
   //如果不存在                    printf(
   "No result!\n");                
   else                     printf(
   "name:%d score:%d\n",a,stu[a]);            }        }    }    
   return 0;}
  
 

#include 
 
  #include 
  
   #include <
   string.h>
   const 
   int MAX = 200;
   struct node{    
   int size;    
   int child[20];};
   struct node tree[MAX];
   int M,N,L;
   double re;
   void init(){    
   for(
   int i = 0 ; i < MAX ; i ++)    {        tree[i].size = 0;        memset(tree[i].child,-0x1,
   sizeof(
   int)*20);    }}
   void cal(
   int p ,
   double f ){    
   if(p == L)     {        re = f;        
   return ;    }    
   for(
   int i = 0 ; i < tree[p].size ; i++)        cal(tree[p].child[i] , f /(tree[p].size*1.0) );}
   int main(){    
   int i,a,b;    scanf(
   "%d%d%d",&M,&N,&L);        
   for(i = 0 ; i < N ; i ++)    {        scanf(
   "%d%d",&a,&b);        tree[a].child[tree[a].size++] = b;            }    re = 0.0;    cal(0,1.0);    printf(
   "%.6lf\n",re);}
  
 

D 当时 我没有做出来 ,现在也因为登入不了OJ 也不好做,不过我会尽快贴出代码

如果谁做出了 可以留言 或者 联系我 fuxiang90@gamil.com

没有评论:

发表评论