C2. Exam in BerSU (hard version)(思维 + 小数据范围)

news2024/12/23 16:07:33

Problem - C2 - Codeforces

简单版本和困难版本之间的唯一区别是约束。

如果你用Python写一个解决方案,那么最好用PyPy发送,以加快执行时间。

贝兰德州立大学的一场会议已经开始。许多学生正在参加考试。

波利格拉夫维奇要对N个学生进行考试。学生们将按照从第1个到第n个的顺序逐一参加考试。考试的规则如下:

第i个学生随机选择一张票。
如果这张票对学生来说太难,他就不回答,并立即回家(这个过程非常快,以至于被认为没有时间流逝)。这个学生没有通过考试。
如果这个学生认为这张票很容易,他花了整整十分钟来通过考试。之后,他立即得到一个分数并回家。
学生按照固定的顺序,一个接一个地参加考试,没有任何干扰。在任何时候,Polygraph Poligrafovich都会从一个学生那里获得答案。

所有学生的整个考试时间是M分钟(maxti≤M),所以排在最后的学生有更大的可能用尽时间通过考试。

对于每个学生i,你应该计算出需要失败的学生的最小可能数量,以便第i个学生有足够的时间通过考试。

对于每个学生i,独立地找到答案。也就是说,如果在为学生i1寻找答案时,一些学生j应该离开,那么在为i2寻找答案时(i2>i1),学生j不必回家。

输入

输入的第一行包含两个整数n和M(1≤n≤2⋅105,1≤M≤2⋅107)--分别是学生人数和考试的总时间(分钟)。

输入的第二行包含n个整数ti (1≤ti≤100 )--第i个学生回答一张票所花的时间,以分钟计。

保证ti的所有值都不大于M。

Examples

input

Copy

7 15
1 2 3 4 5 6 7

output

Copy

0 0 0 0 0 2 3 

input

Copy

5 100
80 40 40 40 60

output

Copy

0 1 1 2 3 

输出

打印n个数字:第i个数字必须等于为了使第i个学生有足够的时间通过考试而必须离开考试的最小人数。

 题解:
本来是直接用优先队列写的,好像确实会t,(用队列即使是t了,也可能会报WA)

正确思路是统计目前ti每种有多少,由于t<=100

每个ti,直接从1~100小到大看最多能放几个,(贪心来讲)肯定是小的放的越多越好,

#include <cstdio>
#include <cstring>
#include <algorithm>
#include<iostream>
#include<vector>
#include<set>
#include<map>
#include<cmath>
#include<queue>
using namespace std;
typedef long long ll;
#define int long long
typedef pair<int,int> PII; 
const int N = 1e6 + 10;
int a[104];
void solve()
{
	int n,m;
	cin >> n >> m;
	for(int i = 1;i <= n;i++)
	{
		int x;
		cin >> x;
		int cnt = m - x;
		int ans = 0;
		for(int j = 1;j <= 100;j++)
		{
			int p = min(cnt/j , a[j]);
			cnt -= p*j;
			ans += p;
		}
		cout <<i - 1 - ans <<" ";
		a[x]++;
	}
}


signed main()
{
//	ios::sync_with_stdio(0);
//	cin.tie(0);cout.tie(0);
	int t = 1;
//	cin >> t;
	while(t--)
	{
		solve(); 
	}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/439479.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

工业树莓派远程I/O控制套装—更高效、更灵活、更便捷

一、背景 在完整的生产过程中&#xff0c;许多传感器设备和执行设备不完全安装在同一位置&#xff0c;大多分散部署在各个生产环节中。如果采用本地控制的方式&#xff0c;就需要用到多个控制器&#xff0c;但是成本较高&#xff0c;且不利于管理&#xff0c;所以最理想的解决…

2.redis-持久化

01-Redis持久化 概述 Redis数据存储在缓存中&#xff0c;为了防止数据的意外丢失&#xff0c;确保数据安全性。所以&#xff0c;就有了redis持久化。 分类 RDB: Redis默认的持久化策略, 直接存储数据 AOF: 存储数据的操作过程. 02-RDB持久化之save指令 配置说明 # 设置rdb…

[pgrx开发postgresql数据库扩展]2.安装与开发环境的搭建

——前文再续&#xff0c;书接上一回。 前言 我上篇文章刚刚写完&#xff0c;pgx就全面改名为了 pgrx……&#xff0c;结果导致我都来不及把以前的文章改过来&#xff0c;所以以后遵循最新的命名方法。 pgrx的开发环境需求 pgrx目前仅支持在linux操作系统上进行开发&#xff…

Android 基于 Perfetto 抓取 trace

Perfetto 官方链接地址 https://github.com/google/perfetto/ 开启Android的trace跟踪服务 Perfetto 是基于 Android 的系统追踪服务&#xff0c; 这个配置在 Android11 之后是默认打开的&#xff0c;但是如果你是 Android 9 ( P ) 或者 10 ( Q ) &#xff0c;那么就需要手动设…

【备考2023年软考】选系统规划与管理师,还是信息系统项目管理师?

目录 一、系统规划与管理师介绍 二、信息系统项目管理师介绍 三、二者区别 四、适合什么人考 五、怎么备考 1.了解考试大纲 2.系统学习&#xff08;附带资料分享&#xff09; 3.多做题 4.总结复习 软考系统规划与管理师和信息系统项目管理师是软考中的两个比较热门的证…

CSS——js 动态改变原生 radio、switch 的选中样式

导航 1. radio1-1. 业务场景&#xff1a;1-2. 效果&#xff1a;1-3. 问题点&#xff1a;1-4. 解决方案&#xff1a;1-5. 代码&#xff1a;1-5-1. HTML1-5-2. JS1-5-3. html 内容排版的 css1-5-4. 实现 radio 效果的 css 2. switch2-1. 业务场景&#xff1a;2-2. 效果&#xff1…

Vue3+Typescript+Vitest单元测试环境+组件事件测试篇

上一节我们学会了组件测试的基础测试部分组件测试基础篇&#xff0c;这一节&#xff0c;我们学习一下深入测试组件的事件 在component中增加一个新的组件,名字就叫做Zmbutton2吧 import { defineComponent } from "vue";const ZmButton2 defineComponent({name: &…

《Spring MVC》 第一章 MVC模式

前言 MVC 模式&#xff0c;全称为 Model-View-Controller&#xff08;模型-视图-控制器&#xff09;模式。是一种软件架构模式。 分层描述Model&#xff08;模型&#xff09;它是应用程序的主体部分&#xff0c;主要由以下 2 部分组成&#xff1a; 实体类 Bean&#xff1a;专…

(4.7-4.13)【大数据新闻速递】上海、广州、青海、贵阳大力发展大数据产业;2026年中国大数据市场规模预计达365亿美元

01【贵阳大数据交易所发布全国首个交易激励计划】 4月6日&#xff0c;贵阳大数据交易所发布了“交易激励计划”&#xff0c;旨在提高数据场内交易的吸引力&#xff0c;解决交易入场难的问题。该计划是落实《关于构建数据基础制度更好发挥数据要素作用的意见》和《关于支持贵州…

阿里云服务器网络收发包PPS性能25万/80万/100万PPS详解

阿里云服务器ECS网络收发包PPS是什么&#xff1f;云服务器PPS多少合适&#xff1f;网络收发包PPS是指云服务器每秒可以处理的网络数据包数量&#xff0c;单位是PPS即packets per second每秒发包数量。阿里云百科来详细说下阿里云服务器网络收发包PPS性能参数表&#xff0c;以及…

Vue 事件处理器

文章目录 Vue 事件处理器事件修饰符按键修饰符 Vue 事件处理器 事件监听可以使用 v-on 指令&#xff1a; v-on <div id"app"><button v-on:click"counter 1">增加 1</button><p>这个按钮被点击了 {{ counter }} 次。</p>…

入门神经网络——浅层神经网络

文章目录 一、基础知识1.浅层神经网络介绍2.浅层神经网络的正向传播3.反向传播 二、浅层神经网络代码实例 一、基础知识 1.浅层神经网络介绍 此次构件浅层神经网络&#xff0c;相比于单神经元&#xff0c;浅层神经网络拥有多个神经元&#xff0c;因此又可以称为多神经元网络&…

【Python杂事】 处理Excel中日期时间之间没有空格问题

目录 一、数据源要求二、逻辑思路1、ROI区域2、对ROI区域进行判定 三、代码实现四、成果展示总结 碰到一个非常有趣的问题&#xff1a; 在我们的日常工作中&#xff0c;常常需要处理各种各样的数据&#xff0c;其中不乏包含日期和时间信息的数据。有时候我们会发现这些数据中日…

事件抽取的概念

1. 事件的定义 事件是指发生在某个特定的时间点或时间段、某个特定的地域范围内&#xff0c;由一个或者多个角色参与的一个或者多个动作组成的事情或状态的改变。 2. 事件基本元素 时间、地点、人物、原因、结果 3.事件抽取的定义 主要研究如何从描述事件信息的文本中抽取…

python共词矩阵分析结果一步到位

import os import re import pandas as pd from PyPDF2 import PdfFileReader import string import yakeif __name__ __main__:# 运行第一部分代码pdf_files_path C:/Users/win10/Documents/美国智库/pdf_files# 定义一个函数&#xff0c;用于读取PDF文件并将其转化成文本de…

C++学习之交互式表达式求值的详细讲解和简单代码示例

一、怎么理解交互式表达式求值&#xff1a; 交互式求表达式值是指通过命令行交互的方式&#xff0c;接收用户输入的数值和运算符号&#xff0c;然后计算出其表达式的值并返回给用户。这种方式可以方便地进行简单的计算和查错&#xff0c;也可以用于程序设计中一系列复杂的计算…

单CDN与融合CDN之间的对比:优缺点及注意事项

CDN是现代互联网服务的重要组成部分&#xff0c;它CDN可帮助内容提供者高速交付内容&#xff0c;不同的服务器部署在全球不同的数据中心&#xff0c;并在它们之间共享相同的网络路径。随着企业意识到CDN的重要性&#xff0c;越来越多的企业正在使用CDN作为内容分发工具。互联网…

完美解决丨RuntimeError: create_session() called before __init__().

错误&#xff1a; import sys sys.path.append(/home/pi/ssd-detect) import ssd_detect ssd_detect.detect(/home/pi/ssd-detect/test.jpg) 报错如下&#xff1a; Traceback (most recent call last): File "test.py", line 6, in <module ssd_detect.detect(/ho…

ArcGIS制作建设项目使用林地现状图

近年来&#xff0c;随着经济社会的快速发展&#xff0c;各地建设项目不断增多&#xff0c;占用征用林地项目的数量也呈逐年上升的趋势。根据《占用征用林地审核审批管理规范》规定&#xff0c;建设项目申请占用征用林地&#xff0c;应编制的项目使用林地可行性报告&#xff1b;…

Linux-升级CMake版本(Ubuntu18.4)

一、简介 在一些场景中&#xff0c;因为CMake版本过低而无法编译&#xff0c;此时就需要升级CMake的版本。 二、升级 卸载 先卸载旧的cmake sudo apt-get autoremove cmake 安装 切换文件夹 cd /usr/src 下载cmake包。需要哪个版本&#xff0c;可以自行修改版本号。 注&#…