UVA 1103 象形符號

2021-08-03 16:36:47 字數 1021 閱讀 2389

此題是十六進製制轉為二進位制+dfs,通過搜尋影象中有幾個被隔絕的白「洞」來判斷是哪個文字。這裡考慮乙個問題,影象最外面的白色空間怎麼辦?想到先提前把影象外層的白色空間搜尋完畢,從而搜尋時只會考慮被包在中間的白色。但是如果黑色佔據了邊緣,隔絕了外層的白色呢?所以在這裡我在整個影象的外面再加一層白色,從而使整個影象的外部白色連成一起。輸出時,由於按照字典序輸出,可以考慮使用vector,每次判斷出乙個文字時加入,最後在輸出前呼叫一次sort()即可。

**如下:

#include

#include

#include

#include

#include

#include

using

namespace

std;

const

int maxn = 205;

char dict[16][5] = ;

char alpha = ;

int a[maxn][maxn];

int n, m;

int dirx = , diry = ;

int cur;

bool isin(int r, int c)

void dfs1(int r, int c)

void dfs2(int r, int c)

else

if (a[dr][dc] == 1)

dfs2(dr, dc);

}}int main()

}m = 4 * m;

dfs1(0, 0);

for (int i = 1; i <= n; i++)}}

sort(v.begin(), v.end());

printf("case %d: ", kase);

for (int i = 0; i < v.size(); i++)

cout

<< v[i];

cout

<< endl;

}return

0;}

UVa 232 字串處理

背景 做了三個半小時,能力堪憂啊,各種除錯,各種出錯,要分析一下,這些錯點盡量不能再錯。學習 1.對於字串陣列,要把每一行都開大一位,該位用來存放 0 否則將會出現未知輸出。也就是說 字串二維陣列的每一行都可以看做乙個字元陣列,結尾都有乙個 0 printf在用 s 格式符輸出字串,總是從給定的首位...

uva11552 字串重排

字串從左到右每k個為一組 保證字串長度是k的倍數 組內字串可以任意移動位置,組間順序不能變換。求變換後最少的塊數。塊的定義 連續相等的字串為乙個快 每一組為乙個單位,因此dp時需要加入組作為一維,又發現計算加入新組後塊的增量,需要知道上一組中最後乙個字元是什麼,因此狀態設計為 dp i j 前i組中...

uva8183(字串處理)

bool vow char ch 是否是母音 void solve vector vec,char ss 將每句話分解為單詞,緊跟在單詞後的標點符號和單詞合併 int judge string s 返回乙個單詞的音節數 if flag s i y s i y 注意y的處理,如果此處的y符合此條件,後...