2016年8月15日 星期一

北二區101-4王者之路(C++版)


參考程式碼 :
#include <iostream>
#include <cstring>
#include <map>

using namespace std;
const int MaxN = 20; //最多 20 個
map<string , int> mp;  //姓名,編號 :編號為 1 ~ n
int mpcnt;
int los[MaxN+1]; 
string nam[MaxN+1];
int main(void)
{
   int t , n , r , i;
   string a,b;
   cin >> t;
   while( t-- )
   {
      mpcnt = 0;  mp.clear();
      cin >> n >> r;
      for(i=1; i<=n; ++i) los[i] = 0;
      for(i=0; i<r; ++i)
      {
 cin >> a >> b;
 if( mp.find(a) == mp.end() ) mp[a] = ++mpcnt; // 沒出現過,給編號,加入
 int ai = mp[a]; nam[ai] = a;
 if( mp.find(b) == mp.end() ) mp[b] = ++mpcnt; // 沒出現過,給編號,加入
 int bi = mp[b]; nam[bi] = b;
 los[bi] = 1;  //輸過一場就是 1
      }
   // 因為 王者 會贏其他所有的人,不會輸, 印出唯一沒輸過的
      for(i=1; i<=n; ++i) if( los[i] == 0 ) cout << nam[i] << endl;
   }
   return 0;
}
/* 範例輸入
3
3 3
tpa azf
tpa abc
azf abc
5 11
tpa azf
azf abc
tpa abc
abc xyz
tpa abcde
xyz abc
azf abcde
azf xyz
abc azf
tpa xyz
azf abcde
5 12
mmm bbb
bbb ccc
mmm ccc
ddd mmm
mmm eee
ddd ccc
ddd bbb
bbb mmm
ddd eee
bbb eee
mmm bbb
bbb ccc
--------範例輸出
tpa
tpa
ddd

*/

Related Posts:

  • OX連線(C++) 程式碼: /* nr100-1_OX 北二區 100年-1 OX連線 */ #include <iostream> #include <sstream> #include <cstring> #include <vector> #inclu… Read More
  • C129 油田數(c++)// c129 有幾處油田,另加印最大處的數量 #include <iostream> using namespace std; int di[]={-1,1,0,0,-1,1,-1,1}; //上,下,左,右,左上,左下,右上,右下 int dj[]={0,0,-1,1,-1,-1,1… Read More
  • DFS應用-1 DFS應用-1: (A)有幾處水窪?上下左右算連通 (B)最大一處有多大{1個數數}?  (C,D)改成類似踩地雷(八方)算連通 0 1 2 3 4 5 6 0 1 2 … Read More
  • dfs-1 (C++參考)/* dfs-1 A,B 水窪數及最大窪值 */ #include <iostream> using namespace std; const int MaxN = 100; int a[MaxN][MaxN] , m, n; int dr[]={-1,1,0,0};  /… Read More
  • 北二區101-3小精靈吃數字/* a820-y6m8 北二區101年第3題:小精靈吃數字 第一列 X格,Y列(沒明確說明,假設10x10),第二列至第(Y+1)列皆有(X)個數{且-9<=*<=9},第(Y+2)列為起點(SX,SY)及方向1右上2左上3左下4右下  反彈三次後,即第4次不反彈離開,問經過… Read More

0 意見:

張貼留言