博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cf 568 c1 c2
阅读量:4332 次
发布时间:2019-06-06

本文共 1720 字,大约阅读时间需要 5 分钟。

cf 568 div2

题意:

有n个学生要考试,总的考试时间是M,每个学生考试需要\(t_i\)的时间,每次只能一个学生进行考试。问如果学生要完成考试,那么在他前面至少有多少人不能参加考试?

题解:

就是求一个序列前面最多多少个数相加少于等于( m - \(a_i\)

c1数据范围比较小,然后今天又恰好看到了小灰公众号讲了插入排序,就用上了。保证\(a_i\)前面的序列是有序的,然后从后往前一直减,直到符合要求。但是时间复杂度是O(\(n^2\)),c2的数据是肯定过不了的,然后我没想到怎么写!!看了题才发现\(t_i\)<=100,可以直接记录\(t_i\)的数量,然后从小到大扫一遍,时间复杂度O(n100)(2 \(10^6\))

//c1#include 
int main() { int n, m, a[110], sum = 0; scanf("%d %d", &n, &m); for(int i = 0; i < n; i++) { int cnt = 0; scanf("%d", &a[i]); if(sum > m - a[i]) { int summ = sum, j = i - 1; while(summ > m - a[i]) { cnt++; summ -= a[j]; j--; } } int b = a[i], j = i - 1; if(i) { while(b < a[j] && j >= 0) { a[j+1] = a[j]; j--; } a[j+1] = b; } sum += b; printf("%d ", cnt); } printf("\n"); return 0;}
//c2#include 
int cnt[110];int main() { int n, m, a, sum = 0; scanf("%d %d", &n, &m); for(int i = 0; i < n; i++) { scanf("%d", &a); sum += a; int ans = 0; if(sum > m) { int summ = a; for(int i = 1; i <= 100; i++) { if(cnt[i]) { if(summ + cnt[i] * i < m) { ans += cnt[i]; summ += cnt[i] * i; } else { ans += (m - summ) / i; break; } } } } else ans = i; cnt[a]++; printf("%d ", i - ans); } return 0;}

转载于:https://www.cnblogs.com/fanshhh/p/11342858.html

你可能感兴趣的文章
小D课堂 - 新版本微服务springcloud+Docker教程_1_01课程简介
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第11节 Logback日志框架介绍和SpringBoot整合实战_45、SpringBoot2.x日志讲解和Logback配置实战...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_1_02技术选型
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_汇总
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_2_01传统架构演进到分布式架构
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_2_02 微服务核心基础讲解
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_2_04微服务下电商项目基础模块设计...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_3-01 什么是微服务的注册中心
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_3-03CAP原理、常见面试题
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_3-04 SpringCloud微服务核心组件Eureka介绍和闭源后影响...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_3-05 服务注册和发现Eureka Server搭建实战...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_3-06 服务注册和发现之Eureka Client搭建商品服务实战...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_3-07 Eureka服务注册中心配置控制台问题处理...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_4-01 常用的服务间调用方式讲解
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_4-02 微服务调用方式之ribbon实战 订单调用商品服务...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_4-03 高级篇幅之Ribbon负载均衡源码分析实战...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_4-06 Feign核心源码解读和服务调用方式ribbon和Feign选择...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_4-05 微服务调用方式之feign 实战 订单调用商品服务...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_5-02 Netflix开源组件断路器
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_5-01分布式核心知识之熔断、降级
查看>>