本題的思路不算難,但是需要快速完成需要對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 問題描述 問題描述 給出乙個字串和多行文字,在這些文字中找到字串出現的那些行。你的程式還需支援大小寫敏感選項 當選項開啟時,表示同乙個字母的大寫和小寫看作不同的字元 當選項關閉時,表示同乙個字母...