变色之战!

题目链接:http://codeforces.com/contest/270

题目A:给出一个角度,问其能否是正多边形的内角

解题思路:打表

解题代码:

View Code
#include<stdio.h>
int main()
{
   int k ,j = 1,temp ;
   double temp1;
  int  a[2000];
   for (k =  3; k < 20000;k++)
   {  temp1 =  (k-2)*180.0/k;
      temp = temp1;
      if (temp1 == temp)
      {   a[j++] = temp;
       
      }
   }
   int n ,i, s; 
   scanf("%d",&n);
   for (i = 1; i <= n; i++)
   {
   scanf("%d",&s);
    int t; 
     for (t = 1; t < j ; t++)
         if (s ==a[t])
         {
             printf("YES\n");
             break;
;        }
     if (t == j)
         printf("NO\n");
   }
   return  0;
}

题目B:给定一列时刻表,找最少更新时刻表数

解题思路:找最后一个大于下一个数的数

解题代码:

View Code
 1 #include<stdio.h>
 2 int main()
 3 {
 4  int n  , i , t = 0,temp; 
 5  scanf("%d",&n);
 6  for (i =1 ;i <= n ;i++)
 7  {
 8     int s ;
 9     scanf("%d",&s);
10 
11     if ( i > 1 && s < temp)
12         t = i -1;   
13     temp = s;
14  }
15  printf("%d\n",t);
16 
17    return  0;
18 }

题目C:给定盒子,问最小能装下所有盒子的大小

解题思路:与面积挂钩!

解题代码:

View Code
 1 #include<stdio.h>
 2 #include <math.h>
 3 int main()
 4 {
 5  int n ,i ,tempk, tempa, k , a ; 
 6  scanf("%d",&n);
 7  scanf("%d %d",&k,&a);
 8  tempk = k ;
 9  tempa = a;
10  for(i = 2;i <= n; i++)
11  { 
12     scanf("%d %d",&k,&a);
13     if (k - tempk >= 18 ||pow(4.0,k-tempk)*a >= tempa )
14         {
15         tempk = k;
16          tempa = a ;
17        }
18  }
19  for (i = 1; ; i++)
20      if(pow(4.0,i) >= tempa)
21       {      printf("%d",tempk+i);
22  
23           break;
24  }
25  return 0 ;
26 }

 

posted on 2013-02-04 21:37  dark_dream  阅读(172)  评论(0编辑  收藏  举报