首页 > 其他分享 >CSP历年复赛题-P7072 [CSP-J2020] 直播获奖

CSP历年复赛题-P7072 [CSP-J2020] 直播获奖

时间:2024-06-13 14:21:50浏览次数:12  
标签:分数 600 int 获奖 P7072 人数 CSP J2020

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

题意解读:每增加一个人的分数,计算一次当前获奖的人数,输出当前的分数线。

解题思路:

最多人数为N = 100000, 分数最高为M = 600

1、O(N*N*logN)做法

每增加一个人,对已出现的分数进行排序N*logN,计算获奖人数k,取排名第k的人的分数,大概可以得到50分。

2、O(N*N)的做法

每增加一个人,采用插入排序的方式,将其排到合适位置,保持分数从大到小排序,然后计算获奖人数k,取排名第k的人的分数,大概可以得到85分。

3、O(N*M)的做法

由于分数最大只有600,可以用哈希数组记录每个分数的人数,每增加一个人更新一次,然后从分数高到低600~0遍历哈希数组,计算排在前面的总人数,一旦人数超过获奖人数,则输出分数。

100分代码:

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

int n, w;
int a[605];

int main()
{
    cin >> n >> w;
    int x;
    for(int i = 1; i <= n; i++)
    {
        cin >> x;
        a[x]++;

        int cnt = 0;
        for(int j = 600; j >= 0; j--)
        {
            cnt += a[j];
            if(cnt >= max(1, i * w / 100))
            {
                cout << j << " ";
                break;
            }
        }
    }
    return 0;
}

 

标签:分数,600,int,获奖,P7072,人数,CSP,J2020
From: https://www.cnblogs.com/jcwy/p/18245783

相关文章

  • CSP_J_真题之 2023 第一轮笔试(一)
    公众号:编程驿站......
  • CSP历年复赛题-P7071 [CSP-J2020] 优秀的拆分
    原题链接:https://www.luogu.com.cn/problem/P7071题意解读:提取n的二进制位所有的1表示的整数,如果最低位是1则输出-1。解题思路:如果n的二进制最低为是1(n是奇数),则肯定不是优秀拆分,输出-1否则,从低位到高位遍历n的每一个二进制位,看第i位是1,倒序输出2^i。100分代码:#include<bits......
  • CSP历年复赛题-P5663 [CSP-J2019] 加工零件
    原题链接:https://www.luogu.com.cn/problem/P5663题意解读:工人是图中的点,传送带是图中的无向边,给出q个询问a,l,判断是否能有一条1号点到a点的路径为l。解题思路:考试的关键是拿分!同样可以来面向数据编程:1、测试点 1∼4,1≤......
  • CSP历年复赛题-P5662 [CSP-J2019] 纪念品
    原题链接:https://www.luogu.com.cn/problem/P5662题意解读:n件物品,t天每天有不同的价格,类似股票,初始有m金币,每天都可以无限次买卖,问最后最多可以达到多少金币。解题思路:考试中一定要学会面向数据编程!1、对于 10%10% 的数据,......
  • 如何调试 "内容安全策略 (CSP) 脚本源代码";
    我试图在我的NextJS应用程序中阻止不受信任的脚本标记。我添加了"内容安全策略"安全标头,特别是"src-script"指令。但是我收到了一个错误,基本上是说有一些未知的脚本主机(除了列出的那些)违反了该指令。Chrome浏览器并没有提供帮助,因为它不知道是哪个脚本违反了这一指令。......
  • CSP历年复赛题-P5661 [CSP-J2019] 公交换乘
    原题链接:https://www.luogu.com.cn/problem/P5661题意解读:坐一次地铁得到一张优惠券,坐公交可以已使用金额大于等于票价的优惠券,优惠券45分钟之内有效,计算所有乘车记录的总花费。解题思路:采用队列记录所有坐地铁得到的优惠券;每次都将过期优惠券从队列中踢出,保证队列里的优惠券......
  • CSP历年复赛题-P5018 [NOIP2018 普及组] 对称二叉树
    原题链接:https://www.luogu.com.cn/problem/P5018题意解读:找到是对称二叉树的最大子树节点数。解题思路:1、先统计每一个节点为子树的节点数intdfs1(introot){if(root==-1)return0;returncnt[root]=dfs1(tree[root].l)+dfs1(tree[root].r)+1;}2、再......
  • CSP历年复赛题-P5017 [NOIP2018 普及组] 摆渡车
    原题链接:https://www.luogu.com.cn/problem/P5017题意解读:先将问题进行抽象、建模。设一条数轴,从左到右,每个点对应一个时刻,每个时刻可能有多个人到达,然后有若干个发车时刻,每两个发车时刻间隔必须>=m,每个人的等待时长就是到最近一个发车时刻的时间累加,计算所有人等待时间最小值。......
  • 【题解】 [CSP-J 2019] 纪念品
    题目描述题目大意在\(T\)天内,有\(n\)种纪念品和初始的\(m\)元。可以得到每天每种纪念品的价格。每一天可以以当日价格买卖纪念品。特别的,当天卖出得到的钱可以当天买入,当日买入的纪念品也可以当日卖出。当然可以一直持有。但是,\(T\)天过后,手上不可以持有纪念品。思路......
  • CSP历年复赛题-P3957 [NOIP2017 普及组] 跳房子
    原题链接:https://www.luogu.com.cn/problem/P3957题意解读:有n个格子,每个格子有不同的距离和分数,从起点,每次可跳距离为d,用g金币后可跳距离范围可以变成max(d-g,1)~d+g,求最小的g,使得可跳跃得分不少于k。解题思路:1、单调性分析:如果g越大,可跳跃的范围就越大,理论上能得的分数越......