ACM练习之《奥运火炬到福州》

来源:互联网 发布:算法与程序的关系 编辑:程序博客网 时间:2024/04/30 04:33

         恩,好吧,今天开始写博客作为学习笔记。。。(第一篇博客啊这可是大笑

    说下起因吧,5月7号一个学长突然打来一个电话让我参加一个安徽省的编程比赛,虽然知道自己很菜但不好意思拒绝学长就当免费出去玩两天啦,哈哈。直到几天后,我才直到这次比赛是要组队的。。。完了,要坑队友 - -。5.11号,接到一个陌生来电,额,原来是队友找上来了。。。经过一番了解……“卧槽,学长你怎么给我找了两个神级队友?”“额,不用紧张,以后我给你找些题做吧”

     就这样,从12号晚上开始我就开始在RQNOJ上找质量为“3星”的题开始做……

     第一道题《PID200/奥运火炬到福州》。

    看到题目给我的第一感觉是和之前没事的时候在hdoj上做的题目差不多啊,应该没什么难度。就开开心心的敲起代码……第一天晚上没多少时间,没做完,就留到了周二的物理课上,没多久便搞定,还模拟了下一题:《PID328/自然地谜语》 , 和去年做过的一道题差不多,用char型数组模拟完。后来突然想到用string类应该更简单啊,无奈string类的东西基本已经忘光,还是等回宿舍复习一下再试。

     回宿舍后赶快过去提交第一题,满怀信心……不过却看到WA60.。百度一下WA是WrongAnswer的缩写。常见的错误原因是数据类型开的不够大导致溢出,然后不得不复习一遍各种整数类型和其长度 - -, 据说double可避免大多数溢出,于是改,提交,错。。。然后将动态数组改成常规数组(因为之前做一道题还自学了二维动态数组,看了别人的答案发现都不用的,毕竟数组容易出问题,后来学长告诉我竞赛题都开最大数组)结果还是WA60。改了几个小时,依旧……终于在翻了好久的题目讨论之后才发现有输入 0 的情况我没考虑 - -。坑啊。再改了会,终于AC了 。。。

代码如下:

/*******************************************************RQNOJ_PID328/自然地谜语*******************************************************/#include <iostream>#include <cmath>using namespace std;int main(){    int  n , m , i ;    double tili1[18511] , tili2[18511] , A , B , C , D ;    bool renshu , average , fangcha;    while(cin >> n >> m )    {        if( n==0 && m != 0)        {            cout << "can't" << endl;            continue;        }        else if(m==0)        {            cout << "can" << endl;            continue;        }        A = B = C = D = 0;        renshu = average = fangcha = false;        for (i = 0 ; i < n ; i++)            cin >> tili1[i];        for (i = 0 ; i < m ; i++)            cin >> tili2[i];        if(n > m)            renshu = true;        for (i = 0 ; i < n ; i++)            A += tili1[i];        for (i = 0 ; i < m ; i++)            B += tili2[i];        A /= n;        B /= m;        if (A > B)            average = true;        for (i = 0 ; i < n ; i++)            C += pow((A-tili1[i]),2);        for (i = 0 ; i < m ; i++)            D += pow((B-tili2[i]),2);        C /= n;        D /= m;        if (C < D)            fangcha = true;        if(renshu && average && fangcha)            cout << "can" << endl;        else            cout << "can't" << endl;    }    return 0;}


另:留下此图以作纪念 - -。


0 0
原创粉丝点击