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. Runtime PM 处理不当导致的 external abort on non-linefetch 案例分享

    硬件平台:某ARM SoC 软件平台:Linux 1 Runtime PM 简介 在介绍 Runtime PM 之前,不妨先看看传统的电源管理.传统的电源管理机制,称之为 System PM(Syst ...

  2. springboot整合JDBC出现Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'.

    今天使用springboot整合JDBC的使用,开始使用的是 com.mysql.jdbc.Driver驱动 结果运行出现此异常 那我们根据提示要求来修改即可 把驱动改成最新的com.mysql.cj ...

  3. 循环IRNNv2Layer实现

    循环IRNNv2Layer实现 IRNNv2Layer实现循环层,例如循环神经网络(RNN),门控循环单元(GRU)和长期短期记忆(LSTM).支持的类型为RNN,GRU和LSTM.它执行循环操作,该 ...

  4. 重新整理 .net core 实践篇—————日志系统之作用域[十七]

    前言 前面介绍了服务与日志之间的配置,那么我们服务会遇到下面的场景会被遇到一些打log的问题. 前面我提及到我们的log,其实是在一个队列里面,而我们的请求是在并发的,多个用户同时发送请求这个时候我们 ...

  5. mybatis学习——properties属性实现引用配置文件

    Mybatis核心配置文件中有很多的配置项,配置文档的顶层结构如下: *注意:配置项的顺序不能颠倒,如果颠倒了它们的顺序,在MyBatis的自启动阶段会发生异常,导致程序无法运行. propertie ...

  6. 可微渲染 SoftRas 实践

    SoftRas 是目前主流三角网格可微渲染器之一. 可微渲染通过计算渲染过程的导数,使得从单张图片学习三维结构逐渐成为现实.可微渲染目前被广泛地应用于三维重建,特别是人体重建.人脸重建和三维属性估计等 ...

  7. VisualStudio自动添加注释

    1.VisualStudio  新开页自动添加注释 a 在团队开发或者公司开发中,我们一般都喜欢给自己所创建的类或者接口以及其它模板设置版权说明,但是每个类一个一个的去加又是非常的费劲,所以一般情况下 ...

  8. 【题解】Luogu P3123 [USACO15OPEN]贝茜说哞Bessie Goes Moo

    Luogu P3123 [USACO15OPEN]贝茜说哞Bessie Goes Moo 题目描述 Farmer John and Bessie the cow love to exchange ma ...

  9. 【题解】斐波拉契 luogu3938

    题目 题目描述 小 C 养了一些很可爱的兔子. 有一天,小 C 突然发现兔子们都是严格按照伟大的数学家斐波那契提出的模型来进行 繁衍:一对兔子从出生后第二个月起,每个月刚开始的时候都会产下一对小兔子. ...

  10. ORA-01157:cannot identify/lock data file 6 - see DBWR trace file ORA-01110:data file 6:'/u01/app/oracle/oradata/PRDO2/sysaux02.dbf'