ACdream

1000 A + B Problem

1 #include<stdio.h>
2 int main()
3 {   int a,b;
4     while(~scanf("%d%d",&a,&b))
5         printf("%d\n",a+b);
6     return 0;
7 }
View Code

1001 整数交换

1 void SwapInt(int *a,int *b)
2 {    int temp;
3     temp=*a;
4     *a=*b;
5     *b=temp;
6 }
View Code

1008 A Very Easy Triangle Counting Game

 1 /*题意:在圆上取n个点,相邻两个点之间连线,(注意,n和1相邻),然后所有点对(i ,i+2)相连,问能形成的不同的三角形有多少个?
 2 
 3 思路:画图找规律,发现n=3,cnt=1;  n=4,cnt=8; n=5 cnt=35  (5*2+5*2+ 5+5+5); n=6 cnt= 32 (6*2+6*2+ 6+2);
 4 
 5         n=7,cnt=35(7*2+7*2+7); n=8, cnt=40(8*2+8*2+8) 发现后面项演变成多边形了!
 6 
 7      于是得到规律:n>6;cnt=5*n
 8 */
 9 #include <stdio.h>  
10     int a[7]={0,0,0,1,8,35,32};  
11     int main()  
12     {  
13         int T,n,ans;  
14         scanf("%d",&T);  
15         for(int i=1;i<=T;i++)  
16         {  
17             scanf("%d",&n);  
18             ans=n>6?(5*n):a[n];  
19             printf("Case #%d: %d\n",i,ans%20121111);  
20         }  
21         return 0;  
22     }
View Code

1013 Count It!

 1 #include<stdio.h>
 2 #include<string.h>
 3 int main()
 4 {
 5     int n, i;
 6     while (scanf("%d", &n) != EOF){
 7         char h[1001];
 8         scanf("%s", h);
 9         int l = strlen(h), num = 0;
10         for (i = 0; i < l; i++)
11             if (h[i] == 'L')
12                 num++;
13     printf("%d %d\n", num + n - l, num);
14 
15     }
16     return 0;
17 }
View Code

1020 The Game about KILL

解法1:

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

解法2:

 1 /*
 2 约瑟夫环,n太大,首先可以想到打表找看有没有规律
 3 
 4 可以发现是有规律的
 5 
 6 可以看到,只要是2的i次幂,那么存活的是1,后面的依次加2
 7 
 8 例如4为1,5就是3,6->5,7->7,8->1,9->3,10->5,11->7
 9 */
10     #include <stdio.h>  
11     #include <string.h>  
12     #include <algorithm>  
13     using namespace std;  
14     #define ll long long  
15     ll f[50],n;  
16        
17     int main()  
18     {  
19         int i;  
20         f[0] = 1;  
21         for(i = 1; i<31; i++)  
22             f[i] = f[i-1]*2;  
23         while(~scanf("%lld",&n))  
24         {  
25             for(i = 1; i<31; i++)  
26             {  
27                 if(n<f[i])  
28                     break;  
29             }  
30             printf("%lld\n",1+2*(n-f[i-1]));  
31         }  
32        
33         return 0;  
34     }
View Code
posted @ 2015-03-30 09:52  夏弥  阅读(522)  评论(0编辑  收藏  举报