zoukankan      html  css  js  c++  java
  • What Kind of Friends Are You? ZOJ

    怎么说呢。。。我能说我又过了一道水题?

    emm。。。

    问题描述:

    给定 n 个待确定名字的 Friends 和 q 个问题。已知 c 个 Friends 的名字。

    对于第 i 个问题,有  个 Friends 会回答 yes ,其余  个 Friends 均回答 no 。

    现在给定 n 个待确定名字的 Friends 以及他们对于 q 个问题的回答。若能够确定它的名字,给出;否则,输出 Let's Go to the library!!

    思路:

    对于回答yes的,在当前人结果上加1,而回答no时就把该friend里面的名字之外的名字加1,最后如果某个人的计数为friend的个数,就有可能是这个人,但是如果好几个符合条件的肯定就不能确定了!

    #include <iostream>
    #include <cstdio>
    #include <sstream>
    #include <cstring>
    #include <map>
    #include <cctype>
    #include <set>
    #include <vector>
    #include <stack>
    #include <queue>
    #include <algorithm>
    #include <cmath>
    #include <bitset>
    #define rap(i, a, n) for(int i=a; i<=n; i++)
    #define rep(i, a, n) for(int i=a; i<n; i++)
    #define lap(i, a, n) for(int i=n; i>=a; i--)
    #define lep(i, a, n) for(int i=n; i>a; i--)
    #define rd(a) scanf("%d", &a)
    #define rlld(a) scanf("%lld", &a)
    #define rc(a) scanf("%c", &a)
    #define rs(a) scanf("%s", a)
    #define MOD 2018
    #define LL long long
    #define ULL unsigned long long
    #define Pair pair<int, int>
    #define mem(a, b) memset(a, b, sizeof(a))
    #define _  ios_base::sync_with_stdio(0),cin.tie(0)
    //freopen("1.txt", "r", stdin);
    using namespace std;
    const int maxn = 10010, INF = 0x7fffffff;
    map<string, int> mapp;
    int tlb[25][210];
    int res[maxn];
    string str;
    string num[maxn];
    
    int main()
    {
        int T;
        int n, m, c;
        rd(T);
        while(T--)
        {
            mem(tlb, 0);
            scanf("%d%d%d", &n, &m, &c);
            rap(i, 1, c)
            {
               cin>> num[i];
               mapp[num[i]]  = i;
            }
            rap(i, 1, m)
            {
                int q;
                rd(q);
                rap(j, 1, q)
                {
                    cin>> str;
                    tlb[i][mapp[str]] = 1;
                }
            }
            int tmp;
            rap(i, 1, n)
            {
                mem(res, 0);
                rap(j, 1, m)
                {
                    rd(tmp);
                    tmp = tmp?1:-1;
                    rap(k, 1, c)
                        if(tlb[j][k])
                            res[k] += tmp;
                    if(tmp == -1)
                        rap(k, 1, c)
                            res[k]++;
                }
                int flag = 0, id = 0;
                rap(j, 1, c)
                {
                //    cout<< res[j] <<endl;
                    if(res[j] == m && flag)
                    {
                        flag++;
                        break;
                    }
                    if(res[j] == m) flag++, id = j;
                }
    
                if(flag == 1) cout<< num[id] <<endl;
                else cout<< "Let's go to the library!!" <<endl;
    
            }
    
        }
    
        return 0;
    }
    自己选择的路,跪着也要走完。朋友们,虽然这个世界日益浮躁起来,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其它人怎么样,我们也能够保持自己的本色走下去。
  • 相关阅读:
    C语言第三次博客作业---单层循环结构
    C语言第二次博客作业---分支结构
    C语言第一次博客作业
    第0次作业
    第09组 Beta冲刺(1/5)
    第09组 Alpha事后诸葛亮
    第09组 Alpha冲刺(6/6)
    第09组 Alpha冲刺(5/6)
    第09组 Alpha冲刺(4/6)
    第09组 Alpha冲刺(3/6)
  • 原文地址:https://www.cnblogs.com/WTSRUVF/p/9519232.html
Copyright © 2011-2022 走看看