有一張圖上,有黑塊和白塊,白塊上有字母
從上到下每一行,從左到右,給符合條件的白塊依次編號,條件是:此白塊的左邊或上邊是邊界或黑塊
要求找到每一行的單詞(按上面編好的號排序)和每一列的單詞輸出,單詞即為最大連續的白塊
只要單純地模擬即可,注意最後的輸出要按編號排序,且編號要右對齊,這裡編號不會超過100;
找每列的單詞時用乙個標記陣列,也是每一行地遍歷即可
#include
#include
#include
using
namespace
std;
const
int maxn = 1e1 +5;
#define met(a,b) memset(a, b, sizeof(a));
int n, m;
char s[maxn][maxn];
int maps[maxn][maxn];
int id;
void set(int i, int j)
}int main()
}for(int i = 0; i < n; ++i)
}if(line) printf("\n");
if(!line) line = 1;
printf("puzzle #%d:\nacross\n", ++kase);
for(int i = 0; i < n; ++i)
printf("\n");
}else ++j;}}
printf("down\n");
bool vis[maxn][maxn]; met(vis, 0);
for(int i = 0; i < n; ++i)
printf("\n");
}else ++j;}}
}return
0;}
算典03 習題 07
給出一組dna序列 即一些字串 找出與每個dna序列的差最小的dna序列 差的意思是序列中位置相同但字元不同的位置的個數 輸出這個dna序列以及最小的差 1.準備 這裡有乙個小技巧,dna只有 atcg 四種,要統計這四種出現的次數,就需要一種對應關係,如讓atcg分別對應0123,那麼我就可能用a...
算典03 習題 12
這題我不會做,參考的大神的思路 傳送門浮點數在計算機裡是分三部分表示的 最前面一位表示符號,後面一部分是尾數,最後一部分是階碼 尾數是m,階碼是e的話表示起來就是 m 2e 1 2 m 1 用二進位制表示m的話就應該是0.1xx 用計算機表示的時候就把最前面的 0.1 給省略掉,只表示可能變化的部分...
算典04 習題 08
課堂上有n個學生 n 10 每個學生都有乙個 睡眠 清醒 週期,其中第i個學生醒ai 分鐘後睡bi 分鐘,然後重複 1 ai bi 5 初始時第i個學生處在他的週期的第ci 分鐘。每個學生在臨睡前會察看全班睡覺人數是否嚴格大於清醒人數,只有這個條件滿足時才睡覺,否則就堅持聽課ai 分鐘後再次檢查這個...