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;
}


 

 

UNet改进(12):融合小波变换与注意力机制的图像分割新方法 本文提出了一种改进的WaveletAttentionUNet架构,通过结合小波变换和注意力机制来增强传统UNet的多尺度特征提取能力。该网络使用分组卷积模拟小波分解,将输入通道扩展为4个子带(LL、LH、HL、HH),并通过通道注意力机制自适应加权各子带特征。网络保留了UNet的编码器-解码器结构,在关键位置集成了WaveletAttention模块。实验证明该方法在医学图像分割等任务中能更好地保持边缘细节和复杂纹理特征,同时保持计算效率。 阅读详情

相关推荐

【点云语义分割】Ubuntu20.04下RangeNet++环境配置与实战指南

本文详细介绍了在Ubuntu20.04系统下配置和运行RangeNet++点云语义分割模型的完整实战指南。内容涵盖从Cuda、cudnn到TensorRT的深度学习环境搭建,RangeNet++源码编译的详细步骤与常见问题解决,以及如何运行首个分割Demo并可视化结果。最后,还探讨了处理自定义点云数据格式和进行性能调优的进阶技巧,旨在帮助开发者和研究者快速部署并应用这一先进的点云语义分割技术。

rnn9storyteller的博客 516

POJ 1505:二分枚举+贪心

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

陈满的专栏 1559

Argoverse轨迹预测实战:从数据加载到地图API应用全解析

本文详细解析了Argoverse数据集在轨迹预测中的应用,从数据加载到地图API的实战技巧全涵盖。通过具体代码示例展示如何高效处理轨迹数据、实现可视化及基础预测模型,帮助开发者快速掌握自动驾驶轨迹预测的核心技术。特别介绍了Argoverse地图API的深度应用和性能优化经验。

weixin_29182481的博客 241

POJ 1505(二分+贪心)

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

hexianhao的博客 721

POWER SI仿真流程

一、打开软件Power SI二、加载PCB,可以直接使用brd文件,不用再进行格式转换三、check Stackup,与原来的PCB叠层对照一遍,检查数据加载后有没有出错。四、select Nets,加载brd文件后,可能所有的网络都处于使用状态,先在右侧net manager下面右键disable all nets,再使能需要仿真的电源网络(如果要仿真的网络没有归属到电源网络,在其上右键,选classfy as power \ground nets)

lx5213的博客 1320

产品经理必备知识——API接口

在古代,我们的传输信息的方式有很多,比如写信、飞鸽传书,以及在战争中使用的烽烟,才有了著名的烽火戏诸侯,但这些方式传输信息的效率终究还是无法满足高速发展的社会需要。如果你选择允许,app就会根据你的当前位置为你提供更加个性化的一些服务,当然也有一些app拿到你的位置信息做出损害用户利益的行为,所以还是需要谨慎授权。首先,看接口文档的场景一般是自身业务模块需要获取外部的数据,但又不想自己重新开发,寻找外部已经实现的有开放能力的供应商(包含企业内部的)。通过发送请求和响应消息的方式实现程序间的通信。

WBKJ_Noah_的博客 3455

poj(1505)——Copying Books

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

ACM_hades的梦想之路 936

KF-gins输出结果绘图

KF-gins输出结果绘图

m0_51977577的博客 1107

【poj 1505】 Copying Books

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

yhf_2015 572

BMS硬件设计要点:从STM32主控到BQ76920监控芯片的工程实践

电池管理系统(BMS)是锂电安全与寿命保障的核心,其硬件设计涉及微控制器选型、专用监控芯片接口、电源完整性、信号完整性及PCB布局等多维度协同。基于STM32与BQ76920的典型双层架构,需深入理解功能安全解耦原理——关键保护由ASIC硬件实现,算法决策交由MCU完成,契合ASIL-B等级要求。技术价值体现在毫秒级硬件保护响应、±10mV电压采样精度及抗EMI鲁棒性设计;广泛应用于电动工具、储能系统与轻型电动车等中高功率场景。本文聚焦BMS控制板硬件实现中的高频时钟EMC、I²C总线信号完整性、被动均衡可

weixin_30591519的博客 92

【数据分析八步法】将模糊需求转化为可验证的分析问题

国内访问Huggingface官方源常遇网络问题,可通过切换国内镜像提升下载速度。三种配置方式:1)设置HF_ENDPOINT环境变量;2)在from_pretrained中直接指定镜像参数;3)修改本地Huggingface配置文件。常用镜像包括hf-mirror.com、阿里云ModelScope和清华镜像源。注意镜像同步延迟、私有模型限制,建议配合huggingface-cli工具使用,必要时取消代理设置。合理配置镜像源可显著改善Huggingface生态使用体验。

Mr数据杨 858

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

STM32 USB键盘实现指南

在STM32上实现键盘功能可以通过USB HID(人机接口设备)协议来实现,使STM32设备能被计算机识别为标准键盘。通过上述步骤,您可以在STM32上实现一个功能完整的USB键盘。关键点包括:正确配置USB HID设备实现键盘矩阵扫描处理按键事件并生成HID报告优化按键响应和消抖处理添加额外功能如宏键和LED反馈这个实现可以作为基础,进一步扩展为游戏键盘、宏键盘或特殊输入设备。

suny8的专栏 969

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

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

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

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【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

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

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、付费专栏及课程。

余额充值