CCF認證201909 3字元畫

2021-10-02 22:01:23 字數 2353 閱讀 5917

201909-3字元畫

吐槽一下

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

演算法設計+題目分析

1、 題目裡說的什麼字元畫根本就不用管,這就是乙個最低階的影象壓縮的思想,就是對一塊內的rgb三個通道求平均值;

2、所有的輸出前都要有/x;

3、空格、換行、esc都需要用ascii十六進製制輸出;

4、算出一塊的rgb平均值後,若不等於上一塊的rgb且不等於初始值(全零),則用ascii輸出這個背景色的命令;若不等於上一塊的rgb但等於初始值(全零),輸出reset重置的ascii;

5、每塊後輸出乙個空格,每一行輸出乙個換行符;

5、每一行輸出換行符之前,要判斷當前的rgb與start(全零)是否相同,不同要輸出重置的ascii。

幾個核心點

1、輸入的rgb三通道為16進製制字串,需先轉為10進製整型;

2、輸出時注意\x轉義符和按照16進製制輸出

1. struct初始化的時候不可賦值

2. 在早期c++編譯器(visual c++6.0)中如何整數轉換成字串

#include

#include

using

namespace std;

intmain()

3. 單引號和雙引號的區別

在c中單引號實際上是乙個整數值(ascii),'a』和"a"是兩個不同的,'a』的長度是1,"a"的長度是2

4. 如何輸出16進製制的ascii

printf

("\\x%02x"

, s[i]

)

\x的第乙個右斜槓為轉義符,%02x為輸出16進製制數,且少於2位時,補0

環境

visual c++6.0

#include

#include

#include

#include

#include

using

namespace std;

struct node

;const

int maxn=

2000

;node image[maxn]

[maxn]

;//矩陣

intx16_to_10

(string s)

void

output

(string s, node cur)

else

printf

("\\x%02x"

, s[i]);

}}void

output2

(string s)

}int

main()

} node last, start;

last.r=last.g=last.b=start.r=start.g=start.b=0;

for(

int ii=

0; iicur.r /

=p*q;

//求平均

cur.g /

=p*q;

cur.b /

=p*q;

if(cur.r!=last.r || cur.g!=last.g || cur.b!=last.b)

last.r=cur.r;

//更新last的狀態為cur

last.g=cur.g;

last.b=cur.b;

printf

("\\x%02x"

,' ');

}if(last.r!=start.r || last.g!=start.g || last.b!=start.b)

output2

(reset)

;//每一行後如果不一樣,就重置

last.r=start.r;

last.g=start.g;

last.b=start.b;

printf

("\\x%02x"

,'\n');

//輸出換行符

}return0;

}

非常感謝這位同學的**,大家可以去看看,思路一樣的.

CCF 201909 3 字元畫(學習IO)

本題的思路不算難,但是需要快速完成需要對c 的io庫比較熟悉。列印字元c對應的 轉移字元 void out char char c x45 轉義字元,表示ascii碼為0x45的字元 16進製制string 轉 10進製int int hex2int const string str 二維vecto...

CCF認證201409 3 字串匹配

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

CCF 2014 9 3 字串匹配

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