欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 明星 > 模拟+思维(时间规划烧饼)

模拟+思维(时间规划烧饼)

2025/2/23 15:17:57 来源:https://blog.csdn.net/wniuniu_/article/details/141721175  浏览:    关键词:模拟+思维(时间规划烧饼)

前言:这个题目就是我们小时候学的的活动规划烧饼,我们要先算出我们最大耗时是多少,然后再对我们的活动进行规划


题目地址

在这里插入图片描述
在这里插入图片描述

我们这个题目还要求算出k(执行次数)我的做法是写两遍代码,其实也可以存起来,因为最大操作次数为 2n

#include<bits/stdc++.h>
using namespace std;#define ll long long
#define endl "\n"const int N = (int)1e5 + 10;
int n, m;
ll a[N];int main() {cin >> n >> m;ll limi = 0;ll sum = 0;for (int i = 1; i <= n; i++) {cin >> a[i]; limi = max(limi, a[i]);sum += a[i];}// 限制好一个limi ll t = (sum % m) ? sum / m + 1 : sum / m;limi = max(limi, t);int l = 0, cnt = 1;ll k = 0;for (int i = 1; i <= n; i++) {if (l + a[i] >= limi) {//cout << i << " " << cnt << " " << l << " " << limi << endl;k++;l = (l + a[i]) % limi; cnt++;if (l) {//cout << i << " " << cnt << " " << 0 << " " << l << endl;k++;}}else {//cout << i << " " << cnt << " " << l << " " << l + a[i] << endl;l += a[i];k++;}}cout << k << endl;l = 0, cnt = 1;for (int i = 1; i <= n; i++) {if (l + a[i] >= limi) {cout << i << " " << cnt << " " << l << " " << limi << endl;l = (l + a[i]) % limi; cnt++;if (l) {cout << i << " " << cnt << " " << 0 << " " << l << endl;}}else {cout << i << " " << cnt << " " << l << " " << l+a[i] << endl;l += a[i];}}return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词