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