2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 【杭电多校第七场1006=HDU6651】Final Exam(思维转换)

【杭电多校第七场1006=HDU6651】Final Exam(思维转换)

时间:2022-08-07 07:37:21

相关推荐

【杭电多校第七场1006=HDU6651】Final Exam(思维转换)

题目地址:http://acm./showproblem.php?pid=6651

题目:

n个问题,每个问题的分数都是整数,范围在【0,m】,若某个问题的分数是x, 那么要花x+1个小时准备才能解决这个问题。

问:若至少要解决k个问题,最少需要准备多少个小时?

解题思路:

如果不能解决k个问题,最好的情况是能解决k-1个问题,剩下n-k+1个问题是无法解决的,最惨的情况是这n-k+1个问题每个问题的分数和准备的时间相同。因为在准备的时候不知道每个题目对应的分数,那么为了能够把k-1个问题都解出来,每个问题的准备时间都是(毕竟能解出k-1道,这时可以想成k-1道是白给你的,题目占分没啥意义)。若想解出k个问题,必须在剩下的n-k+1个问题中保证能解出来一个问题,那么准备的时间最小为m+1。

最终答案:

ac代码:

#include <bits/stdc++.h>using namespace std;typedef unsigned long long ll;int main(){//freopen("/Users/zhangkanqi/Desktop/11.txt","r",stdin);ll t, n, m, k;scanf("%lld", &t);while(t--){scanf("%lld %lld %lld", &n, &m, &k);ll ans = (m / (n - k + 1) + 1) * (k - 1) + m + 1;printf("%lld\n", ans);}return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。