(1652): [NOIP2010]乌龟棋

CodeForces1046B Hyperspace Highways 传送门 题意: N个点,M条边,每一个环上的点两两有边相连。q次询问两点间最短距离。 题解: 构造圆方树,那么两点间距离感性认知一下就可以发现是树上两点间距离的一半。然后 dist(u,v)=(dep[u]+dep[v]-2*dep[lca])/2即可。 继续存板子。 代码: #include<cstdio> #include<algorithm> #define maxn... 阅读详情

时间限制: 1 Sec  内存限制: 64 MB

题目描述

小明过生日的时候,爸爸送给他一副乌龟棋当作礼物。乌龟棋的棋盘是一行N 个格子,每个格子上一个分数(非负整数)。棋盘第1 格是唯一的起点,第N 格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点。 

乌龟棋中M 张爬行卡片,分成4 种不同的类型(M 张卡片中不一定包含所有4 种类型的卡片,见样例),每种类型的卡片上分别标有1、2、3、4 四个数字之一,表示使用这种卡片后,乌龟棋子将向前爬行相应的格子数。游戏中,玩家每次需要从所有的爬行卡片中选择一张之前没有使用过的爬行卡片,控制乌龟棋子前进相应的格子数,每张卡片只能使用一次。

游戏中,乌龟棋子自动获得起点格子的分数,并且在后续的爬行中每到达一个格子,就得到该格子相应的分数。玩家最终游戏得分就是乌龟棋子从起点到终点过程中到过的所有格子的分数总和。很明显,用不同的爬行卡片使用顺序会使得最终游戏的得分不同,小明想要找到一种卡片使用顺序使得最终游戏得分最多。

现在,告诉你棋盘上每个格子的分数和所有的爬行卡片,你能告诉小明,他最多能得到多少分吗?

输入

输入文件的每行中两个数之间用一个空格隔开。

第1 行2 个正整数N 和M,分别表示棋盘格子数和爬行卡片数。

第2 行N 个非负整数,a1, a2, ……, aN,其中ai 表示棋盘第i 个格子上的分数。

第3 行M 个整数,b1,b2, ……, bM,表示M 张爬行卡片上的数字。输入数据保证到达终点时刚好用光M 张爬行卡片.

数据范围:N<=350,M<=120,每种卡片数量保证不超过40.

输出

输出只有1 行,1 个整数,表示小明最多能得到的分数。

样例输入

Copy (如果复制到控制台无换行,可以先粘贴到文本编辑器,再复制)

9 5
6 10 14 2 8 8 18 5 17
1 3 1 2 1

样例输出

73

提示

 

 

第一印象,爆搜!!

(然而数据太大了)

 

然后..dp吧。

用4种牌的量建立状态。。

 

于是,详见代码。

 

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int a[355],f[45][45][45][45],n,m,b[5];
int main()
{
    int i,j,k,l;
    scanf("%d%d",&n,&m);
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    for(i=1;i<=m;i++)
    {
        scanf("%d",&j);
        b[j]++;
    }
    f[0][0][0][0]=a[0];
    for(i=0;i<=b[1];i++)
        for(j=0;j<=b[2];j++)
            for(k=0;k<=b[3];k++)
                for(l=0;l<=b[4];l++)
                {
                    if(/*i+2*j+3*k+4*l>=1&&*/i>0) f[i][j][k][l]=max(f[i][j][k][l],f[i-1][j][k][l]+a[i+2*j+3*k+4*l]);
                    if(/*i+2*j+3*k+4*l>=2&&*/j>0) f[i][j][k][l]=max(f[i][j][k][l],f[i][j-1][k][l]+a[i+2*j+3*k+4*l]);
                    if(/*i+2*j+3*k+4*l>=3&&*/k>0) f[i][j][k][l]=max(f[i][j][k][l],f[i][j][k-1][l]+a[i+2*j+3*k+4*l]);
                    if(/*i+2*j+3*k+4*l>=4&&*/l>0) f[i][j][k][l]=max(f[i][j][k][l],f[i][j][k][l-1]+a[i+2*j+3*k+4*l]);
                }
    printf("%d",f[b[1]][b[2]][b[3]][b[4]]);
}
/**************************************************************
    Problem: 1652
    User: C20172037dza
    Language: C++
    Result: 正确
    Time:30 ms
    Memory:17520 kb
****************************************************************/


and then.......没有然后了..

 

 

QAQ

 

方程见代码。

 

 

 

oj-【基础图论】最优布线问题 题目描述 学校有n台计算机,为了方便数据传输,现要将它们用数据线连接起来。两台计算机被连接是指它们中间有数据线连接。由于计算机所处的位置不同,因此不同的两台计算机的连接费用往往是不同的。 当然,如果将任意两台计算机都用数据线连接,费用将是相当庞大的。 为了节省费用,我们采用数据的间接传输手段,即一台计算机可以间接的通过若干台计算机(作为中转)来实现与另一台计算机的连接。 现在由你负责连接这些计... 阅读详情

相关推荐

作业-合并果子(fruit)

题目描述 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。 多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。 假定每个果子...

dogeding233 936

Hoj 3140\ Vijos 1775 乌龟棋

题目连接:http://acm.hit.edu.cn/hoj/problem/view?id=3140 https://vijos.org/p/1775 描述 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物。 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数)。棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点。 乌龟棋中M张

1036

openjudge-noi-3.6-1758:二叉树

总时间限制:  1000ms  内存限制:  65536kB 描述 如上图所示,由正整数1, 2, 3, ...组成了一棵无限大的二叉树。从某一个结点到根结点(编号是1的结点)都有一条唯一的路径,比如从10到根结点的路径是(10, 5, 2, 1),从4到根结点的路径是(4, 2, 1),从根结点1到根结点的路径上只包含一个结点1,因此路径就是(1)。对于两个结点x和y,假设他们到...

dogeding233 932

wikioi 1068 乌龟棋

1068 乌龟棋   4人推荐  收藏 发题解 提交代码报错题目描述输入描述输出描述样例输入样例输出提示 题目描述 Description 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物。 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数)。棋盘第1格是唯一 的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点。

lamborghini1993 1856

Noip 2010 提高组 第二题 乌龟棋

Noip 2010 提高组 第二题 乌龟棋 题解

别再为淘宝滑块发愁了!一个Python脚本自动获取x5sec cookie的保姆级教程

本文提供了一套完整的Python自动化解决方案,帮助开发者轻松应对淘宝滑块验证码问题。通过模拟浏览器行为、精准识别滑块缺口位置和生成拟人化移动轨迹,脚本能够自动获取关键的x5sec cookie,显著提升爬虫效率。教程涵盖环境配置、验证机制分析、代码实现及反检测策略,是解决淘宝滑块验证的实用指南。

weixin_30300225的博客 574

【基础练习】【背包DP】codevs1068 乌龟棋题解

题目来自2010NOIP提高组 题目描述 Description 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物。 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数)。棋盘第1格是唯一 的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点。 …… 1 2 3 4 5 ……N 乌龟棋中M张爬行卡片,分成4种不同的类型(M张卡片中不一定包含所有4种

西家家 2143

立创开源桌面激光雕刻机DIY全解析:从悬臂结构、Arduino主控到Marlin固件

本文详细解析了基于立创开源平台的桌面激光雕刻机DIY全过程。重点介绍了悬臂式机械结构的设计与优化,阐述了采用Arduino Mega 2560主控与RAMPS 1.4扩展板的经典控制方案,并深入讲解了Marlin固件的关键配置步骤,包括电机步数计算与激光功能启用,为创客和电子爱好者提供了一套完整的从硬件搭建到软件调试的实战指南。

weixin_42510201的博客 382

P1541 乌龟棋 线性dp

题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物。 题目描述 乌龟棋的棋盘是一行NN个格子,每个格子上一个分数(非负整数)。棋盘第1格是唯一的起点,第NN格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点。 乌龟棋中MM张爬行卡片,分成4种不同的类型(MM张卡片中不一定包含所有44种类型的卡片,见样例),每种类型的卡片上分别标有1,2,3,41,2,3,4四个数字之一,表示使...

weixin_30291791的博客 235

天池长期赛:二手车价格预测(422方案分享)

本次比赛是一次很好的锻炼数据挖掘能力的入门赛,从EDA-数据清洗-特征工程-模型调参-模型融合,能够完整的学习到大数据的分析和挖掘,值得历练。

weixin_46685991的博客 1万+

Abaqus仿真突然中断?手把手教你解决SIGTERM/SIGINT报错(附完整命令行方案)

本文深入解析Abaqus仿真中因SIGTERM或SIGINT信号导致进程意外中断的根本原因,并提供了一套完整的命令行解决方案。通过将作业提交方式从图形界面切换到命令行,并配合关键参数设置,可以有效避免因会话空闲超时或外部干扰引发的计算中断,保障长时间仿真任务的稳定运行。

devops8pract的博客 745

全国信息学奥林匹克联赛(NOIP2010)复赛 题目

一.题目概况中文题目名称机器翻译乌龟棋关押罪犯引水入城英文题目与子目录名translatetortoiseprisonflow可执行文件名translatetortoiseprisonflow输入文件名translate.intortoise.inprison.inflow.in

ccnyou的专栏 5924

达梦慢sql和统计信息收集

各计划节点的执行顺序为:缩进越多的越先执行,同样缩进的上面的先执行,下面的后执行,上下的优先级高于内外。在建立索引的时候,要考虑索引的最左匹配原则(在使用 SQL 语句时,如果 where 部分的条件不符合最左匹配原则,可能导致索引失效,或者不能完全发挥建立的索引的功效);执行计划是 SQL 语句的执行方式,由查询优化器为语句设计的执行方式,交给执行器去执行。生产系统中,对于频繁变动的数据表,多次执行计划可能会出现不一致的问题,这往往是由于统计信息不准导致的,索引定期收集统计信息就很有必要了。

m0_37680131的博客 1713

[NOIP2010] 乌龟棋 解题报告

[NOIP2010] 乌龟棋 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物。 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数)。棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点。 乌龟棋中M张爬行卡片,分成4种不同的类型(M张卡片中不一定包含所有4种类型的卡片,见样例),每种类型的卡片上分别标有1、2、3、4四个数字之一

Janis_z的博客 1615

基于卷积神经网络的人脸表情识别(JAFFE篇)

1.win10/11操作系统2.python3.7以上3.tensorflow2.4以上版本(2.0其它版本需要微调)4.内存12G,显卡4G以上(没有独显倒是也能跑...)(这个可爱的妹子就是JAFFE数据集中的图片)

小林同学的计算机学习 5913

极验验证码: 一点即过验证(鼠标轨迹分析)

2、第一个验证接口分析(第一个w值还原) 3、第二个验证接口(第二个w值还原)这里定位w生成跟上篇文章一样,就不展开了;主要分析tt值(鼠标轨迹)的生成逻辑

qq_49268524的博客 1009

乌龟棋 (NOIP2010)复赛 提高组 试题二 解题代码

/* 全国信息学奥林匹克联赛(NOIP2010)复赛 提高组 第二题 【问题描述】 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物。 乌龟棋的棋盘是一行N 个格子,每个格子上一个分数(非负整数)。棋盘第1 格是唯一 的起点,第N 格是终点,游戏要求玩家控制一个乌龟棋子从

ccnyou的专栏 2810

国产上位机软件突围:适配统信UOS/麒麟OS的跨平台开发技术与实践(2026年信创实战指南)

(航天科技集团CTO):“在信创战场上,1ms的延迟意味着1个卫星的控制失效。2026年,C#/.NET MAUI不是选择,而是我们守护卫星的‘生命线’。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 404

ACM 519. [NOIP2010] 乌龟棋(dp)

519. [NOIP2010] 乌龟棋 ★☆   输入文件:tortoise.in   输出文件:tortoise.out   简单对比 时间限制:1 s   内存限制:128 MB 2.乌龟棋 (tortoise.pas/c/cpp) 【问题描述】 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物。 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数)。棋盘第1格是唯一的起

seektheworld 942

OV9734 DATASHEET,完整规格书

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

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

openjudge-noi-2.5-7084:迷宫问题

总时间限制:  1000ms 内存限制:  65536kB   描述 定义一个二维数组:  int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走...

dogeding233 1250

WINCC7.3破解文件

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

AGC012B Splatter Painting

传送门 题意: 给你一个n个节点的简单无向图(无重边、自环),含有m条边。现在有q次操作。初始的时候所有点的颜色都为0。 每一次操作的描述如下:选择一个节点v[i],将与这个节点的距离小于等于d[i]的点全部都染成颜色c[i]。 现在要求你回答,完成这q次操作之后,每一个点的最终颜色是什么。 题解: 这道题d很小(≤10),可以暴力。但是直接暴力有可能会T(举个例子:菊花图)。 考虑将操作倒过来,...

dogeding233 1130

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

作业-FBI树(fbi-tree.cpp)

题目描述 我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为B串,全“1”串称为I串,既含“0”又含“1”的串则称为F串。 1) T的根结点为R,其类型与串S的类型相同; 2) 若串S的长度大于1,将串S从中间分开,分为等长的左右子串S1和S2;由左子串S1构造R的左子树T1,由右子串S2构造R的右子树T2。 现在给定一个长度为2^N的“01”串,请用上述构造方法构造出一棵FBI树,

dogeding233 1043

(1151): 循环比赛

时间限制: 1 Sec  内存限制: 64 MB 题目描述 设有n个选手的循环比赛。其中n=2的m次方。要求每名选手要与其他n-1名选手都赛一次。每名选手至少每天比赛一次,循环赛共进行了n-1天,要求每天没有选手轮空。 输入:m 输出:表格形式的比赛安排表。 输入 第1行:1个整数M(1&lt;=M&lt;=8) 输出 N(N=2^M)-1天的比赛安排表。数据以N*N的矩阵形式输出。每...

dogeding233 1020

(1506): 双塔问题

时间限制: 1 Sec  内存限制: 64 MB 题目描述 第三题:双塔问题 2001年9月11日,一场突发的灾难将纽约世界贸易中心大厦夷为平地,Mr. F曾亲眼目睹了这次灾难。为了纪念"9?11"事件,Mr. F决定自己用水晶来搭建一座双塔。 Mr. F有N块水晶,每块水晶有一个高度,他想用这N块水晶搭建两座有同样高度的塔,使他们成为一座双塔,Mr. F可以从这N块水晶中任取M(1≤M≤N)...

dogeding233 889

openjudge-noi-4.6-1455:An Easy Problem

题意大概是这样的:给一个数I,转化为二进制,找到一个比它大的数,使其1的数量与I相等,输出最小的满足题意的十进制数.     总时间限制:  1000ms  内存限制:  65536kB 描述 As we known, data stored in the computers is in binary form. The problem we discuss now is abou...

dogeding233 846

(1365): [CEOI96]渡轮问题

时间限制: 1 Sec  内存限制: 64 MB 题目描述 Palmia 河在某国从东向西流过,并把该国分为南北两个部分。河的两岸各有 N 座城市,且北岸的每一个城市都与南岸的某个城市是友好城市,而且友好关系是一一对应的。现在要求在两个友好城市之间建立一条航线,但由于天气的原因,所有航线都不能相交,因此,就不可能给所有的友好城市建立航线。 问题:当给出城市个数和友好关系的信息之后,选择一种修建...

dogeding233 841
上一篇: (1151): 循环比赛
下一篇: (2050): 【NOIP2012普及组】摆花
dogeding
博客等级 码龄10年 31粉丝 109原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值