(~解题报告~)L1-020 帅到没朋友 (20分)——25行代码AC
立志用更少的代碼做更高效的表達
當蕓蕓眾生忙著在朋友圈中發照片的時候,總有一些人因為太帥而沒有朋友。本題就要求你找出那些帥到沒有朋友的人。
輸入格式:
輸入第一行給出一個正整數N(≤100),是已知朋友圈的個數;隨后N行,每行首先給出一個正整數K(≤1000),為朋友圈中的人數,然后列出一個朋友圈內的所有人——為方便起見,每人對應一個ID號,為5位數字(從00000到99999),ID間以空格分隔;之后給出一個正整數M(≤10000),為待查詢的人數;隨后一行中列出M個待查詢的ID,以空格分隔。
注意:沒有朋友的人可以是根本沒安裝“朋友圈”,也可以是只有自己一個人在朋友圈的人。雖然有個別自戀狂會自己把自己反復加進朋友圈,但題目保證所有K超過1的朋友圈里都至少有2個不同的人。
輸出格式:
按輸入的順序輸出那些帥到沒朋友的人。ID間用1個空格分隔,行的首尾不得有多余空格。如果沒有人太帥,則輸出No one is handsome。
注意:同一個人可以被查詢多次,但只輸出一次。
輸入樣例1:
3
3 11111 22222 55555
2 33333 44444
4 55555 66666 99999 77777
8
55555 44444 10000 88888 22222 11111 23333 88888
輸出樣例1:
10000 88888 23333
輸入樣例2:
3
3 11111 22222 55555
2 33333 44444
4 55555 66666 99999 77777
4
55555 44444 22222 11111
輸出樣例2:
No one is handsome
問題分析
一道普普通通的模擬題, 模擬題的答題技巧: 認真讀題!認真讀題!認真讀題!
思路: 定義一個大數組, 若輸入朋友圈中朋友的數量不為1,則將這些數都置1, 其余置0, 遍歷時,若某數值為1,則輸出其下角標即可。
注意:最后輸出時要用%05d的方式輸出前導0
代碼展示
#include<iostream> using namespace std; int a[100005]; int main() {int num,n,x; cin>>num;while(num--) { //輸入,對應數組的值置1 cin>>n;if(n==1) { cin>>x; n=0; }while(n--) {cin>>x;a[x] = 1;}}bool flag = false;int k; cin>>k; while(k--) { //遍歷,若為1則輸出下角標 cin>>x;if(a[x] == 0) {a[x] = 1; //防止輸出兩遍 if(!flag) flag = true; //最后一個數后面沒有空格 else cout << ' ';printf("%05d", x); }}if(flag == false) cout << "No one is handsome"; return 0; }每日一句
務須咬牙勵志,蓄其氣而漲其志。切不可公然自餒也。
總結
以上是生活随笔為你收集整理的(~解题报告~)L1-020 帅到没朋友 (20分)——25行代码AC的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (~解题报告~)L1-019 谁先倒 (
- 下一篇: 9行代码AC——L1-022 奇偶分家(