洛谷 1013 進製位

2021-09-20 03:29:20 字數 1409 閱讀 6906

題目描述

著名科學家盧斯為了檢查學生對進製的理解,他給出了如下的一張加法表,表中的字母代表數字。 例如:

+

++ l k v e

l l k v e

k k v e kl

v v e kl kk

e e kl kk kv

其含義為:

l+l=l,l+k=k,l+v=v,l+e=e

k+l=k,k+k=v,k+v=e,k+e=kl

…… e+e=kv

根據這些規則可推導出:l=0,k=1,v=2,e=3

同時可以確定該錶表示的是4進製加法

輸入輸出格式

輸入格式:

n (n≤9)表示行數。

以下n行,每行包括n個字串,每個字串間用空格隔開。(字串僅有乙個為『+』號,其它都由大寫字母組成)

輸出格式:

① 各個字母表示什麼數,格式如:l=0,k=1,……按給出的字母順序。

② 加法運算是幾進製的。

③ 若不可能組成加法表,則應輸出「error!」

輸入輸出樣例

輸入樣例#1:5+

++ l k v e

l l k v e

k k v e kl

v v e kl kk

e e kl kk kv

輸出樣例#1:

l=0 k=1 v=2 e=3

4

解釋:首先題意感覺不清,可以自己向簡單裡想,那樣很明顯就是n-1進製了,然後又n ≤

\le≤ 9,那麼統計每行加法結果長度大於1的個數就行可,(觀察可發現這個規律),最後還要驗證一下這樣是不是正確,就ok啦

#include #include#include#includeusing namespace std;

mapg;

int n=0;

string str[12][12];

int s[12][12]=;

int t=0;

int num[12]=;

int main()

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

for(int i=2;i<=n;i++)

bool mark=1;

char q[2];

q[1]='\0';

for(int i=2;i<=n;i++)

if(ret!=s[i][1]+s[1][j]) mark=0;}}

if(!mark)

for(int i=2;i<=n;i++)

cout

}

洛谷 P1013 進製位

題目描述 著名科學家盧斯為了檢查學生對進製的理解,他給出了如下的一張加法表,表中的字母代表數字。例如 l k v e l l k v e k k v e kl v v e kl kk e e kl kk kv 其含義為 l l l,l k k,l v v,l e e k l k,k k v,k v ...

洛谷 P1013 進製位 搜尋 進製運算

著名科學家盧斯為了檢查學生對進製的理解,他給出了如下的一張加法表,表中的字母代表數字。例如 l k v e l l k v e k k v e kl v v e kl kk e e kl kk kv其含義為 l l l,l k k,l v v,l e e k l k,k k v,k v e,k e ...

洛谷NOIP刷題 P1013 進製位

題目描述 著名科學家盧斯為了檢查學生對進製的理解,他給出了如下的一張加法表,表中的字母代表數字。例如 l l ll l l,l k kl k k,l v vl v v,l e el e e k l kk l k,k k vk k v,k v ek v e,k e klk e kl e e kve e...