Zerojudge b454:請輸出這張圖片的RGB數值

Zerojudge b454請輸出這張圖片的RGB數值

題目大意:給你一張黑白的照片(共 $4096$ 像素),請你輸出全部像素的 $\text{RGB}$。

解法:我的作法是把圖片下載後,轉成 $\text{bmp}$ 檔,然後下載 $\text{UltraEdit}$,打開圖片,就會發現一件很奇怪的事情,它的像素行數顛倒了(第一行到最後一行),所以要寫程式把它反過來。然後可以發現,黑白照片 $\text{RGB}$ 是相同的,所以只須存一個數,輸出三次就好了。因為這題是黑白的,程式碼較小,所以不需特別壓縮,用 $16$ 進位就好了。

$\text{Code:}$

#pragma GCC optimize("O3")
#include <iostream>
using namespace std;

string str = "999794...i don't know";

int main() {
    ios::sync_with_stdio (false), cin.tie (0);
    cout << "64 64\n";
    int now = 0;
    for (int i = 0; i < 64; i++) {
        for (int j = 0; j < 64; j++) {
            int num;
            if (str[now] >= '0' && str[now] <= '9')
                num = str[now] - '0';
            else
                num = str[now] - 'A' + 10;
            num *= 16, now++;
            if (str[now] >= '0' && str[now] <= '9')
                num += str[now] - '0';
            else
                num += str[now] - 'A' + 10;
            now++;
            cout << num << ' ' << num << ' ' << num << (j == 63 ? '\n' : ' ');
        }
    }
}

我的分享就到這裡結束了,如果喜歡我的 $\text{Blog}$,歡迎追蹤!


留言

熱門文章