• 2024-10-23P7072 [CSP-J2020] 直播获奖 题解
    暴力使用$\Theta(n^2)$的时间复杂度来解决这题大约能拿到$60pts$.即枚举$p$,再枚举每个选手的分数.正解桶是个好东西.我们开一个桶,记录当前分数有多少人.然后计算获奖人数,分数从大到小进行枚举,直到当前人数$\ge$获奖人数.代码#include<iostream>#include<cstdio>#i
  • 2024-10-22P7072 [CSP-J2020] 直播获奖 对顶堆
    对顶堆动态维护第k大的值。#include<bits/stdc++.h>usingnamespacestd;usingi64=longlong;voidShowball(){intn,w;cin>>n>>w;priority_queue<int,vector<int>,greater<int>>minq;priority_queue<int>ma
  • 2024-06-13CSP历年复赛题-P7072 [CSP-J2020] 直播获奖
    原题链接:https://www.luogu.com.cn/problem/P7072题意解读:每增加一个人的分数,计算一次当前获奖的人数,输出当前的分数线。解题思路:最多人数为N=100000,分数最高为M=6001、O(N*N*logN)做法每增加一个人,对已出现的分数进行排序N*logN,计算获奖人数k,取排名第k的人的分数,大概可