您的位置:首页 > 其它

15校赛

2016-05-12 13:17 274 查看
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\n",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\n",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
,dp

;
int vis
;

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]
=max(a[n-1],a
);
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\n",cas++,max(dp[1][n-1],dp[2]
));

}
return 0;
}


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

int a
,dp

;
int vis
;

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]
=max(a[n-1],a
);
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\n",cas++,max(dp[1][n-1],dp[2]
));

}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: