ACM練習之《奧運火炬到福州》

         恩,好吧,今天開始寫博客作爲學習筆記。。。(第一篇博客啊這可是大笑

    說下起因吧,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;
}


另:留下此圖以作紀念 - -。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章