poj 1505 copying Books 动态规划 -- 后续处理要细心~

Copying Books 题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2002 大致意思:划线员要抄N本书,编号为1,2,3…N, 每本书有1<=x<=10000000页, 把这些书分配给K个抄写员,要求分配给某个抄写员的那些书的编号必须是连续的。每个抄写员的速度是相同的,并且每个划线员必须至少分配一本书。求所有书抄完所用的... 阅读详情

历经不足两天,接近两天,哥终于 A 了你!

题意 : 假设有M本书(编号为1,2,…,M),想将每本复制一份,M本书的页数可能不同(分别是a1,a2,…,aM)。

          任务时将这M本书分给K 个抄写员(K≤M〉,每本书只能分配给一个抄写员进行复制,而每个抄写员所分配到的书必须是连续顺序的。

          要求复制总时间最短, 该如何分配抄写。

用 DP 做的,DP 还算不难,后续的处理挺繁琐。对于我等水平来说,不容易 !

// 方程 : dp[i][j] = min(dp[i][j], max(dp[i-1][v], sum[j]-sum[v])) i 个人 抄写 前j 本书 --> 数据 :  2 7 3 3 5 输出 :2 7 / 3 / 3 5

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <string>

using namespace std;
const int N = 510;
const int INF = 0x7fffffff;
int dp[N][N]; // 方程 : dp[i][j] = min(dp[i][j], max(dp[i-1][v], sum[j]-sum[v])) i 个人 抄写 前j 本书
int sum[N];
int a[N];
int path[N];

int main() {
    int T, m, k, i, j, v;// tmp;
    scanf("%d", &T);
    while(T--) {
        scanf("%d%d", &m, &k);
        for(i = 0; i <= k; i++) {
            for(j = 0; j <= m; j++) {
                dp[i][j] = INF;
            }
        }
        memset(sum, 0, sizeof(sum));
        for(i = 1; i <= m; i++) { /// 书的页数
            scanf("%d", &a[i]);
            sum[i] += (sum[i-1] + a[i]);
            dp[1][i] = sum[i];
        }
        for(i = 2; i <= k; i++) {
            for(j = i; j <= m; j++) {
                for(v = i-1; v <= j; v++) {
                    dp[i][j] = min(dp[i][j], max(dp[i-1][v], sum[j]-sum[v]));
                }
            }
        }
        int ans = dp[k][m];
        int t_sum = 0;
        for(i = m, j = k-1; i >= 1; i--){
            t_sum += a[i];
            if(t_sum > ans || i <= j){
                path[j--] = i+1; // 3 4 5
                t_sum = a[i];
            }
        }
        for(i=j=1; i <= m; i++){
            if(i > 1) printf(" ");
            if(j < k && path[j] == i){
                printf("/ ");
                j++;
            }
            printf("%d", a[i]);
        }
        printf("\n");
    }
    system("pause");
    return 0;
}


 

 

TensorRT-LLM.V1.1.0rc0:在无 GitHub 访问权限的服务器上编译 TensorRT-LLM 的完整实践 1.NGC上的预构建发布容器进行部署,见《2.通过pip进行部署。3.从源头构建再部署。在实际开发中,我们常常面临这样的场景:本地笔记本为 Windows 系统,虽然可以访问 GitHub,但受限于硬件性能,编译大型项目(如 TensorRT-LLM)耗时过长;而公司或实验室提供的 Linux 服务器性能强劲,适合编译任务,但却因网络策略限制无法连接外网,尤其是无法访问 GitHub。。 阅读详情

相关推荐

Comsol单层焊缝焊接数值模拟:温度场与应力场全流程解析

在工程制造领域,有限元模拟是研究焊接热-力行为、优化工艺参数的重要工具。焊接过程涉及强烈的局部加热和快速冷却,材料经历复杂的非线性和相变,必须通过瞬态分析和热-力顺序耦合,才能准确捕捉移动热源作用下的温度演化与应力塑性积累。这一技术广泛应用于压力容器、船舶结构、车辆制造等场景,用以预测残余应力与变形、评估冷裂纹风险,并为工艺设计提供定量支撑。焊接数值模拟能否真正指导实践,关键在于热源校核、随温度变化的材料参数、合理的边界条件与网格策略。单层焊缝作为焊接模拟的基础模型,涵盖了移动热源加载、熔池形成、高温软化与

weixin_30444111的博客 221

POJ 1505:二分枚举+贪心

POJ 1505:二分枚举+贪心 二分枚举解空间+贪心判断解可行性的方法,适合很多形如求解Min{Max{…}}、Max{Min{…}}且具有单调性的问题。像:POJ 1505 Copying Books 求:分配方案,使最后完成的时间最短。POJ 1771 Elevator Stopping Plan 求:电梯停靠策略,使最后一个到达办公室的时间最短。…还有今年ICPC world final的

陈满的专栏 1559

向量数据库:PGVector

PGVector 是一个基于 PostgreSQL 的扩展插件,为用户提供了一套强大的向量存储和查询的功能

m0_37559973的博客 1万+

POJ 1505(二分+贪心)

题意:给一些书,这些书有不同的页数,让把这些书分成k份,必须是连续的,问这些份中页数和的最大值最小是多少。 解题思路:知道了页数和的范围,而且书都是连续的,要找到页数和最大值的最小值可以直接二分答案。。 AC: #include #include #include using namespace std; const int MAXM = 505; int m,k; int book[MA

hexianhao的博客 721

【影像组学入门百问】1#---#3

理论上讲三大主流平台Windows, Linux和MacOS均可进行影像组学研究。根据笔者实际经验,如果内存不足可能导致软件罢工,其余显示、GPU等均非必要。显示:最小分辨率为1024×768(推荐为1280×1024或更好)。Slicer中的许多计算都是多线程的,并且将受益于多核,多CPU配置。计算机需要足够的内存和图形功能将原始数据和处理结果保存在其内存中。如涉及深度学习等方法的研究需根据实际需求配置电脑,无法一概而论。接口设备:推荐使用带滚轮的三键鼠标。内存:超过4GB(推荐8G以上)。

weixin_38594676的博客 1484

如何用DETR(detection transformer)训练自己的数据集

DETR(detection transformer)简介 DETR是Facebook AI的研究者提出的Transformer的视觉版本,是CNN和transformer的融合,实现了端到端的预测,主要用于目标检测和全景分割。 DETR的Github地址:link

weixin_50233398的博客 3万+

poj(1505)——Copying Books

这是一道关于求最大值最小化的问题。 虽然卡了不少时间,但是最后还是完全凭借自己的力量A的呢!yep~ 题意: 现在有m本书,然后每本书有不同的页数,然后现在有k名员工,你可以把m本书划分给k名员工,也就是相当于把m划分成k个序列,你的任务是使所有的k个序列中的最大值尽量小。并输出划分情况。 当有多种划分情况时,必须保证第一个人所工作量最少,然后依次第二个。。。 思路: 最大值最小化的问

ACM_hades的梦想之路 936

Tessy单元测试软件安装与破解避坑指南(附个人使用路径设置详解)

本文详细介绍了Tessy单元测试软件的安装与配置全流程,包括系统需求、服务器连接设置、环境变量配置等关键步骤,帮助开发者避开常见陷阱。特别提供了个人使用路径设置详解,确保Tessy在嵌入式开发环境中高效运行,适用于汽车电子、工业控制等领域。

weixin_33709364的博客 344

【poj 1505】 Copying Books

题意:现在要把m本有顺序的书分给k个人复制(抄写),每一个人的抄写速度都一样,一本书不允许给两个(或以上)的人抄写,分给每一个人的书,必须是连续的,比如不能把第一、第三和第四本书给同一个人抄写。现在请你设计一种方案,使得复制时间最短。复制时间为抄写页数最多的人用去的时间。如果有多组解的话先要保证第一个人抄的尽量少,若仍有多组解,要先保证第二个人抄的尽量少,以此类推。要注意一下,保证前面的尽量小,前面

yhf_2015 572

【DRAM存储器十五】DDR介绍-关键技术之DLL和prefetch

详述DDR DLL和预取原理以及几个DDR相对初代SDRAM新增的时序参数

highman110的博客 4365

ESP32-C3入门教程 环境篇③——VS Code IDE快速入门

文章目录一、安装Visual Studio Code二、安装扩展三、配置ESP-IDF 插件四、创建工程五、配置工程5.1 选择目标芯片5.2 项目配置六、编译工程七、固件分析七、固件下载八、串口日志九、单步调试 一、安装Visual Studio Code 下载并安装Visual Studio Code 二、安装扩展 左侧扩展 搜索espressif 点击安装 三、配置ESP-IDF 插件 按下F1按键 输入configure esp-idf extension EXPRESS,如果你

8304

POJ1505:Copying Books(区间DP)

Description Before the invention of book-printing, it was very hard to make a copy of a book. All the contents had to be re-written by hand by so called scribers. The scriber had been given a book an

ACM!荣耀之路! 2167

iStoreOS等软路由插件卸载的残留?分享一款软路由高级卸载工具,自定义卸载,轻松解决卸载残留问题

iStoreOS用户看过来!👀 还在被插件包残留困扰吗?本文分享一款“高级卸载”的插件,助你深度清理iStoreOS系统,彻底解决软件卸载不净的痛点,告别频繁恢复出厂设置的烦恼!🚀

XiaoqiangClub的博客 1541

poj 1505 Copying Books 动态规划

//poj 1505 //sep9 #include using namespace std; const int MAXN=512; int sum[MAXN],path[MAXN],dp[MAXN][MAXN]; int main() { int cases; scanf("%d",&cases); while(cases--){ int m,k; scanf("%d%d",

sepNINE的专栏 1108

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

poj 1505 Copying Books (dp+路径打印)

这样的状态变换还是第一次做,题意说:给你一个n长的递增的序列,要求分成k个序列,保证分成的序列最大的那部分和要最小。 状态方程: dp[i][j] 表示前j个元素分成i组对应序列最大部分的和最小。 dp[i][j] = min(dp[i][j], max(dp[i - 1][k], sum[j] - sum[k])); 分割的答应从后往前找,找到小于最有解的就停下记录,记录点作为输出'

ACM之梦 522

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

【POJ】1505 Copying Books

此题主要采用DP思路,难点是求解"/",需要考虑划分数量不够的情况,先采用DP求解最优解,然后采用贪心求解slash。防止中间结果出错,使用了unsigned int。 #include <iostream> using namespace std; #define MAXNUM 501 unsigned int pages[MAXNUM][MAXNUM]; ...

weixin_33805992的博客 164

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

poj 1505 or uva 714 copying books 二分法

题目大意:把一个包含m个正整数的序列分成k个(1= 方法:所有子序列之和肯定满足区间 [ 序列中最大的数,所有数之和 ] ,然后对这个区间进行二分,从右往左扫一遍序列,求得 AC代码: #include #include #include #include #include #include #include #include using namespace std; int m,k; in

meizhouyihei的专栏 498

Copying Books (二分法)

Copying Books Time Limit : 6000/3000ms (Java/Other)   Memory Limit : 20000/10000K (Java/Other) Total Submission(s) : 55   Accepted Submission(s) : 22 Problem Description Before the invention of b

sdau20163940的博客 1053

UVA 714 Copying Books

题意:按顺序给你N个数,将这N个数分成连续的M段,使得这M段每段的和中的最大值最小,输出最小值(1<=N<=100000,1<=M<=N,每个数在1到10000之间),如果有多种可能的话,尽量在前面进行划分。 思路: 1、由于函数具有单调性的特征,因此可以用二分枚举的办法去实现它,这与POJ3258有非常相似的地方,但这里不需要排序。 2、输出的时候需要用到贪心...

weixin_30830327的博客 138

poj1505(二分+贪心)

"最大值尽量小"是一种很常见的优化目标。 关乎于炒书。 题目见此: http://poj.org/problem?id=1505 我的copy的代码如下: #include<iostream> #include<cstdio> #include<cstring> using namespace std; int book[505]...

banteng7670的博客 439

poj 1505 Copying Books 二分

二分的时候左边的初始值弄错了,一直wa. 5 3 1 1 1 1 10 1 / 1 1 1 / 10 View Code #include <stdio.h>int m,n,k,a,ar[505];void solve(int mid){ int i,j,s=0; for (i=0;i<n;i++) { if(ar[i]+...

diaopi1575的博客 153

poj 1505 dp(数列分段,最大段和最小)

题意:给出一个有n个数的数列,要求把这n个数分成m段,不能改变原数列的顺序。每段至少一个数。求使得加和最大的那段的和最小的划分方案。如果有多组解的话先要保证第一段和尽量小,若仍有多组解,要先保证第二段和尽量小,以此类推。 思路:dp。dp[i][j]表示将前j个数分成i段的段和最大的最小值。一开始dp过程中记录路径然后输出,结果wa。分析原因在于输出不符合题意,比如数据: 5 3 1 1 1

dearmango 1387

【二分与三分03】Copying Books

题目来源: 题目大意: 将n本页数为p1,p2,……,pm(顺序排列)的书分给k个抄写员抄写,每个抄写员速度一样且每个抄写员只能抄写编号相邻的书,求抄写时间最少的分组。 解题思路: 二分法与贪心。 通过二分法求出一个抄写员最多需要抄写的页数,然后按照这个页数来分组,前面的组尽量分得多一点。 初始下界和上界是最后一本书的页数和所有书的总页数。 分组标记的时候

雄英通信站 374

Copying Books(最大化最小值问题)

点击打开链接 Problem Description Before the invention of book-printing, it was very hard to make a copy of a book. All the contents had to be re-written by hand by so called scribers. The scriber had be

877

POJ 1505 Copying Books

Copying Books Time Limit: 3000MS Memory Limit: 10000K Total Submissions: 10819 Accepted: 3349 Description Before the invention of book-printing, it was very hard to make a copy of a book. All the co...

日拱一卒,功不唐捐 2819

poj 1505 Copying Books

思路:先dp一下,求出最大值,然后从后往前贪心。

Cugb->Baoge 572
上一篇: poj 1323 Game Prediction (greedy 自己的习惯性思路~)
下一篇: hdu 2553 N皇后问题 (简单版_递归)
aclay
博客等级 码龄15年 37粉丝 177原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值