Contest Start

题目大意

有 \(n\) 个人报名参加一个比赛,从 \(0\) 时刻开始每隔 \(x\) 分钟有一个人开始比赛,每个人参赛时间相同,均为 \(t\) 。定义一个选手的不满意度为他结束比赛时已经开始但尚未结束比赛的人数,求所有选手不满意度的总和。

题外话

这场 \(CF\) 私以为 \(B\) 题才是最简单的一道题, \(A\) 题比 \(B\) 题要难一些,但其实也比较容易。

分析

我们可以先考虑分析一下样例(下展示样例 \(4\) 、 \(2\) 、 \(5\) ):

一号 二号 三号 四号
开始时间 0 2 4 6
结束时间 5 7 9 11
不满意度 2 2 1 0

其实题目告诉我们每个选手的参赛时间相同且开始时间有着相同的间隔,应该不难想到肯定又一定的规律存在。

就例如这组样例,虽然比较小,但是我们也能注意到,一号和二号的不满意度没有变化,想象有更多的参赛选手,是否会有更多的选手不满意度为 \(2\) ?至于最后两个选手不满意度变化的原因,很显然其实是因为后面已经没有更多的选手了,所以会一次递减 \(1\) 。

于是很容易想到,其实答案就是前面一串相同的加上后面的等差数列,重点是如何求前面一串相同不满意度的个数

这个其实比较容易想,就是 $\lfloor \frac{t}{x}\rfloor $ ,参赛的时间除以间隔,想一想其实就是在自己参赛的这段时间内有多少人开始了比赛。

又因为最后一个人的不满意度肯定为 \(0\) ,肯定能和前面形成一串长度未知的递减数列(如果不能,那其实就是所有人的不满意度肯定为 \(0\) 了,这种情况不影响我们的讨论)。

这个数列的长度是多少呢?他肯定会一直递增到一个人的参赛时间内最多有多少人开始比赛的数量,也及时我们的 $\lfloor \frac{t}{x}\rfloor $ ,最后我们只需要注意一个地方,就是可能人数不够,只需要在该长度和 \(n\) 之间取最小值就行了。

既然我们已经知道了这里的长度 \(l\) ,前面一连串相等值的长度就是 \(n-l\) ,加起来就完了。

CODE

#include <bits/stdc++.h>
#define int long long
using namespace std;
inline int read()
{
int s=0,w=1;
char ch=getchar();
while(ch<'0'||ch>'9') { if(ch=='-') w*=-1; ch=getchar(); }
while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
return s*w;
}
int k,n,x,t;
signed main()
{
k=read();
while(k--){
n=read(),x=read(),t=read();
int temp=min(t/x,n-1);
int ans=(n-temp)*temp;
temp--;
ans+=(1+temp)*temp/2;
printf("%lld\n",ans);
}
return 0;
}

CF1539A Contest Start[题解]的更多相关文章

  1. AtCoder Beginner Contest 154 题解

    人生第一场 AtCoder,纪念一下 话说年后的 AtCoder 比赛怎么这么少啊(大雾 AtCoder Beginner Contest 154 题解 A - Remaining Balls We ...

  2. AtCoder Beginner Contest 153 题解

    目录 AtCoder Beginner Contest 153 题解 A - Serval vs Monster 题意 做法 程序 B - Common Raccoon vs Monster 题意 做 ...

  3. AtCoder Beginner Contest 177 题解

    AtCoder Beginner Contest 177 题解 目录 AtCoder Beginner Contest 177 题解 A - Don't be late B - Substring C ...

  4. AtCoder Beginner Contest 184 题解

    AtCoder Beginner Contest 184 题解 目录 AtCoder Beginner Contest 184 题解 A - Determinant B - Quizzes C - S ...

  5. M-SOLUTIONS Programming Contest 2020 题解

    M-SOLUTIONS Programming Contest 2020 题解 目录 M-SOLUTIONS Programming Contest 2020 题解 A - Kyu in AtCode ...

  6. AtCoder Beginner Contest 173 题解

    AtCoder Beginner Contest 173 题解 目录 AtCoder Beginner Contest 173 题解 A - Payment B - Judge Status Summ ...

  7. AtCoder Beginner Contest 172 题解

    AtCoder Beginner Contest 172 题解 目录 AtCoder Beginner Contest 172 题解 A - Calc B - Minor Change C - Tsu ...

  8. AtCoder Beginner Contest 169 题解

    AtCoder Beginner Contest 169 题解 这场比赛比较简单,证明我没有咕咕咕的时候到了! A - Multiplication 1 没什么好说的,直接读入两个数输出乘积就好了. ...

  9. AtCoder Beginner Contest 148 题解

    目录 AtCoder Beginner Contest 148 题解 前言 A - Round One 题意 做法 程序 B - Strings with the Same Length 题意 做法 ...

随机推荐

  1. Java List去重以及效率分析

    List去重无非几种方法: 下面文章提供的两种: https://blog.csdn.net/u012156163/article/details/78338574, 以及使用List.stream. ...

  2. gasshopper之python电池输出dict结构

    问题:gh 直接用 panel 是无法直接输出字典结构的 故需要用 zip() 函数将字典的keys()  values() 组成一个元组,可以直接输出: 实例: dict = {} for i in ...

  3. (转)修改python默认排序方式

    在Java中,自定义类可以通过继承comparable接口,重写compareTo方法来使用内置sort()函数来对自定义对象排序,我就在想Python中有没有类似的操作. 首先随便写个自定义类,比如 ...

  4. 安全利器 — SELinux

    在 Linux 系统中一切皆文件,资源也属于某种文件.用户在访问文件的时候,系统对权限(读.写 .执行)进行检查.只要用户对文件有足够的权限,就可以任意操作资源.root 用户对所有资源拥有所有权限, ...

  5. 向Relay添加算子

    向Relay添加算子 为了在Relay IR中使用TVM算子,需要在Relay中注册算子,以确保将其集成到Relay的类型系统中. 注册算子需要三个步骤: 使用RELAY_REGISTER_OPC + ...

  6. CSS 常见问题笔记

    CSS 常见问题 布局 一.盒模型宽度计算 问题:div1 的 offsetWidth 是多少? <style> #div1 { width: 100px; padding: 10px; ...

  7. JUC 并发编程--09, 阻塞队列: DelayQueue, PriorityBlockingQueue ,SynchronousQueue, 定时任务线程池: ScheduledThreadPoolExecutor

    先看DelayQueue 这个是用优先级队列实现的无界限的延迟队列,直接上代码: /** * 这个是 {@link DelayQueue} 延时队列 的验证使用类 */ class MyDelayed ...

  8. 聊聊推荐系统,FM模型效果好在哪里?

    本文始发于公众号:Coder梁 大家好,我们今天继续来聊聊推荐系统. 在上一回当中我们讨论了LR模型对于推荐系统的应用,以及它为什么适合推荐系统,并且对它的优点以及缺点进行了分析.最后我们得出了结论, ...

  9. 痞子衡嵌入式:Keil在线调试时设不同复位类型可能会导致i.MXRT下调试现象不一致(J-Link/DAPLink)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是Keil在线调试时设不同复位类型可能会导致i.MXRT下调试现象不一致. 本篇是 <IAR EWARM复位类型>.<M ...

  10. 第三节:Redis缓存雪崩、击穿、穿透、双写一致性、并发竞争、热点key重建优化、BigKey的优化 等解决方案

    一. 缓存雪崩 1. 含义 同一时刻,大量的缓存同时过期失效. 2. 产生原因和后果 (1). 原因:由于开发人员经验不足或失误,大量热点缓存设置了统一的过期时间. (2). 产生后果:恰逢秒杀高峰, ...