群赛53

很久没做群赛...秀逗了.

A水:

#include<stdio.h>
#include<string.h>
int main(){
    char a[33];
    int counter;
    while(~scanf("%s",a)){
        if(a[0]=='#') break;
        counter=0;
        int len=strlen(a);
        for(int i=0;i<len;i++){
            if(a[i]=='1') counter++;
        }
        if(counter%2==0){
            if(a[len-1]=='e') a[len-1]='0';
            if(a[len-1]=='o') a[len-1]='1';
        }
        else {
            if(a[len-1]=='e') a[len-1]='1';
            if(a[len-1]=='o') a[len-1]='0';
        }
        printf("%s\n",a);
    }
}

B是阅读题T_T:

#include<stdio.h>
#include<math.h>
typedef struct
{
    double x,y;
}node;
node s,t,ans;
double dis(node a,node b)
{
    return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
}
int main()
{
    int i,I=1,d;
    double r,du;
   while( scanf("%lf",&r)!=EOF)
   {
    scanf("%lf%lf",&s.x,&s.y);
    if(r==0&&s.x==0&&s.y==0)break;
    i=1;
    d=0;
    while(scanf("%lf%lf",&t.x,&t.y)!=EOF)
    {
        if(t.x==-1&&t.y==-1)break;
        du=dis(s,t);
        if(du<=r+1&&0==d)
        {
            ans=t;
            d=1;
        }
        s.x+=(t.x-s.x)*(r/du);
        s.y+=(t.y-s.y)*(r/du);
        i++;
    }
    printf("Firefly %d ",I++);
    if(0==d)printf("not caught\n");
    else printf("caught at (%.0lf,%.0lf)\n",ans.x,ans.y);
   }
   return 0;
}

CDEFG没看

因为H一直PE,,,字符串的题目太恶心了...

后来看了一个大神的代码,,,大赞...

贴下:

using namespace std;
char decode[]=" ABCDEFGHIJKLMNOPQRSTUVWXYZ',-.?";
int main(){
    int spaces=0;
    int bits=0;
    int code=0;
    char c;
    while((c=getchar())!='#'){
    if(c==' ') ++spaces;
    else{
    if(spaces>0){
    code=(code<<1)+1-(spaces&1);//当space为为偶数时,与上1变成0,+1,当space为奇数时与上1为1,+0
    spaces=0;
    if(++bits==5){
    cout<<decode[code];
    code=bits=0;}
    }
    if(c=='*'){
     if(bits>0){
     cout<<decode[code<<(5-bits)];
     code=bits=0;}
     cout<<endl;}}}
     return 0;
}

I题好难,一开始还YY线段树,然后又觉得背包-.-结果到最后也没人做出

J题签到题:

#include<stdio.h>
int main(){
    int a,b;
    while(~scanf("%d%d",&a,&b)){
        printf("%d %d\n",b-1,a-1);
    }
    return 0;
}



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值