【背包dp】[NOIP2014 提高组] 飞扬的小鸟

详解卷积神经网络(CNN) 卷积神经网络(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。 阅读详情

在这里插入图片描述
题目链接
思路:
不难想到状态可以定义为:
f [ i ] [ j ] f[i][j] f[i][j]表示到达坐标 ( i , j ) (i,j) (i,j)所需要的最小点击数
我们考虑坐标 ( i , j ) (i,j) (i,j)可以由哪些坐标 ( i − 1 , k ) (i-1,k) (i−1,k)抵达。
我们先考虑上升操作,由于上升操作可以点击无限次,那么可以套用完全背包的转移方式。
对于下降操作,只有一次或零次,那么可以套用01背包的转移方式。
用 y [ i ] y[i] y[i]表示每次下降操作下降的高度, x [ i ] x[i] x[i]表示每次上升操作上升的高度。
那么对于上升操作,转移为:
f [ i ] [ j ] = m i n ( f [ i − 1 ] [ j − x [ i ] ] + 1 , f [ i ] [ j − x [ i ] ] + 1 ) f[i][j] = min(f[i - 1][j - x[i]] + 1, f[i][j - x[i]] + 1) f[i][j]=min(f[i−1][j−x[i]]+1,f[i][j−x[i]]+1)
其中 f [ i ] [ j − x [ i ] ] + 1 = m i n ( f [ i − 1 ] [ j − 2 ∗ x [ i ] ] + 2 , f [ i − 1 ] [ j − 3 ∗ x [ i ] ] + 3 , . . . . ) f[i][j - x[i]] + 1 = min(f[i - 1][j - 2 * x[i]] + 2, f[i - 1][j - 3 * x[i]] + 3, ....) f[i][j−x[i]]+1=min(f[i−1][j−2∗x[i]]+2,f[i−1][j−3∗x[i]]+3,....)
对于下降操作,转移为:
f [ i ] [ j ] = m i n ( f [ i ] [ j ] , f [ i − 1 ] [ j + y [ i ] ] ) f[i][j] = min(f[i][j], f[i - 1][j + y[i]]) f[i][j]=min(f[i][j],f[i−1][j+y[i]])
高度遍历采用正序遍历(想一想为什么)
还有一个细节就是,高度是允许超过 m m m的,最高是 m + m a x ( x [ i ] ) m + max(x[i]) m+max(x[i]),所以数组要开大一点。

AC代码:

#include <iostream>
#include <algorithm>
#include <cstring>

using namespace std;

const int N = 10005, M = 2005, INF = 0x3f3f3f3f;

int n, m, k;
int f[N][M];
int x[N], y[N];
int l[N], h[N];
bool flag[N];

int main()
{
	memset(flag, false, sizeof flag);
	
	scanf("%d%d%d", &n, &m, &k);
	for (int i = 1; i <= n; i ++ )
		scanf("%d%d", &x[i], &y[i]);
	for (int i = 1; i <= n; i ++ )
		h[i] = m + 1, l[i] = 0;
	
	for (int i = 1; i <= k; i ++ )
	{
		int p, hh, ll;
		scanf("%d%d%d", &p, &ll, &hh);
		h[p] = hh, l[p] = ll;
		flag[p] = true;
	}
	
	memset(f, 0x3f, sizeof f);
	for (int i = 1; i <= m; i ++ )
		f[0][i] = 0;
	for (int i = 1; i <= n; i ++ )
	{
		for (int j = x[i] + 1; j <= x[i] + m; j ++ )
			f[i][j] = min(f[i - 1][j - x[i]] + 1, f[i][j - x[i]] + 1);
		for (int j = m + 1; j <= x[i] + m; j ++ )
			f[i][m] = min(f[i][m], f[i][j]);
			
		for (int j = 1; j <= m - y[i]; j ++ )
			f[i][j] = min(f[i][j], f[i - 1][j + y[i]]);
		
		for (int j = 1; j <= l[i]; j ++ )
			f[i][j] = INF;
		for (int j = h[i]; j <= m; j ++ )
			f[i][j] = INF; 
	}
	
	int ans = INF;
	for (int i = 1; i <= m; i ++ )
		ans = min(ans, f[n][i]);
	if (ans != INF)
	{
		cout << 1 << endl << ans << endl;
		return 0;
	}
	
	int i, j;
	for (i = n; i; i -- )
	{
		for (j = 1; j <= m; j ++ )
			if (f[i][j] < INF) break;
		if (j <= m) break;
	}
	
	ans = 0;
	for (j = 1; j <= i; j ++ )
		if (flag[j]) ans ++;
	cout << 0 << endl << ans << endl;
		
	return 0;
} 
《UDS协议从入门到精通》系列——图解0x83:访问时间参数 详细介绍UDS协议0x83服务,目标ECU的时序参数设置有哪些注意点? 阅读详情

相关推荐

Xiaojie雷达之路---使用CCS创建一个毫米波雷达的工程(AWR1843)

前些天,在工具箱中下载了一个基于毫米波雷达(AWR1843)自动停车的案例,并成果导入CCS中,可以完美运行,但是如何新建一个新的工程呢?这篇文章就会对其进行讲述。

XiaoJie的博客 4554

P1941 [NOIP2014 提高组] 飞扬的小鸟(线性dp+思维)

题目传送门 注意读题: 1.每一个单位时间可以点击多次(每一个单位时间可上升多次)。 2.如果不点,那么每一个单位时间只能下降一次。 分析状态: 题干中要求问的是最少点击次数,那么我们看dp怎么想这个问题:dp[i][j],代表的是当前到达横坐标i,高度为j的点的时候最少的点击次数,那么我们看当前状态是通过什么状态转移而来的: 1.下降到这里来的。(该情况一定是由上次转化而来的) 状态转移方程是: f[i][j]=min(f[i][j],f[i-1][j+down[i]]); 2.上升到这里来的 状

m0_51841071的博客 680

移动硬盘报错0x80070570?5分钟搞定CHKDSK修复(附详细参数说明)

本文针对移动硬盘报错0x80070570问题,提供了详细的CHKDSK修复方法。通过5分钟核心修复流程,指导用户使用系统自带工具快速修复文件系统逻辑错误,恢复硬盘访问。文章还深入解析了CHKDSK参数,并提供了备选数据恢复方案与日常防护建议。

app77的博客 235

NOIp提高组2014 飞扬的小鸟————dp+背包综合

题解:本题主要考查背包综合。 简要题意:一个长为nnn,高为mmm的二维平面,其中有kkk个管道。小鸟每个单位时间向右移的距离为111,在横坐标位置0∼n0∼n0∼n点击屏幕,小鸟就会上升高度XiX_iXi​,每个单位时间可以点击多次。如果在横坐标位置0∼n0∼n0∼n不点击屏幕,小鸟就会下降一定高度YiY_iYi​,小鸟高度等于000或者小鸟碰到管道时失败,小鸟高度为mmm时,无法再上升。 1....

wly1127的博客 235

【在英伟达nvidia的jetson-orin-nx上使用调试can基础收发-硬件连接-开机自启动can-初步调试】

近期开始学习英伟达的工控板,作为新手还是有很多不同懂得地方,但是一部分它用的linux系统,有点像玩树莓派,通过自己一段时间学习can调试,终于可以简单通信了。开始的时候,自己也是什么都不是很懂,从新手一点点摸索过来,现在使用工控机,简单can通信也已经没有问题了,算是有些进步吧。每一步走的都很艰辛,需要反复验证,才能准去无误,开始以为发送没有问题就没事了,没想到发送可以却接受不行,每一步都要反复确认啊,这个问题会持续关注下吧。

qq_22146161的博客 6123

保姆级避坑指南:用Livox官方工具搞定Mid-360多雷达自动标定(附源码Bug修复)

本文详细解析了使用Livox官方工具进行Mid-360多雷达自动标定的全流程,包括环境搭建、工具链配置、关键Bug修复及数据采集最佳实践。重点解决了PointCloudMapper.cpp边界检查缺失和calibration.cpp点云显示问题,提供了实用的代码修复方案和标定质量评估指标,帮助开发者高效完成激光雷达标定任务。

weixin_29053695的博客 281

[NOIP2014 提高组] 飞扬的小鸟(线性dp):类似完全背包问题的通式优化

NOIP2014 提高组 D1T3。

m0_60738889的博客 1089

YOLOv8损失函数改进大全:从IoU到FocusIoU的20+种变体全解析(附完整适配代码+性能对比)

目标检测边界框损失函数演进与优化 摘要:边界框损失函数是目标检测模型定位精度的关键因素。本文系统分析了从基础IoU到最新FocusIoU的20余种损失函数的演进历程,包括四代主要技术:基于重叠区域的IoU/GIoU,结合距离度量的DIoU/CIoU,优化形状匹配的EIoU/RIoU,以及考虑方向性的SIoU/WIoU/FocusIoU。针对YOLOv8模型,提供了完整的损失函数实现代码和替换方案,实验表明优化后的损失函数在复杂场景下可提升mAP@0.5达3.2%。文章特别对比了不同损失在小目标、遮挡和密集场

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 996

P1941 [NOIP2014 提高组] 飞扬的小鸟

P1941 [NOIP2014 提高组] 飞扬的小鸟

weixin_49373560的博客 251

华为OD机考双机位C卷 - 区间交集(Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 区间交集

算法大师! 1137

基于ESP32的室内空气质量检测系统开发

随着环境污染问题的日益严重,室内空气质量的监测变得越来越重要。室内空气质量的好坏直接影响到人们的健康,尤其是对于在封闭空间长时间待着的人群。为此,基于ESP32的室内空气质量检测系统应运而生。ESP32作为一款集成了Wi-Fi和蓝牙的高性能微控制器,为嵌入式开发提供了良好的平台,适用于构建各种智能硬件设备。本博客将详细介绍如何基于ESP32开发一个室内空气质量检测系统。系统可以实时监测空气中的温度、湿度、二氧化碳浓度、甲醛浓度等指标,并通过Wi-Fi将数据传输到云端或移动设备,方便用户随时查看空气质量情况。

2201_76125393的博客 832

NOIP2014 提高组合集

NOIP 2014 提高组 合集 D1 T1 生活大爆炸版石头剪刀布 首先,先将两个人的猜拳序列都变得不小于n。然后逐个模拟。胜败什么的看表就行了。 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using nam...

dianan0938的博客 265

CAPL学习之路-关键字

在capl中,关键字具有特殊的含义和用途,因此,不得将关键字用作变量或函数的名称 声明数据类型的关键字 可以用不同的关键字,声明或引用不同类型的数据 byte 声明一个字节的变量 word 声明两个字节的变量 dword 声明四个字节的变量 int 声明两个字节的整数 long 声明四个字节的变量 qword 声明八个字节的变量 char 声明一个字符串 float 声明一个浮点数,8个字节 double 声明一个浮点数,8个字节 定义一个结构体或枚举类型 struct struct Data { .

jasonj333 6109

P1941 [NOIP2014 提高组] 飞扬的小鸟——解题报告

下面考虑如何转移,因为题目非常的明确,两层之间只有两种转移方式。将高度作为背包的容量,每一层的选择作为物品,点击的次数作为价值。小鸟从游戏界面最左边任意整数高度位置出发,到达游戏界面最右边时,游戏完成。下降即相当于从背包中取出,而上升则是正常的放入物品。由于题目要求,上升是可以累计多次点击来上升的。一个很显然的结论是,按照水平方向,后面的状态的值不影响前面的状态,所以这是一个很典型的。小鸟位于横坐标方向不同位置时,上升的高度。或者小鸟碰到管道时,游戏失败。时,无法再上升,游戏继续。

风中的微尘的博客 859

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

完全背包+01背包,P1941 [NOIP2014 提高组] 飞扬的小鸟

很能考验动态规划的功力

EQUINOX1的博客 1004

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

[DP]Luogu 2014NOIP提高组 飞扬的小鸟题解

2014NOIP提高组飞扬的小鸟题解 题目描述 Flappy Bird是一款风靡一时的休闲手机游戏。玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙。如果小鸟一不小心撞到了水管或者掉在地上的话,便宣告失败。 为了简化问题,我们对游戏规则进行了简化和改编: 游戏界面是一个长为n,高为m的二维平面,其中有k个管道(忽略管道的宽度)。 小...

weixin_30668887的博客 143

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

[NOIP2014 提高组] 飞扬的小鸟

每行表示一个管道,其中 �p 表示管道的横坐标,�l 表示此管道缝隙的下边沿高度,ℎh 表示管道缝隙上边沿的高度(输入数据保证 �p 各不相同,但不保证按照大小顺序给出)。接下来的 �n 行,每行 22 个用一个空格隔开的整数 �x 和 �y,依次表示在横坐标位置 0∼�−10∼n−1 上玩家点击屏幕后,小鸟在下一位置上升的高度 �x,以及在这个位置上玩家不点击屏幕时,小鸟在下一位置下降的高度 �y。游戏界面是一个长为 �n,高为 �m 的二维平面,其中有 �k 个管道(忽略管道的宽度)。

Davidkroos的博客 218

NOIP提高组2014 飞扬的小鸟 解题报告

文章目录题目链接解题思路详细代码 题目链接 LGOJ P1941 飞扬的小鸟 解题思路 一眼DP。 小鸟往上飞,其实本质上是个完全背包。往下掉,其实本质上就是个01背包。 好吧,大致思路出来了,简单简单。 注意: 1)注意当y=my=my=m时,答案是f[i][m+1]f[i][m+1]f[i][m+1]~f[i][Max]f[i][Max]f[i][Max]的最小值,注意特判。 2)注意管道的判...

日居月诸的博客 316

NOIP2014提高组 飞扬的小鸟

链接:https://ac.nowcoder.com/acm/problem/16496来源:牛客网 题目描述 为了简化问题,我们对游戏规则进行了简化和改编: 1. 游戏界面是一个长为n,高 为m的二维平面,其中有k个管道(忽略管道的宽度)。 2. 小鸟始终在游戏界面内移动。小鸟从游戏界面最左边任意整数高度位置出发,到达游戏界面最右边时,...

176

【NOIP2014】 飞扬的小鸟 完全背包dp

这道题是一道变过的完全背包,先写出dp方程。 f[i][j]=min{f[i-1][j+y[i]],f[i-1][j-k*x[i]]+1}(j-k*x[i]>=0)(a[i][j]=1)       =inf (a[i][j]=0) 那么很明显,这跟完全背包的方程非常相似,相当于一个物品价值为1,费用为x[i],然后要求总费用最小,直接完全背包就可以了,但是有一点要注意,这道题要先把选的计算

Oxer的专栏 4086

[NOIP2014 提高组] 飞扬的小鸟 题解

题目链接 题意 一个宽n高m的方格图,k组管道(图红色处),一只小鸟从左面任意高度起飞(包括0和m),高度为0或者碰到管道游戏结束。点击一次屏幕高度上升xix_ixi​, 不点则下降yiy_iyi​,可点击多次屏幕,效果累加。 求飞到右边界(任意非0位置)的最少点击屏幕次数。 题目分析 这是一道01背包和完全背包的组合题。 有两种情况: 不点屏幕 — 01背包问题 点击k下屏幕 ---- (必选物品的)完全背包问题 【注意】:顶部位置需根据题意特殊处理。 对于dp[i][m], 哪些状态会影响它?

C++ static类成员 426

【NOIP2014 Day1 T3】飞扬的小鸟

【NOIP2014 Day1 T3】飞扬的小鸟 Time Limit:20000MS  Memory Limit:131072K Total Submit:58 Accepted:14  Case Time Limit:1000MS Description   Input   Output   Sample Input 样例输入1: 10 10 6 3 9 9

tgoker的博客 703

【noip】【dp】飞扬的小鸟 背包 滚动数组

这几天又把14年给做了,这是day1的第三题 飞扬的小鸟 Flappy Bird 是一款风靡一时的休闲手机游戏。玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙。如果小鸟一不小心撞到了水管或者掉在地上的话,便宣告失败。 为了简化问题,我们对游戏规则进行了简化和改编: 游戏界面是一个长为 n,高为 m 的二维平面,其中有k 个管

anantheparty的博客 1652

洛谷P1941 [NOIP2014 提高组] 飞扬的小鸟

洛谷P1941 [NOIP2014 提高组] 飞扬的小鸟 题目描述 Flappy Bird是一款风靡一时的休闲手机游戏。玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙。如果小鸟一不小心撞到了水管或者掉在地上的话,便宣告失败。 为了简化问题,我们对游戏规则进行了简化和改编: 游戏界面是一个长为 nn,高为 mm 的二维平面,其中有 kk 个管道(忽略管道的宽度)。 小鸟始终在游戏界面内移动。小鸟从游戏界面最左边任意整数高度位置出发,到达游戏界面最右边时,游戏完成。 小

wh52013141314的博客 246

【NOIP2014提高组】飞扬的小鸟

https://www.luogu.org/problem/show?pid=1941 从某一点开始飞直到飞出地图最少点击屏幕的次数,显然只和该点的坐标唯一相关,没有后效性,考虑用DP解。令f(i,j)为从点(i,j)飞出地图最少点击次数。得状态转移方程:f(i,j)=min{f(i-1,j-k*x[i-1]+k), f(i-1,j+y[i-1])}其实就是完全背包和01背包的结合。时...

anlongshi2245的博客 295
上一篇: 【区间dp】 [HNOI2010]合唱队
下一篇: 【树形dp】 [POI2014] FAR-FarmCraft
juruo_c
博客等级 码龄6年 520粉丝 116原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值