CCF 201909 3 字元畫(學習IO)

2021-10-02 10:20:59 字數 1668 閱讀 7765

本題的思路不算難,但是需要快速完成需要對c++的io庫比較熟悉。

/* 列印字元c對應的《轉移字元》 */

void out_char(char c)

'\x45'    轉義字元,表示ascii碼為0x45的字元
/* 16進製制string 轉 10進製int */

int hex2int(const string &str)

// 二維vector的初始化

vector> picture;

picture.assign(n, vector(m, pixel(0, 0, 0)));

#include #include #include #include #include #include using namespace std;

/* 畫素型別 */

struct pixel

bool operator==(const pixel &a) };

int m, n, p, q;

vector> picture; // 整幅

pixel last_pixel(0, 0, 0); // 上次的背景色

pixel default_pixel(0, 0, 0); // 預設的背景色

/* 列印字元c對應的《轉移字元》 */

void out_char(char c)

/* 列印《設定背景色為rgb的命令》對應的《轉義序列》 */

void set_bg(int r, int g, int b)

/* 列印《重置背景色》對應的《轉義序列》 */

void set_default()

/* 16進製制string 轉 10進製int */

int hex2int(const string &str)

result = digit[0] * 16 + digit[1];

return result;

}/* 解析html畫素字串 */

void set_color(pixel &pixel, const string &color)

// 設定畫素值

pixel.r = hex2int(r);

pixel.g = hex2int(g);

pixel.b = hex2int(b);

}int main()

} for (int i = 0; i < n / q; ++i)

}cur_pixel.r /= p * q;

cur_pixel.g /= p * q;

cur_pixel.b /= p * q;

// 如果和上一次的畫素值不一樣

if (!(cur_pixel == last_pixel))

out_char(' ');

} // 行尾判斷是否需要重置

if (!(last_pixel == default_pixel))

set_default();

last_pixel = default_pixel;

out_char('\n');

} return 0;

}

CCF認證201909 3字元畫

201909 3字元畫 吐槽一下 題目極其複雜,做的時候看了十幾分鐘題目愣是沒看懂,去網上看了其他同學做的一些blog,還是沒看懂。然後對著感謝鏈結裡的同學的 梳理了一下,才明白題目要幹嘛,由於個人原因,只能在visual c 6.0裡操作,所以很多c 11的函式不能用,但也正是不能用,對於早期的人...

CCF 2014 9 3 字串匹配

試題編號 201409 3 試題名稱 字串匹配 時間限制 1.0s 記憶體限制 256.0mb 問題描述 問題描述 給出乙個字串和多行文字,在這些文字中找到字串出現的那些行。你的程式還需支援大小寫敏感選項 當選項開啟時,表示同乙個字母的大寫和小寫看作不同的字元 當選項關閉時,表示同乙個字母的大寫和小...

CCF認證201409 3 字串匹配

問題描述 試題編號 201409 3 試題名稱 字串匹配 時間限制 1.0s 記憶體限制 256.0mb 問題描述 問題描述 給出乙個字串和多行文字,在這些文字中找到字串出現的那些行。你的程式還需支援大小寫敏感選項 當選項開啟時,表示同乙個字母的大寫和小寫看作不同的字元 當選項關閉時,表示同乙個字母...