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

P1281 [CERC1998] 书的复制

目录

题目描述

输入格式

输出格式

输入输出样例

说明/提示

题目思路

不会的看代码


题目描述

现在要把 m 本有顺序的书分给 k 个人复制(抄写),每一个人的抄写速度都一样,一本书不允许给两个(或以上)的人抄写,分给每一个人的书,必须是连续的,比如不能把第一、第三、第四本书给同一个人抄写。

现在请你设计一种方案,使得复制时间最短。复制时间为抄写页数最多的人用去的时间。

输入格式

第一行两个整数 m,k。

第二行 m 个整数,第 i 个整数表示第 i 本书的页数。

输出格式

共 k 行,每行两个整数,第 i 行表示第 i 个人抄写的书的起始编号和终止编号。 k 行的起始编号应该从小到大排列,如果有多解,则尽可能让前面的人少抄写。

输入输出样例

输入 #1

9 3
1 2 3 4 5 6 7 8 9

输出 #1

1 5
6 7
8 9

说明/提示

1≤k≤m≤500。

题目思路

用二分先枚举每个人的最少用去的时间,再去用数组读取输出。

不会的看代码

#include <bits/stdc++.h>
#define int long long
using namespace std;
int n,m,i,a[200010],sum,t,w,bao,mid,b[200010],c[200100],ma,xp[200010],yp[200010],x,s,p;
bool pd(int x){int p=1,s=0;for(i=n;i>=1;i--){//从大到小 if(s+a[i]<=x){s+=a[i];}//如果符合条件(也就是小于最小时间)就让s加上当前时间。 else if(a[i]<=x)s=a[i],p++; //特判如果a[i]比x大的情况,当然数据水,删去 也能过 }return p<=m;//判断需要的人数是否满足小于m的条件。 
}
main(){ios::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);cin>>n>>m;memset(a,0x3f,sizeof(a));for(i=1;i<=n;i++)cin>>a[i],sum+=a[i],ma=max(ma,a[i]);//sum,ma 来确定头尾 t=ma;w=sum; while(t<=w){//二分答案,答案是最小时间 mid=(t+w)>>1;if(pd(mid))w=mid-1,bao=mid;//bao来判断最优解 else t=mid+1;}p=1;x=bao;//p是第一个,bao是最优解。 for(i=n;i>=1;i--){if(s+a[i]<=x){s+=a[i];}else if(a[i]<=x)s=a[i],xp[p]=i+1,yp[++p]=i; //用数组来输出yp是上一个的末尾位置,xp是当前这个起始位置。 }xp[p]=1;yp[1]=n;//特判 for(i=m;i>=1;i--)cout<<xp[i]<<" "<<yp[i]<<"\n";//输出 
}

http://www.dtcms.com/a/331837.html

相关文章:

  • 跨域及解决方案
  • Product Hunt 每日热榜 | 2025-08-14
  • httpx 设置速率控制 limit 时需要注意 timeout 包含 pool 中等待时间
  • Effective C++ 条款40:明智而审慎地使用多重继承
  • 20道Vue框架相关前端面试题及答案
  • Uniapp 中 uni.request 的二次封装
  • stm32f103rct6开发板引脚图
  • 芯伯乐1MHz高频低功耗运放芯片MCP6001/2/4系列,微安级功耗精密信号处理
  • UML函数原型中stereotype的含义,有啥用?
  • 打靶日常-CSRF
  • 中国车企全球化数字转型标杆案例:SAP系统多项目整合升级实践
  • 考研408《计算机组成原理》复习笔记,第五章(2)——CPU指令执行过程
  • Day 11: 预训练语言模型基础 - 理论精华到实战应用的完整指南
  • k8s+isulad 网络问题
  • 【奔跑吧!Linux 内核(第二版)】第7章:系统调用的概念
  • 基本电子元件:电阻器
  • 读书笔记:《我看见的世界》
  • 日志系统(log4cpp)
  • 主进程如何将客户端连接分配到房间进程
  • Android UI(一)登录注册 - Compose
  • 基于Python和Dify的成本对账系统开发
  • OpenCV Canny 边缘检测
  • 软考中级【网络工程师】第6版教材 第3章 局域网 (上)
  • Linux中tty与8250-uart的虐恋(包括双中断发送接收机制)
  • Linux中Samba服务配置与使用指南
  • YouBallin正式上线:用Web3重塑创作者经济
  • 会议通信系统核心流程详解(底稿1)
  • JVM的逃逸分析深入学习
  • 17.2 修改购物车商品
  • RLVR(可验证奖励的强化学习):大模型后训练的客观评估策略