時間限制: 1 sec 記憶體限制: 128 mb
提交: 387 解決: 66
[提交] [狀態] [討論版] [命題人:admin]
題目描述
同學們應該學會多交一些好朋友。朋友關係是相互的,a 是 b 的好朋友,則 b 也是 a 的好朋友。朋友關係是不傳遞的,a 是 b 的好朋友,b 是 c 的好朋友,但 a 和 c 不一定是好朋友。現在給出某小學部分同學之間的朋友關係,請程式設計統計朋友最多的人有多少個好朋友。
輸入輸入共m+1行。
第1行是兩個整數n和m,分別表示同學總人數和朋友關係對數。
第2行到第m+1行,描述了m對朋友關係。每行兩個用單個空格隔開的同學姓名。
每個人的姓名僅由小寫字母組成,且1≤姓名的長度≤10。
輸出輸出共 1 行。
乙個整數,表示朋友最多的人有多少個好朋友。
樣例輸入
4 3
lucy lily
jam lily
jam peter
樣例輸出
2
提示
4個人,3對朋友關係。lucy只有乙個朋友lily;jam有兩個朋友lily和peter;lily有兩個朋友lucy和jam;
peter只有乙個朋友jam。
所以lily和jam朋友最多,都是2個。
50%以上的測試點輸入資料保證朋友關係沒有重複。
100%的測試點輸入資料保證2≤n≤100,1≤m≤1000,且沒有自己跟自己的朋友關係。
[提交][狀態]
題解:注意資料會存在 兩組相同的資料 例如 lucy lily 和 lily lucy
將名字轉化成數字,然後建立成乙個 cnt*cnt的矩陣,掃一遍求最大值
重點是如何將字串轉化成數字,並且把重複出現的去掉
#includeconst int mod=998244353;
typedef long long ll;
using namespace std;
int cnt;
char ss[1005][105];
int n,m;
char s1[105],s2[105];
int f[1005][1005];
int pos(char x)
int main()
//printf("%d",cnt);
int cntt;
int ans=0;
/*for(int i=1; i題解:
開兩個map 乙個vis存關係,另乙個cnt記錄數量,最後遍歷一遍cnt即可
用vis將重複的情況去掉
用 stl 瞎搞一下
map::iterator iter; 迭代
for (iter = cnt.begin(); iter != cnt.end(); iter++)//遍歷map
iter->first 第一維
iter->second 第二維
#includeconst int mod=998244353;
typedef long long ll;
using namespace std;
map::iterator iter;
mapcnt;
map>vis;
string s1,s2;
int main()
}int ans=0;
for(auto p:cnt)//for (iter = cnt.begin(); iter != cnt.end(); iter++)
cout
}
PAT L1 020 帥到沒朋友 集合set瞎搞
當芸芸眾生忙著在朋友圈中發 的時候,總有一些人因為太帥而沒有朋友。本題就要求你找出那些帥到沒有朋友的人。輸入格式 輸入第一行給出乙個正整數n 100 是已知朋友圈的個數 隨後n行,每行首先給出乙個正整數k 1000 為朋友圈中的人數,然後列出乙個朋友圈內的所有人 為方便起見,每人對應乙個id號,為5...
瞎搞 Lucas定理證明
求證cn m i 0kc nimi modp 其中m ki 0mip i n ki 0nip i p是質數。首先,我們知道,n0 nmodp,m 0 mmodp 那麼原式相當於求證cn m c np mp cnmodp mmod pmodp 這樣就可以歸納一發證明整個定理了。首先我們知道,對於任意的...
UPCOJ 5344 被子 瞎搞
作為乙隻明媚的兔子,需要學會疊被子 被子是方形的,上面有很多小寫字母.可以認為被子是乙個n m的字元矩陣 被子能夠被疊起來,當且僅當每一行,每一列都是回文串.兔子可以把同一條被子上任意兩個位置的字母交換位置,而且兔子不嫌麻煩,為了把被子疊起來它願意交換任意多次.但是兔子不能交換兩條不同的被子之間的字...