15校赛

1.
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;

int main()
{
    char a[60];
    char b[60];
    int score;

    while(scanf("%s",a)!=EOF){
        if (!strcmp(a,"END"))
            return 0;
            scanf("%s",b);
            cin>>score;

            int flag1=0,flag2=0;
            for(int i=0;i<40;i++){
                if(a[i]=='X')
                    flag1++;
                if(a[i]==b[i]){
                    flag2++;
                }
            }
                if(flag1==0&&score==flag2)
                    cout<<"Absolute"<<endl;
                else if(flag1&&(flag2<=score&&score<=(flag1+flag2)))
                    cout<<"Possible"<<endl;
                    else
                        cout<<"Wrong"<<endl;

    }
}

2.

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int ans;
int change(int k){
    ans=1; ???
    while(k){
    ans=ans*(k%10);
    k=k/10;
    }
     return ans;
}
int main()
{
    int n;
    while(cin>>n&&n){
        while(n>9){
            cout<<n<<" ";
        n = change(n);}
        cout<<n<<endl;
    }


    }


#include <iostream>
#include <cstdio>

using namespace std;
int T;
double a,b;
double num[15];
double cal(int x,double y){
       double tmp = 1;
       for(int i=0;i<=x;i++)
        tmp=tmp*y;
        return tmp;
       }
int main()
{


    while(cin>>T){
            if(T==-1)
            return 0;

    for(int i=0;i<=T;i++){
        cin>>num[i];
    }
    scanf("%lf%lf",&a,&b);
    for(int i=0;i<=T;i++){
        num[i]=num[i]*(1/(double(i+1)));
    }
    double up = 0;
    double down = 0;

    for(int i=0;i<=T;i++){
    up+=num[i]*cal(i,b);
    down+=num[i]*cal(i,a);
    }
    printf("%.2lf
",up-down);

}
return 0;
}








#include <iostream>
#include <cstdio>

using namespace std;
float num[15];
float cal(int x,float y){
       float tmp = 1;
       for(int i=0;i<=x;i++)
        tmp=tmp*y;
        return tmp;
       }
int main()
{   float a,b;
    int T;

    while(cin>>T){
            if(T==-1)
            return 0;

    for(int i=0;i<=T;i++){
        cin>>num[i];
    }
    scanf("%lf%lf",&a,&b);
    for(int i=0;i<=T;i++){
        num[i]=num[i]*(1/(float(i+1)));
    }
    float up = 0;
    float down = 0;

    for(int i=0;i<=T;i++){
    up+=num[i]*cal(i,b);
    down+=num[i]*cal(i,a);
    }
    printf("%.2lf
",up-down);

}
return 0;
}






4.
    #include <iostream>
    #include<cstring>
    #include<cstdio>

    using namespace std;

    void change(int x){
           switch(x){
           case 15:
               printf("F");
               break;
            case 14:
               printf("E");
               break;
            case 13:
               printf("D");
               break;
            case 12:
               printf("C");
               break;
            case 11:
               printf("B");
               break;
            case 10:
               printf("A");
               break;
            default:
                printf("%d",x);

    }}
    int main(){
        int n,l1,l2,i,j,k;
        char s1[1005],s2[1005];

    while(scanf("%d",&n)!=EOF){
        int a[1100]={0};
        int b[1100]={0};
        scanf("%s%s",s1,s2);
        l1 = strlen(s1);
        l2 = strlen(s2);
        if(l1>=l2)
        k=l1;
        else
        k=l2;

      for(i=k,j=l1-1;j>=0;i--,j--){
        if(s1[j]<='9'&&s1[j]>='0')
            a[i] = s1[j]-'0';
        else if(s1[j]<='F'&&s1[j]>='A')
            a[i]=s1[j]-'A'+10;
        else if(s1[j]<='f'&&s1[j]>='a')
            a[i]=s1[j]-'a'+10;
      }

      for(i=k,j=l2-1;j>=0;i--,j--){
        if(s2[j]<='9'&&s2[j]>='0')
            b[i] = s2[j]-'0';
        else if(s2[j]<='F'&&s2[j]>='A')
            b[i] = s2[j]-'A'+10;
        else if(s2[j]<='f'&&s2[j]>='a')
            b[i] = s2[j]-'a'+10;}

      for(i=k;i>0;i--){
        a[i]+=b[i];
        if(a[i]>n-1){
            a[i]-=n;
            a[i-1]++;}
      }
       if (a[0]==0)  i=1;
          else i=0;
      int flag=1;
       for (i;i<=k;i++){
        if(flag&&a[i]==0)
                    continue;
                else{
          change(a[i]);
       flag = 0;}
       }
       if(flag)
                cout<<"0";
            cout<<endl;
            cout<<endl;

        }

        return 0;
    }





#include <iostream>

using namespace std;

int main()
{
	int T;
   cin>>T;
   for(int i = 1;i<=T;i++){
    int n;
    cin>>n;
    int ans = 0;
    ans=n/2-2;
    cout<<"Case #"<<i<<":"<<ans<<endl;
   }

   }

5.WA的
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
#define INF 0x3f3f3f3f
const int N=1005;

int a[N],dp[N][N];
int vis[N];

int main()
{

    int cas=1;
    int n;
    while(scanf("%d",&n)!=EOF)
    {

        for(int i=1; i<=n; i++)
            scanf("%d",&a[i]);
              for(int i=0;i<N;i++)
            for(int j=0;j<N;j++)
            dp[i][j]=-INF;
        for(int i=1;i<=n;i++)
            dp[i][i]=a[i];

        dp[n-1][n]=max(a[n-1],a[n]);
        for(int i=n-2;i>=0;i--)
        {
            for(int j=i+1;j<=n;j++)
                dp[i][j]=max(dp[i][j-1],max(dp[i+1][j],dp[i+2][j]+a[i]));
        }
        printf("Case #%d: %d
",cas++,max(dp[1][n-1],dp[2][n]));

    }
    return 0;
}

AC:

#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
#define INF 0x3f3f3f3f
const int N=1005;

int a[N],dp[N][N];
int vis[N];

int main()
{

    int cas=1;
    int n;
    while(scanf("%d",&n)!=EOF)
    {

        for(int i=1; i<=n; i++)
            scanf("%d",&a[i]);
              for(int i=0;i<N;i++)
            for(int j=0;j<N;j++)
            dp[i][j]=-INF;
        for(int i=1;i<=n;i++)
            dp[i][i]=a[i];

        dp[n-1][n]=max(a[n-1],a[n]);
        for(int i=n-2;i>=0;i--)
        {
            for(int j=i+1;j<=n;j++)
                dp[i][j]=max(dp[i][j-1],max(dp[i+1][j],dp[i+2][j]+a[i]));
        }
        printf("Case #%d: %d
",cas++,max(dp[1][n-1],dp[2][n]));

    }
    return 0;
}


原文地址:https://www.cnblogs.com/zhangmingzhao/p/7256462.html