KTV

作者: Jacinth | 来源:发表于2017-08-18 21:14 被阅读0次

KTV
时间限制:C/C++语言 1000MS;其他语言 3000MS
内存限制:C/C++语言 65536KB;其他语言 589824KB
题目描述:
有n个人去KTV唱歌,每个人都有自己想唱的一些歌曲。已知该KTV每个房间都只有x个麦克风,同一首歌可以同时多人一起唱,但是同时唱的人不能超过x人,同一时刻只能唱一首歌。一共只有y首歌的时间,所有人想唱的歌都唱完或者y首歌唱完了他们就会离开。他们想知道在最优的安排策略下(让每个人尽量唱完自己想唱的歌),当他们离开时是否还有人有想唱的歌没有唱。输入保证每个人想唱的歌都不同。
输入
第一行一个整数T,表示测试的数据组数1≤T≤10;
对于每组测试数据,第一行三个整数n,x,y,含义见题面,1≤n≤100,1≤x≤100,1≤y≤1000;
接下来n行按行从上到下顺序分别给出了第1到第n个人想唱的歌曲,其中每行开头一个整数a[i]表示第i个人想唱歌的数量,后面a[i]个整数,表示歌曲编号1≤a[i]≤10。KTV可选歌曲总数不超过1000,即编号不大于1000。
输出
对于每组测试数据,输出”YES”,表示离开时有人还有歌没唱完,否则输出”NO”。(不包括引号)。

样例输入
1
3 3 3
1 2
1 3
1 4
样例输出
YES

Hint
输入样例2:
2
1 1 1
2 1 2
2 2 1
1 1
1 1
输出样例2:
NO
YES

#include <bits/stdc++.h> 
using namespace std;
int main()
{
    int caseCnt;
    while (scanf("%d", &caseCnt) != EOF)
    {
        for (int j = 0; j < caseCnt; ++j)
        {
            unordered_map<int, int> songToSing;
            int personCnt, mCnt, songCnt;
            scanf("%d%d%d", &personCnt, &mCnt, &songCnt);
            for (int i = 0; i < personCnt; ++i)
            {
                int psCnt;
                scanf("%d", &psCnt);
                for (int j = 0; j < psCnt; ++j)
                {
                    int sId;
                    scanf("%d", &sId);
                    songToSing[sId - 1]++;
                }
            }
            for (auto kv : songToSing)
            {
                while (kv.second > 0 && songCnt > 0)
                {
                    int left = kv.second - min(personCnt, mCnt);
                    songToSing[kv.first] = left;
                    kv.second = left;
                    songCnt--;
                }
            }
            bool done = true;
            for (auto kv : songToSing)
            {
                if (kv.second > 0)
                {
                    done = false;
                    break;
                }
            }
            if (done)
                printf("YES\n");
            else
                printf("NO\n");
        }
    }
    return 0;
}

相关文章

  • 2018年我们做夜场KTV的理由是什么,为什么做?(夜场美女吃的

    下面,小编告诉你,在西安KTV/上海ktv/北京ktv/广州ktv/深圳ktv/成都ktv/杭州ktv/武汉KTV...

  • KTV

    今天下午我一放学就听见妈妈在和阿姨视频对话,说一会儿要出去吃包子。听了这话,我急忙洗了洗澡,盘好头,穿...

  • KTV

    看见你哭会跟着伤心, 带你去发泄, 他很爱你, 对他好点吧。

  • KTV

    (一) 昌俊是个小型的贸易公司,有多小呢?除了老板之外,公司便只剩下四个人了。卖的东西也简单——药店的进销存及售货...

  • KTV

    每次聚会都面临着分离,越长大越孤单,不再相信再见,每一次的再见都有可能是永别。珍惜每一个人从我生命中走过的人,都是...

  • KTV

    热闹是他们的,我什么也没有。

  • KTV

    雨过之后 我怀念的 思念是一种病 遇见 外面的世界 亲密爱人 天黑黑 远走高飞

  • KTV

    昨晚和亲爱的去了创意产业园。 首先,我们去了哗家吃牛肉火锅,然后去KTV唱歌,亲爱的歌唱的还不错,下次可以让他请公...

  • KTV

    KTV时间限制:C/C++语言 1000MS;其他语言 3000MS内存限制:C/C++语言 65536KB;其他...

  • KTV

    回到魔都,上海歌城高行店,39块钱欢唱四个小时,唱了1250句话,哑着嗓子晕乎乎走出KTV,和曾经喝完一瓶海之蓝的...

网友评论

      本文标题:KTV

      本文链接:https://www.haomeiwen.com/subject/kbhzrxtx.html