首页 > 代码库 > ACdream 速攻组~

ACdream 速攻组~

1008

 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

1125

 1 /* 2 题意:找到最长的连续A的个数n,然后输出n+1个A 3 思路:暴力。 4 */ 5 #include<cstdio> 6 #include<cstring> 7 #include<iostream> 8 using namespace std; 9 int main()10 {11  char s[1001];12  int i,j,k,l,t;13  int sum,max;14  cin>>t;15  getchar();16  while(t--)17  {18    sum=max=0;19    gets(s);20    for(i=0;i<strlen(s);i++)21    {22      if(s[i]==A)23      { sum=1;24       25      for(j=i+1;j<strlen(s);j++)26      {27        if(s[i]==s[j])28          sum++;29        if(sum>max)30        max=sum;31        if(s[i]!=s[j])32        {33          sum=1;34          break;35        }36      }37      }38    }39    for(i=0;i<=max;i++)40      printf("A");41    printf("\n");42  }43  return 0;44 }
View Code

 

ACdream 速攻组~