TYZ 8/23 道路覆盖

睿尔曼复合机器人之底盘操作流程 控制键”按下后,可在键盘上通过‘i’(向前),‘k’(向后),‘j’(向左旋转),‘l’(向右旋转)四个按键对底盘进行运动控制。选中禁⾏线功能后,使⽤⿏标在界⾯内点击选择起点,继续在其他地⽅点击,两点之间会连成⼀条线,可以进⾏多次连续点击,形成连续线条。4)扫图完成后,软件会重新启动,返回到监控页面,点击“激光”可看到当前机器激光扫描的实时数据,在页面上表现为红色边界线,点击菜单栏“控制”键使底盘在一定范围内运动,扫描到尽可能多的边界线,可发现与实际地图的黑色边界线不同,需要进行手动校正。 阅读详情

道路覆盖

(cover.cpp/c/pas)

 

【问题描述】

Tar把一段凹凸不平的路分成了高度不同的N段,并用H[i]表示第i段高度。现在Tar一共有n种泥土可用,它们都能覆盖给定的连续的k个部分。

对于第i种泥土,它的价格为C[i],可以使得区间[i,min(n,i+k-1)]的路段的高度增加E[i]。

Tar要设定一种泥土使用计划,使得使用若干泥土后,这条路最低的高度尽量高,并且这个计划必须满足以下两点要求:

(1)每种泥土只能使用一次。

(2)泥土使用成本必须小于等于M。

请求出这个最低的高度最高是多少。

 

【输入格式】

第一行为如上文所示的三个正整数:N,M,K。

接下来N行,每行3个如上文所示的正整数H[i],E[i],C[i]。

 

【输出格式】

输出有且只有一个数字,为最底部分的高度的最大值

 

【样例输入】

4 20 1

1 3 5

1 7 3

4 6 9

3 5 13

 

【样例输出】

3

 

【数据范围】

对于30%的数据:N≤20。

对于100%的数据:1≤K≤11,1≤N≤100,0≤M,H[i],E[i],C[i]≤1000000。

看到这个问题之后,想都没想就蛮力搜索,然后拿了40/100,看着大数据被卡了20ms.,痛心疾首啊!没加优化。。。

正解是对答案进行二分,每个统计用dp与二进制枚举

(跳石头,做过没?)

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<limits.h>
using namespace std;
struct dirt{
	int e,c;
}a[105];
int h[105];
int n,m,k,t1,t2,t3;
int ans;
void dfs(int tot,int i)
{
	//搜索,没有任何优化,如果考虑优化的话也许就不是这个结果了 
	//printf("%d %d\n",tot,i);
	if(i>n)
	{
		if(tot<=m)
		{
			int cmax=INT_MAX;
			for(int j=1;j<=n;j++)
			cmax=min(cmax,h[j]);
			ans=max(ans,cmax);
		}
		return;
	}
	int ne=a[i].e;
	int nc=a[i].c;
	if(nc+tot<=m)
	{
		int lm=min(n,i+k-1);
		for(int j=i;j<=lm;j++)
		{
			h[j]+=ne;
		}
		dfs(nc+tot,i+1);
		for(int j=i;j<=lm;j++)
		{
			h[j]-=ne;
		}
	}
	dfs(tot,i+1);
}
int dp[105][2055];
int Min(int xxx,int yyy)
{
	if(xxx==-1)
		return yyy;
	if(yyy==-1)
	return xxx;
	return min(xxx,yyy);
}
//注意重写这个min,因为是最小的,但-1的时候时不可以到达的。
//所以说-1尽管比他们小,都得直接返回另外一个!!! 
//否则你的程序会无限0!!!! 
bool can(int limit)
{
		memset(dp,-1,sizeof(dp));
	dp[0][0]=0;
	for (int i=0;i<n;i++)
		for (int j=0;j<(1<<k);j++)
		//只要前K个,因为只有前K个的放置情况可以对其造成影响 
		//二进制枚举 
		if (dp[i][j]!=-1)
		{
			int sum=0;
			for (int t=k-1;t>0;t--)
			{
				if ((1<<t)&j)
					sum+=a[i-(k-1-t)].e;
					//扫位 枚举 
			}
			if (sum+h[i+1]>=limit)
				dp[i+1][j>>1]=Min(dp[i+1][j>>1],dp[i][j]);
			if (sum+h[i+1]+a[i+1].e>=limit)
				dp[i+1][(j>>1)|(1<<(k-1))]=Min(dp[i+1][(j>>1)|(1<<(k-1))],dp[i][j]+a[i+1].c);
//这是DP的过程
		}
	for (int j=0;j<(1<<k);j++)
	if (dp[n][j]!=-1)
		if (dp[n][j]<=m) return 1;
	return 0;
}
int l,r;
int main()
{
	//freopen("cover.in","r",stdin);
	//freopen("cover.out","w",stdout);
	scanf("%d %d %d",&n,&m,&k);
	for(int i=1;i<=n;i++)
	{
		scanf("%d %d %d",&h[i],&a[i].e,&a[i].c);
	}
	if(n<=20)
	{
		//如果范围小的话就搜索一下,其实大数据也就20多毫秒的TLE,哭死 
	dfs(0,1);
	cout<<ans<<endl;
	return 0;
	}
    else
    {
    	//否则二分! 
    	l=0,r=100000000;
    	while(l+1<r)
    	{
    		int mid=(l+r)>>1;
    		if(can(mid))
    		l=mid;
    		else
    		r=mid-1;
		}
		//注意别出不来了到时候 
	}
	if(can(l+1))
	l++;//跳出的时候r==l+1
	//我们当然希望要更大的,所以试下l+ 1 
	cout<<l<<endl;
	return 0;

}



基于STM32L4XX 、HAL库的TMC2226-SA-T步进电机驱动器驱动程序应用设计 集成的功率MOSFET可处理高达2A RMS的电机电流,并具备保护与诊断功能,确保运行稳健可靠。作为业界最先进的STEP/DIR步进电机驱动系列,该芯片通过升级设计实现无噪音、高精度运行,为用户提供高性价比且极具竞争力的解决方案。// 用于PDN_UART单线通信。// HAL_UART_Transmit - 注意PDN_UART是单线,收发共线。.huart = &huart1, // PDN_UART连接的USART。均方根步进/方向控制接口,提供8、16、32或64微步针设置, 阅读详情

相关推荐

Windows打印体系结构之Windows内置打印驱动程序

时间是一种很残酷的东西,它只会冲淡能够冲淡的,但也会洗尽铅华帮你留下该留下的。1.3.4、Windows内置打印驱动程序现在的Windows下的打印机驱动程序通常分为V4打印机驱动程序(V4 Printer Driver)、XPS打印机驱动程序(XPSDrv)、微软通用打印机驱动程序(Microsoft UniversalPrinter Driver)、微软PostScri...

weixin_34309435的博客 2253

TYZ 8/25 LJM 交换!交换!

题目大意 交换,交换! 【问题描述】 某佳穆喜欢交换物品,他觉得这样可以与更多人分享好的事物。 有一天,钊兴给了某佳穆n本书,这n本书的有益程度分别是a[i],排成一排。然后钊兴告诉他:我可以给你k次机会,你最多可以交换其中k对书的位置,然后在现在的排列中拿走其中连续的一段。 某佳穆是一个正能量的人,他想使得自己拿走的这一段书有益程度加起来尽量大,所以他决定写一个程序来计算。 【输

AzureMayfly的博客 1976

链家二手房信息爬取(内附完整代码)

链家二手房信息爬取1.简介2. 爬虫思路2.1 网页分析2.2 详情页分析2.3 不同页码的爬取2.4 解决链家只显示100页数据2.5 简单的反爬与进度条显示3. 总结 1.简介   最近帮同学爬取了链家在售二手房的信息,这是本人学习爬虫以来爬取数据最多的一次,就想着写个博客记录一下。   本次爬虫是利用python+jupyter notebook实现的,用到的第三方库如下: import pandas as pd # 数据存储 import requests # 网页内容获取 import re #

qq_46256922的博客 3万+

TYZ 8/22 艰难的抉择(非常男女)

T2艰难的抉择 1. 题目描述 Yzx已经当过多次“媒人”了。他因此获得了许多经验。例如,距Yzx观察,身高相近的人似乎比较合得来。 Yzx在学校策划了一次大型的“非常男女”配对活动。对于这次活动的参与者,Yzx有自己独特的选择方式。他希望能选择男女人数相等且身高都很接近的一些人。这种选择方式实现起来很简单,他让学校的所有人按照身高排成一排,然后从中选出连续的若干个人,使得这些人中男女人数

AzureMayfly的博客 2706

【开源教程25】疯壳·开源编队无人机-定高、定点、悬停

【开源教程25】疯壳·开源编队无人机-定高、定点、悬停

efans_Mike的博客 1650

2025年MathorCup数学应用挑战赛【B题完整论文】附参考代码(免费分享)

摘。

RS_handy的博客 2694

TYZ 8/25 ranwen的烦恼

冉文的烦恼 【问题描述】 冉文是个粗心的人,经常不小心把垃圾丢到地上。艾教实在没办法,只好派了m个学生,去捡冉文走过路上的垃圾。 假设冉文走过的路线是一条直线,每个位置分别是1..n,每个位置上垃圾的个数是ai。所有学生起始位置都在0,每秒钟,他们有两种选择: 1.向右走一步。 2.捡起一个地上的垃圾。 现在我们的问题是:要捡起冉文的所有垃圾,最少需要多少秒? 【输入格式】 第一行

AzureMayfly的博客 862

YOLOv9分割改进 ,YOLOv9分割改进主干网络为华为EfficientNet,助力涨点

EfficientNet论文中研究了卷积网络的缩放和,并证明对深度,宽度和分辨率复合缩放的重要性,因此精度和效率更好。为了阐述相关的原理,我们提出了简单有效的复合缩放方法,使得模型缩放具有一定设计准则,同时兼顾了模型的效率。我下文将 YOLOv9 分割模型改进主干网络为 EfficientNet 融合网络结构。论文地址代码地址下文都是手把手教程,跟着操作即可添加成功把环境配置好,数据集处理好,训练基本能成功,创作不易,请帮忙点一个爱心,关注我,带你不挂科!

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 937

TYZ 8/22 人品问题

人品问题 题目描述 网上出现了一种高科技产品——人品测试器。只要你把你的真实姓名输入进去,系统将自动输出你的人品指数。yzx不相信自己的人品为0。经过了许多研究后,yzx得出了一个更为科学的人品计算方法。这种方法的理论依据是一个非常重要的结论:人品具有遗传性。因此,一个人的人品完全由他的祖先决定。yzx提出的人品计算方法相当简单,只需要将测试对象的k个祖先的人品指数(可能为负数)加起来即可。选

AzureMayfly的博客 4133

华为OD机试 - 小火车最多人时所在园区站点(Java 2024 E卷 100分)

刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、发现新题目,随时更新,全天优快云在线答疑。

学Java,找哪吒 995

帆软报表导出各种格式之后台导出

我们前面介绍了帆软报表在界面上的导出是通过类似的URL:http://localhost:8075/webroot/decision/view/report?op=export&sessionID=10653244-3e46-408c-bc54-f89a214a9bc7&format=image&extype=PNG 来完成的,就是带OP=export以及format参数来完成的。如果不从界面传参数,比如我们自己实现了一个HTTP接口,也可以通过传参数format来完成各种格式的导

帆软爱好者的专栏 4270

视图 v$sql,v$sqlarea,$sqltext,v$sqltext_with_newlines 的差异

http://blog.youkuaiyun.com/leshami/article/details/8658205 视图v$sql,v$sqlarea,v$sqltext,v$sqltext_with_newlines 是几个经常容易混淆的视图,主要是提供library cache中当前缓存的sql语句的信息。这几个视图都可以提供当前有关sql语句的具体信息,但稍有差异。本文主要描述其差异并给出实例...

weixin_30341735的博客 147

SI案例分享--PCB通孔互连新技术的应用(VeCS)

本文介绍了VeCS的物理结构和制造过程,并通过全波仿真模拟和测量,分析了VeCS的电性能,并与传统的测量方法进行了比较。结果表明,由于有一个连续的参考平面,VeCS的TDR阻抗可以很容易地控制到目标阻抗,同时可以大大减轻信道上的串扰,的确是一种性能不错的PCB互连创新设计方案。

一只豌豆象的博客 2114

TYZ 8/23 原根

题意: 元根 : 题目描述   第一反应:要考数论 看完题目之后,这出题人搞了个概念来玩我们的吧 数据范围看完之后,觉得悬 欧拉函数可以在n^0.5内算完,互质的数也一样, Int 欧拉函数=m 算出来之后,假设有M个的话,那么枚举a需要m,每个a的阶数最坏也是m, 快速幂看来少不了了 所以最坏是m^2 这样看来,eular函数各种风骚求法就不用了,老

AzureMayfly的博客 1006

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

JZOI 3521 道路覆盖 二分答案+状压dp

解题报告:二分+DP 由于是求最小值中的最大值,所以二分答案ans,问题转化为了判定性问题。判定的方法是:每个位置都能到达高度ans的最小费用cost是否<=M。 注意到1<=K<=11,也就是说对于第i个路段,能够提高它高度的泥土只有从第i-K个到第i个。于是使用状态压缩动态规划求cost。f[i][j]表示前i个路段通过泥土使用>=高度ans,且第i - k个到第i个的使用情况为二进制数j的

cdsszjj的博客 1015

OV9734 DATASHEET,完整规格书

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

jzoj. 3521. 【NOIP2013模拟11.7B组】道路覆盖(cover)

Descriptionar把一段凹凸不平的路分成了高度不同的N段,并用H[i]表示第i段高度。现在Tar一共有n种泥土可用,它们都能覆盖给定的连续的k个部分。对于第i种泥土,它的价格为C[i],可以使得区间[i,min(n,i+k-1)] 的路段的高度增加E[i]。Tar要设定一种泥土使用计划,使得使用若干泥土后,这条路最低的高度尽量高,并且这个计划必须满足以下两点要求:(1)每种泥土只能使用一次。

liangzihao1的博客 405

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

TYZ8/22 超氧化钾

TYZ群赛 8/22 T1 超氧化钾 题目描述 作为一个化学小考只有77分的同学,小W感觉很有压力,所以他决定搞化学。今天他开始研究超氧化钾,这是一种很神奇的离子化合物,在高温下空间结构是立方体,如下图所示。有一天教黄交给了小W一个任务:根据教黄多年淘金的经验,他发现超氧化钾有一个神奇的性质就是如果一组有序的整数(x,y,z)满足z=x mod 1+x mod 2+…+x mod y,那么对

AzureMayfly的博客 940

jzoj3521. 道路覆盖(二分+状压dp)

3521. 道路覆盖 Description ar把一段凹凸不平的路分成了高度不同的N段,并用H[i]表示第i段高度。现在Tar一共有n种泥土可用,它们都能覆盖给定的连续的k个部分。 对于第i种泥土,它的价格为C[i],可以使得区间[i,min(n,i+k-1)] 的路段的高度增加E[i]。 Tar要设定一种泥土使用计划,使得使用若干泥土后,这条路最低的高度尽量高,并且这个计划必须满足以下两点要求...

闲人请进 243

刷题总结——道路覆盖(ssoj)

题目: 题目描述 Tar把一段凹凸不平的路分成了高度不同的N段(每一段相同高度),并用H[i]表示第i段高度。现在Tar一共有n种泥土可用,它们都能覆盖给定的连续的k个部分。对于第i种泥土,它的价格为C[i],可以使得区间[i,min(n,i+k-1)]的路段的高度增加E[i]。Tar要设定一种泥土使用计划,使得使用若干泥土后,这条路最低的...

banzhangzhi8819的博客 248

[二分][状压dp] Jzoj P3521 道路覆盖

Description ar把一段凹凸不平的路分成了高度不同的N段,并用H[i]表示第i段高度。现在Tar一共有n种泥土可用,它们都能覆盖给定的连续的k个部分。 对于第i种泥土,它的价格为C[i],可以使得区间[i,min(n,i+k-1)] 的路段的高度增加E[i]。 Tar要设定一种泥土使用计划,使得使用若干泥土后,这条路最低的高度尽量高,并且这个计划必须满足以下两点要求: (1)...

weixin_30834019的博客 169

Apple硬件运行Gitea Actions:架构、排错与稳定实践

CI/CD流水线是DevOps实践的核心,自托管的Gitea Actions提供了灵活可控的持续集成方案。其架构将控制面与执行面分离:Gitea服务器负责任务调度,act_runner作为执行器在本地运行任务。当执行环境为Apple Silicon时,arm64架构、Docker镜像平台不匹配及macOS特有的签名机制成为主要挑战。理解这套分工逻辑,并针对macOS环境优化runner配置,即可在Apple硬件上稳定运行原生构建、测试与打包任务。本文从原理到实践,结合实际排错路径,帮助开发者充分发挥Appl

weixin_34080571的博客 486

【JZOJ A组】道路覆盖(cover)

Description ar把一段凹凸不平的路分成了高度不同的N段,并用H[i]表示第i段高度。现在Tar一共有n种泥土可用,它们都能覆盖给定的连续的k个部分。 对于第i种泥土,它的价格为C[i],可以使得区间[i,min(n,i+k-1)] 的路段的高度增加E[i]。 Tar要设定一种泥土使用计划,使得使用若干泥土后,这条路最低的高度尽量高,并且这个计划必须满足以下两点要求: (1)每种泥土只能...

Brute♂force 486

道路覆盖 (二分答案+状压DP)

Description:  Tar 把一段凹凸不平的路分成了高度不同的 N 段(每一段相同高度),并用 H[i] 表示第 i 段高度。现在 Tar 一共有 n 种泥土可用,它们都能覆盖给定的连续的 k 个部分。 对于第 i 种泥土,它的价格为 C[i],可以使得区间 [i,min(n,i+k-1)] 的路段的高度增加 E[i]。 Tar 要设定一种泥土使用计划,使得使用若干泥土后,这条路最低的

Assmel 607

TYZ 09/08 琪露诺的算术教室

【Description】  琪露诺是一个可爱的小女孩,经常会思考诸如“到底⑨是 baka,还是 baka 是⑨”之类的 问题。有天,慧音老师给琪露诺出了一道题目:  给定一个长度为N的自然数数列,等概率地随机选取一对l,r。如果l>r,就交换l,r。  求子序列A[l..r]的xor和,and和,or和的期望  A[l..r]的xor和的定义是:A[l] xor A[l + 1] xo

AzureMayfly的博客 1301

TYZ群赛 8/21解题报告

一场内部群赛的解题报告(不过我写了题目摘要)

AzureMayfly的博客 938

【TYZ 10/18】 最大公约数问题

题目描述: TL:1S  ML:256MB  【Description】  有N个整数,kAc会对它们做Q次修改。  每次修改指的是对所有数加一个整数(可正可负)  每修改一次后,他想知道当前所有数的最大公约数是多少。  【Input】  第一行两个整数N, Q  接下来N行,每行一个整数,表示这N个数的初始值。  接下来Q行,每行一个整数,表示这Q个操作。第i个数表示这一次操作

AzureMayfly的博客 770
上一篇: TYZ 8/23 原根
下一篇: TYZ 8/23 物语
AzureMayfly
博客等级 码龄10年 1粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值