[Luogu P5886 Hello,2020!]题解

Luogu P5886

好久没有写题了,感觉思维有些退化,明明是到简单题却交了三遍才过

对于每个评委可以钦定多个人得第一,但是只有P个评委钦点到了真正的第一名

呢么对于真正的第一名他一定被P个评委钦定过

所以我们统计每个人被评委钦定的次数,然后统计哪些人被钦定了P次,最后依次输出即可

好吧为啥我提交了三次了,第一次我统计所以大于等于P次的人,第二次我输了一列,题目要求输出一行

emm,还是自己傻逼

其实我觉得这题可以加强一下难度,增加数据范围,并且不保证数据合法还是可以随便用个log的数据结构维护下的吧

#include <bits/stdc++.h>
using namespace std;

const int N = 1e6 + 5;
int n , m , p , f[N] , cnt ;
vector < int > ans;

inline int read()
{
    register int x = 0;
    register char ch = getchar();
    for( ; ch < '0' || ch > '9' ; ch = getchar() );
    for( ; ch >= '0' && ch <= '9' ; x = ( x << 3 ) + ( x << 1 ) + ch - '0' , ch = getchar() );
    return x;
} 

int main()
{
    n = read() , m = read() , p = read();
    for( register int i = 1 , k ; i <= n ; i ++ )
    {
        k = read();
        for( register int j = 1 , t ; j <= k ; j ++ )
        {
            t = read();
            f[t] ++;
        }
    }
    for( register int i = 1 ; i <= m ; i ++ )
    {
        if( f[i] != p ) continue;
        cnt ++;
        ans.push_back( i );
    }
    printf( "%d\n" , cnt );
    for( auto it : ans ) printf( "%d " , it );
    puts("");
    return 0;
}

原文地址:https://www.cnblogs.com/Mark-X/p/12347033.html

时间: 2024-10-09 19:53:09

[Luogu P5886 Hello,2020!]题解的相关文章

luogu P1541 乌龟棋 题解

\(luogu\) P1541 乌龟棋 题解 题目描述 这道题目想状态的时候想多了一维表示当前走了多少步,其实这个完全没有必要,因为根据你的牌的使用就可以知道你当前在哪一个位置. 状态 设\(f[i][j][k][l]\)表示已经用了\(i\)张步数为\(1\)的牌,\(j\)张步数为\(2\)的牌,\(k\)张步数为\(3\)的牌,\(l\)张步数为\(4\)的牌所能取得的最大分数. 转移 因为只有这四种牌,所以只需要枚举到达当前的步数的最后一步用的那张牌,然后对用四种牌的情况取\(\max\

[luogu]P1262 间谍网络 题解

原题目:[luogu]P1262 间谍网络 数据范围好小啊(小声) 首先对于环 , 我们可以直接缩成点 , 如果环上的有好多可以收买的间谍的话就找其中要价最低的作为这个缩点后的点的要价 然后怎么处理呐? 我做完以后看到题解区有神仙一个循环就能处理出答案 但是我太菜了自己做的时候并没有想到qaq 所以就用了 DFS 再建一个缩点后的图 , 然后从每一个可以被收买的点上 DFS , 最后看看有没有点没有被搜到就可以了 如果说从一个可以被收买的点 a , 搜的时候找到了另一个已经搜过而且也是可以被收买

【luogu P3952 时间复杂度】题解

对于2017 D1 T2 这道题 实实在在是个码力题,非常考验耐心. 其实大体的思路并不是非常难想出来,但是要注意的小细节比较多. 题目链接:https://www.luogu.org/problemnew/show/P3952 思路 对于每一个程序,先读入L和O(),并将其中的时间复杂度抠出来. 其次整行读入字符串,即所给定的程序. 判断第一个字符是F or E F i x y 需要把x y拿出来,把i压进栈 E 退栈 压进i后为了方便退栈及退栈时判断,用一个flag标记 每做完一个程序,与前

【luogu P1082 同余方程】题解

最近一直在学习数论,讲得很快,害怕落实的不好,所以做一道luogu的同余方程练练手. 关于x的同余方程 ax ≡ 1 mod m 那么x其实就是求a关于m的乘法逆元 ax + my = 1 对于这个不定方程的全部解是 { x = x0 + m/gcd(a,m) { y = y0 - a/gcd(a,m) 我们可以用exgcd来求出其中的一组特解x0 那么什么是exgcd? 先不考虑exgcd,假设当前我们要处理的是求出 a 和 b的最大公约数,并求出 x 和 y 使得 a*x + b*y= gc

【luogu P2831 愤怒的小鸟】 题解

题目链接:https://www.luogu.org/problemnew/show/P2831 写点做题总结:dp,搜索,重在设计状态,状态设的好,转移起来也方便. 对于一条抛物线,三点确定.(0,0)是固定的,所以我们一条抛物线要用两只猪确定.再多的猪就只能用来判断是不是在这条抛物线上了. 于是我们把猪分成两种:在已有方程里的猪,单独的猪还没有确定方程. 那么对于一只猪,就会有被以前方程覆盖/和前面单独的猪构成新抛物线/自己单独. #include <cmath> #include <

Luogu P3873 [TJOI2010]天气预报 题解

这题输入数据好坑啊.. 本题解是给像我一样的蒟蒻写的,可能略显啰嗦,已经懂了的大佬可以出门右转,去切掉IOI 我们先分析题目,将每一个\(w_i\),它的计算方式写成如下方式: \(w_i=a_1*w_{i-1}+a_2*w_{i-2}+\cdots+a_n*w_{i-n}\) 再注意到题中的这句话: a1, a2, ..., an是已知常数 所以这是一个常系数的线性递推方程.很自然的,对于这种方程,我们可以想到直接\(O(nm)\)递推(每个数都要乘n次). 继续看题.这时候我们惊讶的发现了下

Luogu - P1018 乘积最大 - 题解

原文:https://www.luogu.org/problemnew/solution/P1018?page=7 题目:P1018[乘积最大] 前言: 这题的正解理论上说是DP,可是由于民间数据太水,用暴力过并不难 整体思路: 利用一个b数组标记每一位之间是否分割(1位分割,0为连接). 利用STL里的 next_permutation 求出b的各种排列(即暴力枚举每种情况). 由于本题数据规模大,所以要使用高精度计算每种分割的最后结果,并找出最大. next_permutation函数: 即

Luogu P4204 神奇口袋 题解报告

题目传送门 [题目大意] 一个口袋里装了t种颜色的球,第i种颜色的球的数目为ai,每次随机抽一个小球,然后再放d个这种颜色的小球进口袋. 给出n个要求,第x个抽出的球颜色为y,求满足条件的概率. [思路分析] 抽出一个球颜色为i的概率设为f[i],球的总数为sum 在第k步时,$f[i]=\frac{a[i]}{sum}$ 那么在k+1步就有两种情况: 1.第k步抽中了颜色为i的球,那么此时概率为$\frac{a[i]}{sum}*\frac{a[i]+d}{sum+d}$ 2.第k步没有抽中,

Luogu P2657 windy数 题解报告

题目传送门 [题目大意] 定义不含前导零且相邻两个数字之差至少为2的数为$windy$数,求在$[A,B]$这个区间内存在多少$windy$数. [思路分析] 好的据说这是一道数位DP板子题……$mark$一下,不过说实话这题难道不是记忆化搜索吗???QAQ 我们首先把问题转化成求$[1,B]$之间的$windy$数减去$[1,A-1]$之间的$windy$数,然后单独考虑. 设$f[i][j]$表示到第$i$位,前一位数字为$j$的方案数.然后我们为了保证数字不超出范围,要加一个变量记录是否有