zoukankan      html  css  js  c++  java
  • [360]笔试编程题

    大概意思是:选镇长,规则:所选之人不认识本镇其他人;本镇其他人都认识此人。

    输入

    第一行T,表示测试样例数;

    每个测试样例包含:

    第一行n和m,分别表示本镇人数(每个人分别用1到n的序号表示)和认识的关系数;

    接下来m行表示,人与人之间的认识关系(每行两个数Ai和Bi,表示Ai认识Bi,但不能具备Bi认识Ai的关系,Ai和Bi可能相同,表示自己认识自己)

    输出

    2T行,分别为T个测试样例的输出结果;

    每个测试样例包含两行:

    第一行表示此测试样例,镇长的可选人数;

    第二行表示所有可行人的序号。

    解题代码如下:

     1 #include <iostream>
     2 #define N 100000
     3 #define M 300000
     4 using namespace std;
     5 
     6 int AB[M][2];
     7 int can[N];
     8 
     9 int gao()
    10 {
    11     int T, n, m, i, j;
    12     //memset(AB, 0, sizeof(int)*M);
    13     cin >> T;
    14     while (T--)
    15     {
    16         cin >> n >> m;
    17         for (i = 0; i < m; i++)
    18         {
    19             cin >> AB[i][0] >> AB[i][1];
    20         }
    21         int can_cnt = 0;
    22         for (j = 0; j < n; j++)
    23         {
    24             bool rec_other = false;
    25             for (int k = 0; k < m; k++)
    26             {
    27                 if (AB[k][0] == k && AB[k][0] != AB[k][1])
    28                 {
    29                     rec_other = true;
    30                     break;
    31                 }
    32             }
    33             if (rec_other)
    34                 continue;
    35             int be_rec_peo_cnt = 0;
    36             for (int l = 0; l < m; l++)
    37             {
    38                 if (AB[l][1] == j && AB[l][0] != AB[l][1])
    39                     be_rec_peo_cnt++;
    40             }
    41             if (be_rec_peo_cnt == n - 1)
    42             {
    43                 can[can_cnt++] = j;
    44             }
    45         }
    46         cout << can_cnt << endl;
    47         if (can_cnt == 0)
    48             cout << endl;
    49         else
    50         {
    51             int x;
    52             for (x = 0; x < can_cnt - 1; x++)
    53                 cout << can[x] << " ";
    54             cout << can[x] << endl;
    55         }
    56     }
    57     return 0;
    58 }
    59 int main()
    60 {
    61     gao();
    62     return 0;
    63 }
    View Code
  • 相关阅读:
    log记录日志使用说明
    浅谈WebService开发三(动态调用WebService)转
    浅谈WebService开发二(同步与异步调用)转
    浅谈WebService开发(一)转
    Log4net使用(二)
    Log4net使用(一)
    创建DSN
    Oracle的substr函数简单用法(转)
    医院里的CR、DR、CT、磁共振、B超都是什么?
    lambda表达式(2)
  • 原文地址:https://www.cnblogs.com/hbiner/p/4722463.html
Copyright © 2011-2022 走看看