2013/11/30 _ UESTC _ ACM趣味赛总结

今天受在UESTC深造的某OI神牛在UESTC的好基友秋秋同学邀请,参加了UESTC“第五届ACM趣味程序设计竞赛第一场”。


比赛三个小时,说好只有五道题,打来一看八道!

再定睛一看,第一题竟然是人民的好朋友A+B Problem。果断AC之。


这次比赛有校队参加,再加上又是非原创题,才开始几分钟就各种AC满天飞了……鸭梨山大,还是先找道水题慢慢做吧。

看上了一道英文题The Heroes(UESTC 1148),大意是给几个基因序列,然后判断输入的几个字符串里有没有。

本来以为不算太难,写起来却十分纠结。最后代码修修补补,逻辑非常混乱,连我自己都看不懂了,提交两次,勉强AC。


#include<stdio.h>
#include<string.h>
int main()
{
    int n,i,a,j,k,t,m;
    scanf("%d",&n);
    char gene[n][100];
    for(i=0;i<n;i++)
        scanf("%s",gene[i]);
    scanf("%d",&a);
    for(i=0;i<a;i++)
    {
        int flag;
        char people[100];
        scanf("%s",people);
        for(j=0;j<n;j++)
        {
            for(m=0;m<strlen(people);m++)
            {
                k=m;flag=0;
                while(people[k]!=gene[j][0])
                    k++;
                if(k<strlen(people)-2)
                {
                    for(t=1,flag=1;t<strlen(gene[j]);t++)
                        if(people[k+t]!=gene[j][t])
                            flag=0;
                }
                if(flag)
                    break;
            }
            if(flag)
                break;
        }
        if(flag)
            printf("A new hero discovered\n");else
            printf("Just an ordinary person\n");
    }
    return 0;
}

//写的时候 strlen(people) 愣是被我错写成 people.length() 了啊!!同时学习两门语言是多么可怕!!!!


过了之后有了点信心,可以好好做下面的了。

选了另一道水题,懒惰的妹纸(UESTC 1608)。这个潜下心来慢慢分析情况很好写的。

写的很顺,一遍AC。


#include<stdio.h>
int main()
{
    int n,i;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        long a,b,t,t1;
        double ans=1;
        scanf("%ld %ld %ld %ld",&a,&b,&t,&t1);
        if(t1<a || t1>b+t)
            ans=0;
        else
        {
            if(a+t>=b)
            {
                if(t1>=b && t1<=a+t)
                    ans=1;else
                if(t1<b)
                    ans=(double)(t1-a)/(b-a);else
                    ans=(double)(b+t-t1)/(b-a);
            }else
            {
                if(t1<=a+t)
                    ans=(double)(t1-a)/(b-a);else
                if(t1>a+t && t1<b)
                    ans=(double)t/(b-a);else
                    ans=(double)(b-(t1-t))/(b-a);
            }
        }
        printf("%.4f\n",ans);
    }
    return 0;
}


不知不觉3题了,再来一题我就心满意足了。

选了三国杀(UESTC 1366)。处理输入费了半天事。

最后始终没有AC,不是WA就是RE。还在排查原因,搞定了再贴code吧。


最终3题,排名15。


/*

比完了感觉很累很累……联系了秋秋同学,立马迎来了让人惨不忍视的吐槽 = = 他的三国杀悲剧的在17:02AC……他下午悲剧的拉肚子……更操蛋的,UESTC的图书馆下午着火了……尽管是烟雾报警器的误报,他还是英勇的冲过去拿回了自己的书包。一馆的人都被轰出来,在图书馆里做题的很多都悲剧了。

同时他还热情邀请我参加下周第二场的比赛。介个,咱下周再说吧=。=


吃饭去!晚上吉他课!一堆高数等着刷!学算法!Java作业!…………

…………嗯,明天早起。

*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值