iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 8
0
自我挑戰組

CPE 一星精選全攻略系列 第 8

Day8 # UVa 12019 & UVa 10038

UVa 12019 - Doom's Day Algorithm

題目連結

題目說明

給你 2011 年的某月某日,輸出星期幾。

做法

先算出這是 2011 年中的第幾天,然後去 mod 7 再加上校準的參數就可以找到了。

#include <bits/stdc++.h>

using namespace std;

int main() {
    int kase;
    cin >> kase;
    string Day[]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
    int Month[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    while (kase--) {
        int m, d;
        cin >> m >> d;
        int days=0;
        for(int i=0;i<m;i++)
            days+=Month[i];
        int w=(days+d+5)%7;
        cout<<Day[w]<<endl;
    }
    return 0;
}

UVa- 10038 - Jolly Jumpers

題目連結

題目說明

有一直種序列稱為 jolly jumper
假設有 n 個整數的序列,其相鄰兩數的差取絕對值剛好為 1 到 n-1,我們就將其稱為 jolly jumper

做法

如果相鄰兩數的差取絕對值大於 n 或等於 0 ,就必定不會是 jolly jumper ,且因為要是 1 到 n-1 ,所以每個數字只能出現過一次,將判斷寫上去就是答案了。

#include <bits/stdc++.h>

using namespace std;

int main() {
    int n;
    while (cin >> n) {
        vector<int> nums(n);
        vector<bool> count(n, 0);
        bool k = 1;
        for (auto& i : nums)
            cin >> i;
        for (int i = 1; i < nums.size(); i++) {
            int temp = abs(nums[i] - nums[i - 1]);
            if (temp > n || temp == 0 || count[temp]) {
                k = 0;
                break;
            }
            count[temp] = 1;
        }

        if (k)
            cout << "Jolly\n";
        else
            cout << "Not jolly\n";
    }
    return 0;
}

上一篇
Day7 #UVa 490 & UVa 272
下一篇
Day9 #UVa 10056 & UVa 10170
系列文
CPE 一星精選全攻略9
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言