当前位置: 首页 > news >正文

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

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


题目地址

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

我们这个题目还要求算出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;
}

http://www.mrgr.cn/news/15708.html

相关文章:

  • 【WiFi协议的发展学习1】
  • linux下cpu多核运行程序以及运行时间统计
  • 【复杂系统系列(初级)】自动调节动态平衡模型——生物体的稳态机制
  • 【HTML】使用过程中的随记
  • 关于springboot的Rest请求映射处理的源码分析(二)
  • 构建智慧人才档案,驱动未来发展新引擎 —— 解锁人才管理新篇章
  • 【C++类和对象】拷贝构造、运算符重载以及日期类的实现
  • pdf转dwg怎么转换?5个软件教你轻松转换文件
  • 投屏软件哪个好用又免费?4款投屏软件,远程且兼容多平台!
  • 矩阵性质简介
  • C#如何查看/写入日志到Windows事件查看器
  • 国产系统-共享文件夹
  • 关于Scrapy的那些事儿(四)Scrapy Shell
  • 集成电路学习:什么是ARM先进精简指令集计算机
  • 石油设备和相关机械都包涵那些?
  • 你知道吗?这些plm项目管理系统大厂项目经理都在用!
  • Crypto City盛夏狂欢:Hotcoin推出15,000 USDT迎新礼
  • 【GeoScenePortal】安装和部署
  • C# opencv识别二维码
  • 从挫败到精通:三步克服编程学习的难关