zoukankan      html  css  js  c++  java
  • 洛谷-P5886 Hello, 2020!

    洛谷-P5886 Hello, 2020!

    原题链接:https://www.luogu.com.cn/problem/P5886


    题目背景

    时针与分针重合在「零」的那一霎那,嘀嗒声便宣告了新一年的到来。

    在过去的一年里,世事无常。屏幕面前的你可能不久前才听闻「OI」,也可能暂时地结束了竞赛生涯;可能在赛场上叱咤风云名列榜首,也可能独自承受着比赛失利的落寞。

    无论如何,过去仍旧是过去,将来依然是将来。

    以此题为开端,迎接你的 2020 吧!

    题目描述

    本场比赛有 (n) 名出题人,(m) 名选手。

    出题人从 (1)(n) 依次标号,选手从 (1)(m) 依次标号。

    比赛结束后选手的最终排名为 (1)(m) 中其一,且互不相同。

    报名结束后,第 (i) 位出题人看了看报名列表,对其他出题人说:「我觉得只有这 (k_i) 位选手有可能最终排名第一,他们分别是 (a_{i,1},a_{i,2},dots,a_{i,k_i})。其他人不可能最终排名第一。」

    你面前屏幕上的这道题的出题人通过时空隧道,预先得知了谁是最终排名第一的选手。

    出题人把这 (n) 位出题人的预测都告诉了你,还告诉你恰好只有 (p) 个出题人的预测是正确的。

    请你求出哪些选手可能最终获得第一名,并以从小到大的顺序依次输出这些选手的编号。

    输入格式

    从标准输入中读取数据。

    第一行,三个正整数 (n,m,p),表示出题人数,选手数,与正确预测数。

    接下来 (n) 行,每行第一个非负整数 (k_i) 表示第 (i) 位出题人预测可能最终排名第一的选手位数;接下来 (k_i) 个正整数 (a_{i,1},a_{i,2},dots,a_{i,k_i}),表示这位出题人预测可能最终排名第一的选手编号。

    输出格式

    输出数据至标准输出中。

    第一行,输出一个非负整数,表示可能最终获得第一名的选手个数。

    第二行,以从小到大的顺序依次输出这些选手的编号。

    输入输出样例

    输入 #1

    4 3 2
    2 2 3
    1 1
    3 1 2 3
    2 1 3
    

    输出 #1

    1
    2
    

    说明/提示

    子任务 1((6\%)):(nleq 20)(mleq 20)

    子任务 2((30\%)):(nleq 100)(mleq 100)(sum k_i leq 10^4)

    子任务 3((24\%)):(nleq 1000)(mleq 1000)

    子任务 4((40\%)):无特殊限制。

    对于全部数据,(1leq nleq 10^5)(1leq mleq 10^6)(0leq sum k_i leq 10^6)(0leq pleq n)

    C++代码

    #include <iostream>
    using namespace std;
    
    int main() {
        int n, m, p, t, count=0;
        cin >> n >> m >> p;
        int k[n], a[m+1]={0}, ans[m];
        for (int i=0; i<n; ++i) {
            cin >> k[i];
            for (int j=0; j<k[i]; ++j) {
                cin >> t;
                ++a[t];
            }
        }
        for (int i=1; i<=m; ++i)
            if (a[i] == p)
                ans[count++] = i;
        cout << count << endl;
        for (int i=0; i<count; ++i)
            cout << ans[i] << ' ';
        cout << endl;
        return 0;
    }
    
  • 相关阅读:
    【OpenCV】几何失真校正与局部增强
    【C#】WinForm 之 DOTA2英雄搭配助手(网页抓取+在线绿色版+源码开放)
    【MFC】指纹类型识别(OpenCV + MATLAB混合编程)
    【MATLAB】图像细化算法
    【MATLAB】形态学变换
    【MATLAB】二值化效果
    一个女程序员的奋斗史
    数据结构之------C++指针冒泡排序算法
    C++之------进制学习
    串口屏之------Usart GPU 使用手册
  • 原文地址:https://www.cnblogs.com/yuzec/p/13507503.html
Copyright © 2011-2022 走看看