问题描述
- 给出每个人的开始时间和持续时间,要求不满意度。
- 不满意度的产生就是这个人的结束时间比后面多少个人的开始时间晚。
思路分析
- 我们直接找规律,第i个人结束时间为t+x×(i−1)t + x \times (i - 1)t+x×(i−1)
- 见下图

代码如下
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int main()
{
int k;
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> k;
ll n, x, t;
while (k--)
{
cin >> n >> x >> t;
ll z = t / x;
if (n < z)
cout << (n - 1) * n / 2 << endl;
else
{
ll l = (n - z) * z;
ll r = (z - 1) * z / 2;
cout << l + r
<< endl;
}
}
return 0;
}
本文介绍了一种计算基于每个人的任务开始时间和持续时间所导致的不满意度的算法。不满意度由一个人任务结束时间与后续任务开始时间的关系决定。文章提供了一个C++实现示例,通过数学推导简化了计算过程。
953

被折叠的 条评论
为什么被折叠?



