最小与最大

二分搜索——最小值最大化、最大值最小化 阅读详情

最小与最大


  • Description

做过了乘积最大这道题,相信这道题也难不倒你。
已知一个数串,可以在适当的位置加入乘号(设加了k个,当然也可不加,即分成k+1个部分),设这k+1个部分的乘积(如果k=0,则乘积即为原数串的值)对m 的余数(即mod m)为x;
现求x能达到的最小值及该情况下k的最小值,以及x能达到的最大值及该情况下的k的最小值(可以存在x的最小值与最大值相同的情况)。

  • Input Format

第一行为数串,长度为n 满足2<=n<=1000,且数串中不存在0;
第二行为m,满足2<=m<=50。

  • Output Format

四个数,分别为x的最小值 和 该情况下的k,以及x的最大值和 该情况下的k,中间用空格隔开。

  • Sample Input

4421
22

  • Sample Output

0 1 21 0


  • 分析

一开始想的是用F[i][j][k]记录到第i个数字,放了j个乘号,得到k是否可行。
后来仔细一想,可以把其中一维当成F记录的信息,即F[i][k]记录到第i个数字得到k用了多少乘号。我们枚举j假设从j+1到i为一个数(A[i][j]表示i到j这段数是多少),然后转移方程为F[i][(k*A[j+1][i])%m]=min(F[i][(k*A[j+1][i])%m],F[j][k]+1)。初始化F[i][A[0][i]]=0,其他为无穷大。


#include <queue>
#include <stack>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int m,A[1003][1003],F[1003][51];
char s[1003];
int main(){
    freopen("in.txt","r",stdin);
    freopen("out.txt","w",stdout);
    scanf("%s",s); scanf("%d",&m);
    int n=strlen(s);
    for (int i=0;i<n;i++)
        for (int j=i;j<n;j++) A[i][j]=(A[i][j-1]*10+s[j]-'0')%m;
    memset(F,127/2,sizeof(F));
    for (int i=0;i<n;i++) F[i][A[0][i]]=0;
    for (int i=0;i<n;i++){
        for (int j=0;j<i;j++){
            for (int k=0;k<m;k++){
                F[i][(k*A[j+1][i])%m]=min(F[i][(k*A[j+1][i])%m],F[j][k]+1);
            }
        }
    }
    for (int i=0;i<m;i++)
        if (F[n-1][i]<1005){
            printf("%d %d ",i,F[n-1][i]);
            break;
        }
    for (int i=m-1;i>=0;i--)
        if (F[n-1][i]<1005){
            printf("%d %d",i,F[n-1][i]);
            break;
        }
    fclose(stdin); fclose(stdout);
    return 0;
}
最大化最小值/ 最小化最大值问题 最大化最小值/ 最小化最大值问题 基本题型: 给定n个整数序列,将其划分为m个连续子序列,求这m个子序列的和的最大化最小值 或者最小化最大值问题。 解题思路: 二分法 具体过程: 根据题意,确定二分的上界与下界(一般为子序列和的可能取值、元素差值等)(有利于加快速度) 确定二分中的分块条件,根据该条件与当前界限,对数组进行分块 根据当前二分的块数调整上下界 // leetcode 410. 分割数组的最大值 // 题意:将数组分成m个非空连续子数组,使得这m个子数组各自和的最大值最小 ==== 最小化 阅读详情

相关推荐

【最小边覆盖 & 最小路径覆盖 & 最小顶点覆盖 & 最大独立集 & 最大团】

最小边覆盖 = 最大独立集 = |V| - 最大匹配数 这个是在原图是二分图上进行的 最小路径覆盖和最小边覆盖不同,不要求给的图是二分图,而是要求是N x N的有向图,不能有环,然后根据原图构造二分图,构造方法是将点一分为二,如,i分为i1和i2然后如果i和j有边,那么就在i1和j2之间连一条边。由此构成二分图 然后最小路径覆盖 = n-m,n为原图的点的个数,m为新造二分图

leolin_的专栏 1万+

dp-最大乘积

第一行输入M表示包含M组测试数据,每组输入有一行包含两个自然数N,K(6≤N≤40,1≤K≤6),以及一个长度为N的数字串。设有一个长度为N的数字串,要求选手使用K个乘号将它分成K+1个部分,找出一种分法,使得这K+1个部分的乘积能够为最大。对于每组输入数据,输出所求得的最大乘积(一个自然数),每组一行。现在,请你帮助你的好朋友XZ设计一个程序,求得正确的答案。这时,符合题目要求的结果是:31*2=62。

yunfeng 644

最大最小差值

题目 有n个数,两两组成二元组,相差最小的有多少对呢?相差最大呢? 输入 6 45 12 45 32 5 6 输入包含多组测试数据。对于每组测试数据: N - 本组测试数据有n个数 a1,a2...an - 需要计算的数据 保证: 1<=N<=100000,0<=ai<=INT_MAX. 输出 1 2 (第一个数表示差最小的对数,第二个数表示差最大的对数) ...

qq_41074047的博客 1256

【普及组_在线赛】最小与最大

【普及组_在线赛】最小与最大 描述 题目描述 做过了乘积最大这道题,相信这道题也难不倒你。 已知一个数串,可以...

weixin_30952103的博客 148

C++之最小堆、最大堆

#include<queue> #include<vector> std::priority_queue<int> big_heap; // 构造一个默认最大堆 std::priority_queue<int, std::vector<int>, std::greater<int> > small_heap; //构造一个...

weixin_42105432的博客 4149

求序列的最大最小值

单求最大或最小值需要遍历整个序列,复杂度O(n)。 当同时求最大和最小值时,可以将序列的每一对相邻元素先做比较,然后与当前的最大值最小值进行比较,来决定是否更新。这样每两个元素之间需要3次比较。 代码如下: // maxmin.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include #include #include

u011575841的专栏 3493

2019中山纪念中学夏令营-Day4[JZOJ]

Begin (题目的排序方式:难易程度) 什么是对拍: 对拍是一种在写完程序后,验证自己程序是不是正解的比较方便的方法. 实现过程: 对同一道题,再打一个暴力程序,然后用一些大数据等跑暴力程序来进行验证,通过和自己写的程序的输出进行比较来查错。 2019.08.04【NOIP普及组】模拟赛C组 (就一道入门难度,其他就是1道普及+提高,2道提高+省选-。那还是人吗?普及模拟...

asc2243的博客 373

最大匹配、最小顶点覆盖、最大独立集、最小路径覆盖(转)

在讲述这两个算法之前,首先有几个概念需要明白: 二分图:  二分图又称二部图,是图论中的一种特殊模型。设G=(V,E)是一个无向图,如果顶点V可以分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A, j in B), 则称图G是二分图。  匹配:  给定一个二分图,在G的一个子图G’中,如果G’的边集中的任意两条边都不...

c3po 3707

这道题你能在几分钟内完成?

小巫师的专栏 2302

避开这些坑!RK3588安卓系统内置输入法的正确姿势(含.mk文件修改指南)

本文详细解析了在RK3588安卓系统定制中预置第三方输入法的完整流程与关键避坑指南。重点涵盖APK签名、Android.mk文件编写、系统默认输入法配置(使用adb ime list命令获取服务名)以及SeLinux策略适配等核心步骤,并指出RK3566/RK3568等兄弟平台的通用性与差异点,帮助开发者实现稳定、深度的系统集成。

tgb34567890的博客 437

Cadence Virtuoso里搞定斩波运放AC仿真:PSS+PAC保姆级设置避坑指南

然而,当工程师们尝试在Cadence Virtuoso环境中对这种特殊结构进行AC特性分析时,往往会遇到传统AC仿真方法失效的困境——这正是PSS(Periodic Steady-State)与PAC(Periodic AC)仿真组合大显身手的场景。实际项目中我们常采用"先快后精"的两步法:先用快速设置确认大体趋势,再针对关键频段进行精细仿真。例如某次设计迭代中,将harmonics从10增加到20后,发现在1MHz处的相位裕度估算误差达15°,这解释了之前样机测试时的振荡问题。

weixin_33508411的博客 452

最大化最小值和最小化最大值

最小化最大值是为了压制优化目标中表现最突出的成分,最大化最小值为了提升优化目标中表现最差的成分 关于这两者的理解,我觉得这篇博文讲得非常好,浅显易懂又联系实际。 理解问题后,就要思考如何解决问题。 记住,这两类问题一般都是用问题转换加二分查找的方法解决。 我会用代码+详细注释的形式记录这两类问题的解法,题目描述易于理解,耐心看完再看题解才会有收获。 最大化最小值问题:leetcode...

平凡 9750

阿里云学生机2核4G,30分钟搞定DNF台服联机(CentOS 7.6保姆级教程)

本文提供阿里云学生机2核4G搭建DNF台服联机的详细教程,涵盖服务器选购、网络配置、服务端部署及客户端联机设置。通过CentOS 7.6系统优化和端口配置,30分钟内即可完成搭建,适合学生和技术爱好者低成本实现游戏联机体验。

weixin_42537919的博客 359

7.最大最小距离算法与最大最小距离

7.最大最小距离算法与最大最小距离 最大最小距离算法 最大最小距离算法是一种聚类算法。 算法描述: (1):任意选取一个样本模式作为第一聚类中心K1。 (2):选择离Z1最远欧氏距离的模式样本作为第二聚类中心K2。 (3):逐个计算每个模式样本与已确定的所有聚类中心之间的欧式距离,并选出其中的最小欧式距离。也就是说,所有的模式样本分别和K1,K2、…Kn求欧式距离,每个模式样本会分别得到和K1、K2、…Kn的欧式距离,从n者中选择小的那个。如果模式样本数是N,那么就会选出N个最小距离。 (4):在所有最小距

qq_43806634的博客 4853

AWSIM模拟器 新增多相机

本文介绍了基于Unity6引擎对AWSIM自动驾驶模拟器的优化方案,主要针对多相机系统的扩展实现。作者通过修改EgoVehicle.cs和AutowareSimulationDemo.cs核心代码,将原单相机系统升级为5相机配置。关键技术点包括:1)使用List容器管理多个CameraSensor组件;2)完善相机初始化流程;3)配置5个相机UI显示窗口;4)修改ROS话题设置。优化后的系统可支持BEVFusion等多传感器融合算法的测试验证,为Autoware.universe 0.45.0及以上版本提供

W805698955的博客 831

嵌入式系统中的轻量级压缩实践——miniLZO在STM32上的性能优化

本文深入探讨了miniLZO轻量级压缩算法在STM32嵌入式系统中的性能优化实践。通过对比无损压缩算法的性能特点,详细解析了miniLZO在内存占用、压缩速度方面的优势,并提供了STM32移植、参数调优及创新应用案例,帮助开发者在资源受限环境中实现高效数据压缩。

weixin_30776273的博客 84

最大最小值滤波

最大最小值滤波 最大最小值滤波是一种比较保守的图像处理手段,与中值滤波类似,首先要排序周围像素和中心像素值,然后将中心像素值与最小和最大像素值比较,如果比最小值小,则替换中心像素为最小值,如果中心像素比最大值大,则替换中心像素为最大值。一个Kernel矩阵为3X3的最大最小值滤波如下: //最大最小值滤波 function maxMin(imgData, ...

weixin_30245867的博客 3663

【可信数据空间-部署方案】

此部署架构体现了以下几个核心原则:去中心化: 数据存储和处理完全分布在各个参与者端,运营方只提供核心的协调和信任基础设施。安全边界清晰: 通过VPC、DMZ、防火墙、K8s命名空间等技术,在每个层级都建立了严格的安全边界。高可用与弹性: 所有关键服务均以集群方式部署,避免单点故障,并能根据负载动态伸缩。云原生: 全面采用容器化和Kubernetes编排,简化部署、管理和运维复杂度。合规性: 架构设计天然满足数据驻留要求(数据留在企业本地),并为所有操作提供不可篡改的审计追踪能力。

u014716614的博客 771

最大似然与最小二乘

SLAM中经常需要构建最小二乘问题进行迭代优化,从概率的角度最小二乘等价于最大似然,下文将讲解两者的关系.

qq_20604231的博客 646

STM32的GPS数据提取程序设计说明——基于NMEA0183协议

一、硬软件平台 本次程序实现效果为对GPS信号穿送来的数据进行筛选,并将筛选后的信息通过上位机显示出来,所以此次设计所需硬件包括STM32F407、RS232转TTL、CH340USB转串口模块,注意该模块在使用前,对应的系统需要安装驱动,否则串口调试助手无法识别,另外还包括JLink下载器。 本次代码设计软件为KEIL5并结合F4固件包,上位机系统为WIN7,主机系统为WIN10。 二、算法总体思路设计 由于GPS通过RS232将数据传送给板子,因此使用两个串口资源(串口1和串口2),其中一个用来

小景的博客 6181

《QGIS快速入门与应用基础》151:批量属性值赋值(字段计算器)

本文介绍了QGIS中字段计算器的批量属性值赋值方法,重点讲解了简单赋值(统一值和递增序列)的操作步骤与表达式应用。文章首先强调数据备份、字段类型确认等必要前提,随后详细解析字段计算器的界面功能分区和打开方式。通过具体场景示例,展示了如何为图层统一赋值固定值或生成连续编号序列,并提供了文本、数字、日期等不同字段类型的表达式模板。文中特别提醒新手优先创建新字段而非直接更新现有字段,以避免数据丢失风险,同时推荐使用$id和rownum()函数实现基础序列生成。该教程适合GIS初学者快速掌握批量属性编辑的核心技能。

LuckyHanMo的博客 489

二分答案(最大值最小化,最小值最大化)

在这篇代码里我们将区间分为两部分,[l,mid)和[mid,r],所以我们运用了上篇博客的第一种模板,在这里ans>=c作为返回条件,说明我们的K取小了,我们需要向[mid,r]区间取值,所以如果返回true,l=mid.在这篇代码里也是将区间分为两部分,即[l,mid]和(mid,r],当返回条件ans>=m为真时,说明我们的k取小了,需要在(mid,r]区间里取更大的值,所以check(mid)为真时,l=mid+1;二分答案类的题呢,有两个标志性的词语:最小值最大化和最大值最小化。

2301_79290155的博客 2202

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

数学建模笔记—— 最大最小化规划模型

在实际问题中也有许多求最大值的最小化问题, 例如急救中心选址问题就是要规划其到所有地点最大距离的最小值,在投资规划中要确定最大风险的最低限度等,为此,对每个。设供应中心的位置为(x,y),要求它到最远需求点的距离尽可能小,由于道路网与坐标轴平行,彼此正交,故采用沿道路行走计算距离,可知每个需求点。),道路网与坐标轴平行,彼此正交,现打算建一个该物品的供应中心,且由于受到城市某些条件的限制,该供应中心只能设在。界于[4,10]的范围之内,问该中心应建在何处为好?的最大值,然后再求这些最大值中的最小值。

lbm666666的博客 2229

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

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

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

28 最大与最小

28最大与最小 作者:ZhouMingLiang时间限制:10S章节:一维数组 问题描述 : 明明喜欢玩游戏,而明明的爸爸也乐意陪明明玩各种各样的小游戏。但是在游戏中,明明的爸爸又十分注意培养明明的智力,他希望通过游戏,不仅让明明得到快乐,而且又能让明明学到一些知识,锻炼他的思维能力,为将来的发展打下基础。一天,明明的爸爸和明明做起了一个叫“最大与最小”的游戏,游戏的规则简单但却很...

HurryBen的博客 291

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

二分法求最大值最小化或最小值最大化问题

1.最小值最大化 例题: 题目描述    农夫约翰建造了一座有n(2&lt;=n&lt;=100000)间牛舍的小屋,牛舍排在一条直线上,第i间牛舍在xi(0&lt;=xi&lt;=1000000000)的位置,但是约翰的m(2&lt;=m&lt;=n)头牛对小屋很不满意,因此经常互相攻击,约翰为了防止牛之间互相伤害,因此决定把每头牛都放在离其它牛尽量远的牛舍。也就是要最大化最近的两头牛之间...

CHL的博客 5240
上一篇: 【USACO】2008 Jan Haybale Guessing 猜数游戏
下一篇: DNA序列
Bobby_Z
博客等级 码龄11年 6粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值