[树形dp] 选课(多叉树解) & 通向自由的钥匙(转二叉树解)

NKOI 5719 构造矩形 问题描述 何老板有N根直木棍,第i根木棍的长度为Ai 何老板要你从中选四根木棍,并使得他们能构成一个矩形(可以是正方形)。请你计算出最大可能得到的矩形的面积。 输入格式 第一行,一个整数N 第二行,N个空格间隔的整数,表示木棍的长度 输出格式 一行,一个整数,表示矩形的面积 样例输入 1 6 312421 样例输出 1 2 样例解释:构造1x2的矩形 样例输入 2 4 1234 样例输出 2 0 样例输入 3 10 3333444555 样例... 阅读详情

题目描述及提交:http://www.tyvj.cn:8080/Problem_Show.asp?id=1051

 

这是一道典型的树形动态规划,被教程资料当做例子引用了很多。

 

网上普遍的解法是转换成二叉树来解。但是我对第一儿子+兄弟的树表示法情有独钟,所以打算用多叉树来解。

 

最开始的状态表示是:F[i][j]表示以i为根的树中选j门课的最大值(当然i是必须要选的)

 

结果发现转移为:

 

F[i][j] = max{ sigma( F[i.son[n]][kn] } + v[i]

 

sigma( kn ) = m-1

 

灾难,如果你看不懂我的不标准的符号语言,就是需要找一个序列 k1,k2,k3..kn (i节点有n个孩子),要满足

 

F[i.son[1]][k1] + F[i.son[2]][k2] ... + F[i.son[n]][kn] 最大,且k1+k2...+kn = m-1

 

这样就是我用背包来解,效率也太慢了。

 

所以我想难道广为流传的转成二叉树的做法难道有什么精妙之处?看了网上的题解,发现原来是状态表示的问题。

 

同样,我把原来的状态该为: F[i][j]表示以i为根的树及他右边的兄弟(树),选j门课的最大值。

 

则转移为:

 

F[i][j] = max{ F[i.brother][j]  ,  F[i.son][k] + F[i.brother][j-k-1] + v[i] }

( 0<=k<j

 

再添加一个节点,把所有树的最上边的根作为他的孩子,这样森林就变成了一棵树。

 

只是在处理这个无意义的节点的时候需要注意,不是需要这个节点选择了其孩子节点才能选择的,且该节点根本不能选修。

 

所以在这个节点是  转移因为: max{ F[i.son][k] + F[i.brother][j-k] }

 

 

 

 

 

 

2.题目描述:

 

 

通向自由的钥匙(key.pas/c/cpp)

通向自由的钥匙被放n个房间里,这n个房间由n-1条走廊连接。但是每个房间里都有特别的保护魔法,在它的作用下,我无法通过这个房间,也无法取得其中的钥匙。虽然我可以通过消耗能量来破坏房间里的魔法,但是我的能量是有限的。那么,如果我最先站在1号房间(1号房间的保护魔法依然是有效的,也就是,如果不耗费能量,我无法通过1号房间,也无法取得房间中的钥匙),如果我拥有的能量为P,我最多能取得多少钥匙?

输入数据

第一行包含两个非负整数,第一个为N,第二个为P。

接下来n行,按1~n的顺序描述了每个房间。第i+1行包含两个非负整数cost和keys,分别为第i件房取消魔法需要耗费的能量和房间内钥匙的数量。

接下来n-1行,每行两个非负整数x,y,表示x号房间和y号是连通的。

输出数据

一行一个整数,表示取得钥匙的最大值。

样例

输入:key.in

5 5

1 2

1 1

1 1

2 3

3 4

1 2

1 3

2 4

2 5

输出: key.out

7

数据范围

对于20%的测试数据,有n<=20

对于30%的测试数据,有n<=30

对于所有测试数据,有p,n<=100, cost <= Maxint, keys<= Maxint

 

 

这题的算法和选课是一样的,cost和key  和选课的用法本质是相同的。这题我写的是转为二叉树的解。发现用二叉树解其实也蛮方便的。

 

 

Chromium实用技巧篇-如何下载指定版本的Chromium(一) 通过本指南,您已成功掌握如何在Windows系统上下载并安装最新版本的Chromium浏览器。我们详细介绍了从进入Chromium官网,到查找最新版本号,再到下载和安装的每一个步骤。通过这些步骤,您不仅能够体验到最新的浏览器功能,还可以参与开源项目的开发,享受高速、稳定、安全的浏览体验。 阅读详情

相关推荐

ADS2020实战:村田电感.s2p与.mod文件导入全流程对比(附仿真结果差异分析)

本文详细对比了ADS2020中村田电感的.s2p与.mod文件导入流程及仿真结果差异,重点分析了两种模型在低频段和高频段的精度表现。通过实际案例展示.s2p文件在高频仿真中的优势,以及.mod文件在低频和非线性特性模拟中的准确性,为射频电路设计提供模型选择策略和混合仿真技巧。

weixin_29289821的博客 519

通向自由的钥匙(key)hgoi0407

通向自由的钥匙(key)hgoi0407 题解 题目描述 通向自由的钥匙被放 n 个房间里,这 n 个房间由 n-1 条走廊连接。但是每个房间里都有特别的保 护魔法,在它的作用下,我无法通过这个房间,也无法取得其中的钥匙。虽然我可以通过消耗能量来 破坏房间里的魔法,但是我的能量是有限的。那么,如果我最先站在 1 号房间(1 号房间的保护魔法 依然是有效的,也就是,如果不耗费能量...

dasxxxxxxxxxxx的博客 1454

Vue中实现word文档渲染、在线编辑、保存

Vue3对word文档进行渲染、编辑、保存。word转成html,html转成word

h18749849699的博客 1328

NKOI 1469 通向自由的钥匙(树形dp)

【题意】 通向自由的钥匙 Time Limit:10000MS  Memory Limit:65536K Total Submit:96 Accepted:39  Case Time Limit:1000MS Description 通向自由的钥匙被放n个房间里,这n个房间由n-1条走廊连接。但是每个房间里都有特别的保护魔法,在它的作用下,我无法通过这个房间,也无法取得其中的钥匙。

I good vegetable a! 1279

基于IC555的PWM信号发生器设计:从原理到电机调速与LED调光应用

脉冲宽度调制(PWM)是一种通过调节数字脉冲宽度来控制模拟信号电平的核心技术,其原理在于固定频率下改变高电平占空比,从而等效调节平均电压或功率。这项技术因其高效率、低损耗的特点,在电机调速、LED调光、开关电源等工程领域具有重要价值。本文聚焦于利用经典IC555定时器芯片构建PWM信号发生器,通过分析其无稳态工作模式及改进型电路设计,实现了占空比独立可调且频率稳定的信号输出。文中结合电机驱动与LED调光等具体应用场景,详细阐述了电路参数计算、元件选型、PCB设计及常见问题排查等实践要点,为电子爱好者与工程师

weixin_30342363的博客 396

pytorch多层感知机实现假钞识别(完整项目构建)

目录1 项目构建2 超参数设置 config.py3 数据集预处理 preprocess.py4 数据集类构建 dataset_banknote.py5 模型构建 model.py6 训练trainer.py6.1 查看损失曲线7 在测试集上运行 inference.py 1 项目构建 构建项目文件夹Banknote,以及子文件夹与py文件。 名称 作用 data目录 存放原始数据与预处理后切分为训练集、验证机、测试集的数据 log目录 存放训练过程中保存的指标,如损失、精确度等

Demon_LMMan的博客 2026

【動態規劃】通向自由的鑰匙

通向自由的钥匙(key.pas/c/cpp) 通向自由的钥匙被放n个房间里,这n个房间由n-1 条走廊连接。但是每个房间里都有 特别的保护魔法,在它的作用下,我无法通过这个房间,也无法取得其中的钥匙。虽然我可 以通过消耗能量来破坏房间里的魔法,但是我的能量是有限的。那么,如果我最先站在 1 号房间(1 号房间的保护魔法依然是有效的,也就是,如果不耗费能量,我无法通过1号房 间,也无法取得

void* ptr = &OI; 954

从POI兴趣点获取到ArcGIS中热力图制作

1. POI获取及坐标点转换 POI获取我们要借助下面这个网站↓↓↓ 规划云http://guihuayun.com/poi/ 搜索POI兴趣点并复制兴趣点, 图 新建txt文本文档,粘贴兴趣点 图片 查看后得知,lng为横坐标,lat为纵坐标 文件,另存为csv格式文件,编码为utf—8 打开QGIS,因为我们pol点是从百度地图上获取的,为BD09坐标系,与WGS84有一定偏移【GCJ02:火星坐标系,是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系。 BD09:为.

qq_43173805的博客 5598

841. 钥匙和房间

原题链接:841.钥匙和房间 题目: 有 N 个房间,开始时你位于 0 号房间。每个房间有不同的号码:0,1,2,...,N-1,并且房间里可能有一些钥匙能使你进入下一个房间。 在形式上,对于每个房间 i 都有一个钥匙列表 rooms[i],每个钥匙 rooms[i][j] 由 [0,1,...,N-1] 中的一个整数表示,其中 N = rooms.length。 钥匙 rooms[i][j] = v 可以打开编号为 v 的房间。 最初,除 0 号房间外的其余所有房间都被锁住。 你可以自由地在房间

qq_37614657的博客 298

OpenCV 常用的API总结(迅速查询)

OpenCV基本操作 openCV安装 读取图片(IO操作) 绘制集合图形 图像加法以及混合操作 OpenCV图像处理 图像几何变换 形态学操作 图像平滑 直方图 边缘检测 模板匹配 傅里叶变换 轮廓检测 图像分割 图像特征提取 SIFT检测关键点 视频读写............

Peyzhang的博客 3934

从 SAP ABAP 到 S/4HANA,SAML 2.0 单点登录到底是怎么跑起来的

在很多 SAP 项目里,SSO 不是一个锦上添花的功能,而是系统能不能顺利上线的基本门槛。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1048

NKOJ1469 通向自由的钥匙

P1469通向自由的钥匙 时间限制 : 10000 MS 空间限制 : 65536 KB 问题描述 通向自由的钥匙被放n个房间里,这n个房间由n-1条走廊连接。但是每个房间里都有特别 的保护魔法,在它的作用下,我无法通过这个房间,也无法取得其中的钥匙。虽然我可以通过消耗能量来破坏房间里的魔法,但是我的能...

weixin_30693683的博客 164

强化学习在视觉导航中的应用

强化学习在视觉导航中的应用​ ,人工智能,计算机视觉,大模型,AI,强化学习(Reinforcement Learning, RL)是一种通过智能体(Agent)与环境进行交互,以最大化累积奖励为目标的机器学习范式。它不依赖于预定义的规则或大量标注数据,而是让智能体在试错过程中学习最优策略。计算机视觉(Computer Vision)则赋予智能体 “观察” 环境的能力,使其能够从图像或视频中提取有用信息。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 22万+

树型动态规划练习总结

类型一、多叉树转二叉树进行资源分配 例如: * 例1.选课:每门课可能有一门先选课,即某些课必须在另外的某节课被选之后才能选,每门课能得的学分不同,求最大学分。 *例2.通向自由的钥匙:可以从一个房间通向另外多个房间,通过每个房间所需的花费不同,得到的价值也不同,用最小花费获得最大价值。 这种题目的特点是需要在多叉树上进行资源的分配,对不同的子树分配不同的资源,以求最大价...

weixin_30292843的博客 99

深度学习工具包 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&#39;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 = &quot;R. B. Palm&quot;, title = &quot;Prediction as a candidate for learning deep hierarchical models of data&quot;, year = &quot;2012&quot;,}```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(&#39;DeepLearnToolbox&#39;));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(&#39;state&#39;,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&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,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 = &#39;sigm&#39;;%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 &lt; 0.10, &#39;Too big error&#39;);```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(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;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)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;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 &lt; 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% 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&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 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&lt;0.12, &#39;Too big error&#39;);```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(&#39;state&#39;,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 &lt; 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,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 &lt; 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,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 &lt; 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % 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 &lt; 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % 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 &lt; 0.1, &#39;Too big error&#39;);%% 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(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % 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 &lt; 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free &quot;Bitdeli Badge&quot;)

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

tweens运动:数字运动产品中状态过渡的物理建模基础

tweens(补间函数)是计算机图形学中描述状态随时间平滑过渡的核心数学工具,本质为归一化时间域[0,1]上的插值函数。其原理源于传统动画的中间帧生成,后演变为模拟真实物理运动加速度模式的标准化建模方法——如缓入对应启动加速、缓出对应制动减速、缓入缓出则契合人体步态与呼吸等周期性生物节律。在运动健康领域,tweens不仅支撑UI动效与数据可视化可信度,更深度参与运动控制算法、高密度EEG时序对齐、运动蒸馏等硬核场景,成为连接生理真实感与数字呈现的关键技术价值支点。典型应用场景包括智能跳绳计数曲线建模、麦轮机

weixin_34072637的博客 363

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

NKOI 1469 通向自由的钥匙

通向自由的钥匙 Time Limit:10000MS  Memory Limit:65536K Total Submit:96 Accepted:39  Case Time Limit:1000MS Description 通向自由的钥匙被放n个房间里,这n个房间由n-1条走廊连接。但是每个房间里都有特别的保护魔法,在它的作用下,我无法通过这个房间,也无法取得其中的钥匙。虽然我可以通过消

SuperGate的博客 1171

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

寻找自由的钥匙 NKOI 树形DP

题目描述 通向自由的钥匙被放n个房间里,这n个房间由n-1条走廊连接。但是每个房间里都有特别的保护魔法,在它的作用下,我无法通过这个房间,也无法取得其中的钥匙。虽然我可以通过消耗能量来破坏房间里的魔法,但是我的能量是有限的。那么,如果我最先站在1号房间(1号房间的保护魔法依然是有效的,也就是,如果不耗费能量,我无法通过1号房间,也无法取得房间中的钥匙),如果我拥有的能量为P,我最多能取得多少

独立团团长李云龙 652

【题解】树形dp NKOI1469 通向未来的钥匙

水一发水一发(明天再补题解吧 虽然根本不需要) 题面 输入数据 输出数据 样例 数据范围 题面通向自由的钥匙被放 n 个房间里,这 n 个房间由 n-1 条走廊连接。但是每个房间里都有 特别的保护魔法,在它的作用下,我无法通过这个房间,也无法取得其中的钥匙。虽然我可 以通过消耗能量来破坏房间里的魔法,但是我的能量是有限的。那么,如果我最先站在 1 号房间(1 号房间的保护魔法依然是有效的,也就

Aeolusw的博客 645

选课 树形DP+多叉树转二叉树+dfs求解答案

问题 A: 选课 时间限制: 1 Sec内存限制: 128 MB 题目描述 大 学里实行学分。每门课程都有一定的学分,学生只要选修了这门课并考核通过就能获得相应的学分。学生最后的学分是他选修的各门课的学分的总和。 每个学生都要选择规定数量的课程。其中有些课程可以直接选修,有些课程需要一定的基础知识,必须在选了其它的一些课程的基础上才能选修。例如,《数据结 构》必须在选修了《高...

weixin_34397291的博客 245

数字游戏题解

<br />题目描述:<br /> <br />丁丁最近沉迷于一个数字游戏之中。这个游戏看似简单,但丁丁在研究了许多天之后却发觉原来在简单的规则下想要赢得这个游戏并不那么容易。游戏是这样的,在你面前有一圈整数(一共n个),你要按顺序将其分为m个部分,各部分内的数字相加,相加所得的m个结果对10取模后再相乘,最终得到一个数k。游戏的要求是使你所得的k最大或者最小。<br />例如,对于下面这圈数字(n=4,m=2):<br /><br />当要求最小值时,((2-1) mod 10)×((4+3) mod 1

Free-Man 980

noip2008 传纸条

<br /> <br />noip2008 传纸条<br /> <br />传纸条是就是双线问题,这类题目还有经典的方格取数问题。通常遇到这种问题,可以选择加维和增加状态判断解决。<br /> <br />我把从上走到下和从下走到上,看做是两条线从上往下走。<br /> <br />其中加入一个判断条件就是两个点不能从一个相同的点走过来。这样即使他们目前是走到相同的点,那么这个状态以后不会被用到。而到终点的时候就不会冲突了。<br /> <br />我要表示两个点的位置需要两个坐标。那么我需要DP[A][B

Free-Man 916

书的复制

<br /> <br />书的复制<br /> <br />现在要把m本有顺序的书分给k个人复制(抄写),每一个人的抄写速度都一样,<br />一本书不允许给两个(或以上)的人抄写,分给每一个人的书,必须是连续的,比如不能把第一、第三、第四本书给同一个人抄写。 <br />现在请你设计一种方案,使得复制时间最短。复制时间为抄写页数最多的人用去的时间。 <br /> <br />输入格式<br />第一行两个整数m,k;(k<=m<=500) <br />第二行m个整数,第i个整数表示第i本书的页数。<br

Free-Man 912

尼克的任务

<br /> <br />尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,<br /> <br />每个任务由一个开始时刻与一个持续时间构成。<br /> <br />尼克的一个工作日为N分钟,从第一分钟开始到第N分钟结束。当尼克到达单位后他就开始干活。<br /> <br />如果在同一时刻有多个任务需要完戍,尼克可以任选其中的一个来做,而其余的则由他的同事完成,<br /> <br />反之如果只有一个任务,则该任务必需由尼克去完成,假如某些任务

Free-Man 808

奶牛的锻炼

<br />题目描述:<br /><br /><br />奶牛Bessie有N分钟时间跑步,每分钟她可以跑步或者休息。若她在第i分钟跑步,可以跑出D_i米,同时疲倦程度增加1(初始为0)。若她在第i分钟休息,则疲倦程度减少1。无论何时,疲倦程度都不能超过M。另外,一旦她开始休息,只有当疲惫程度减为0时才能重新开始跑步。在第N分钟后,她的疲倦程度必须为0。<br /><br /><br />具体题目及评测:http://www.tyvj.cn/  题目代号为 P1023<br /><br /><br />今天

Free-Man 746

没有上司的晚会 树型DP

<br /> <br />树形DP是DP中的一种,还是比较容易的。<br /> <br />一般采用树形DP,都是从叶子到根.  也有从根到叶子的听说,目前没见到。<br /> <br />做了两题<br /> <br />1.<br />没有上司的晚会 <br /> <br />背景 <br />有个公司要举行一场晚会。 <br />为了能玩得开心,公司领导决定:如果邀请了某个人,那么一定不会邀请他的上司 <br />(上司的上司,上司的上司的上司……都可以邀请)。 <br /> <br /> <br /

Free-Man 668

方格取数 双线DP

<br /> <br />设有N*N的方格图(N<=10,我们将其中的某些方格中填入正整数,而其他的方格中则放入数字0。如下图所示(见样例):<br /> <br />某人从图的左上角的A 点出发,可以向下行走,也可以向右走,直到到达右下角的B点。在走过的路上,他可以取走方格中的数(取走后的方格中将变为数字0)。<br />此人从A点到B 点共走两次,试找出2条这样的路径,使得取得的数之和为最大。<br /> <br />输入格式<br />输入的第一行为一个整数N(表示N*N的方格图),接下来的每行有三个

Free-Man 616
上一篇: 找啊找啊找GF 题解
下一篇: 《把时间当做朋友》书摘
code_beauty
博客等级 码龄16年 25粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值