zoukankan      html  css  js  c++  java
  • PAT1090 危险品装箱 (25分) ——值得留意的map用法(int型与vector型的关联)

    1090 危险品装箱 (25分)
     

    集装箱运输货物时,我们必须特别小心,不能把不相容的货物装在一只箱子里。比如氧化剂绝对不能跟易燃液体同箱,否则很容易造成爆炸。

    本题给定一张不相容物品的清单,需要你检查每一张集装箱货品清单,判断它们是否能装在同一只箱子里。

    输入格式:

    输入第一行给出两个正整数:N (≤) 是成对的不相容物品的对数;M (≤) 是集装箱货品清单的单数。

    随后数据分两大块给出。第一块有 N 行,每行给出一对不相容的物品。第二块有 M 行,每行给出一箱货物的清单,格式如下:

    K G[1] G[2] ... G[K]
    
     

    其中 K (≤) 是物品件数,G[i] 是物品的编号。简单起见,每件物品用一个 5 位数的编号代表。两个数字之间用空格分隔。

    输出格式:

    对每箱货物清单,判断是否可以安全运输。如果没有不相容物品,则在一行中输出 Yes,否则输出 No

    输入样例:

    6 3
    20001 20002
    20003 20004
    20005 20006
    20003 20001
    20005 20004
    20004 20006
    4 00001 20004 00002 20003
    5 98823 20002 20003 20006 10010
    3 12345 67890 23333
    
     

    输出样例:

    No
    Yes
    Yes

    分析:

    这里我们可以由题目知道,每一行的不能共存的危险品并不只是两两对应(这就与之前那道单身狗的题目有所区别了),虽然是每行一对的出现,但仔细审题会发现并非如此。所以用到容器vector与int用map进行关联。

    #include <iostream>
    #include <algorithm>
    #include<vector>
    #include<list> 
    #include <map>
    using namespace std;
    
    int main()
    {
        int n, m, i, j, k, s, l, flag[1010]={0}, danger[100010];
        map<int, vector<int> > mm; //切记 定义时 >> 中间得有空格 > > 
        cin >> n >> m;
        for (i = 0; i < n; i++)
        {
            cin >> j >> k;
            mm[j].push_back(k);
            mm[k].push_back(j);
        }
        for (i = 0; i < m; i++)
        {
            int exsit[100010]={0};
            scanf("%d", &s);
            for (j = 0; j < s; j++)
            {
                scanf("%d", &l);
                exsit[l] = 1;
                for (k = 0; k < mm[l].size(); k++)
                {
                    if (exsit[l]&&exsit[mm[l][k]])
                    {
                        flag[i]=1;
                        break;
                    }
                }
                if ( k > mm[l].size()) flag[i]=0;
            }
            
                
        }
        for (i = 0; i < m; i++)
        {
            if(flag[i]==1) cout << "No" << endl;
            else cout << "Yes" << endl;
        }
        system("pause");
        return 0;
    }
  • 相关阅读:
    一些业内有名的网站收集
    WCF重载
    FCKEditor fckconfig.js配置,添加字体和大小 附:中文字体乱码问题解决
    查询第几条到第几条的数据的SQL语句
    SPOJ 9939 Eliminate the Conflict
    UVA 10534 Wavio Sequence
    HDU 3474 Necklace
    POJ 2823 Sliding Window
    UVA 437 The Tower of Babylon
    UVA 825 Walking on the Safe Side
  • 原文地址:https://www.cnblogs.com/ache/p/12329147.html
Copyright © 2011-2022 走看看