悦动达人

Description

一个游戏,在屏幕上有5个格子形成一行,每一秒都会有一个格子闪烁,格子闪烁时你需要保证至少有一只手指在格子上面, 现在我们已经知道第i秒时,第xi个格子会闪烁,我们假设手指的移动不花费时间,你现在用两根手指玩这个游戏, 设初始两根手指都在0处位置,算出n秒过后手指需要移动的最小距离。(允许手指交叉)

注:手指移动的距离的计算是,假设你的一根从x,移动到y格,那么移动的距离是|x-y|

Input

第一行一个数T,表示有T组测试数据(T<=50) 第二行,n,表示进行n秒(1<=n<=10^4) 下一行 n个数,xi(0<=xi<=4)

Output

输出n秒过后手指需要移动的最小距离.

Sample Input

1 2 0 2

Sample Output

2

HINT

DP题

dp[i][j][k]表示两个手指在i位置和j位置的时候走到第k步所最少需要的移动距离。

 1 #include <iostream>
 2 #include <cstring>
 3 #include <cstdio>
 4 #include <string>
 5 #include <cmath>
 6 #include <algorithm>
 7 using namespace std;
 8 int T, n;
 9 int dp[5][5][10010];
10 int mark[10010];
11 int main(){
12     scanf("%d", &T);
13     while(T--){
14         scanf("%d", &n);
15         for(int i = 1; i <= n; i++){
16             scanf("%d", &mark[i]);
17         }
18         memset(dp, -1, sizeof(dp));
19         dp[0][0][0] = 0;
20         for(int k = 1; k <= n; k++){
21             for(int i = 0; i < 5; i++){
22                 for(int j = 0; j < 5; j++){
23                     if(dp[i][j][k-1] == -1) continue; //这种状态不存在。
24                     int d = abs(i-mark[k]);
25                     if(dp[mark[k]][j][k] == -1) dp[mark[k]][j][k] = dp[i][j][k-1]+d;
26                     else  dp[mark[k]][j][k] = min( dp[mark[k]][j][k],dp[i][j][k-1]+d);
27                     d = abs(j-mark[k]);
28                     if(dp[i][mark[k]][k] == -1) dp[i][mark[k]][k] = dp[i][j][k-1]+d;
29                     else  dp[i][mark[k]][k] = min( dp[i][mark[k]][k],dp[i][j][k-1]+d);
30                 }
31             }
32         }
33         int min = 99999999;
34         for(int i = 0; i < 5; i++){
35             for(int j = 0; j < 5; j++){
36                 if(dp[i][j][n] != -1 && dp[i][j][n] <= min) min = dp[i][j][n];
37             }
38         }
39         printf("%d\n", min);
40     }
41     return 0;
42 }
时间: 2024-11-07 22:26:28

悦动达人的相关文章

悦动达人 (多维dp)

悦动达人 Description 一个游戏,在屏幕上有5个格子形成一行,每一秒都会有一个格子闪烁,格子闪烁时你需要保证至少有一只手指在格子上面, 现在我们已经知道第i秒时,第xi个格子会闪烁,我们假设手指的移动不花费时间,你现在用两根手指玩这个游戏, 设初始两根手指都在0处位置,算出n秒过后手指需要移动的最小距离.(允许手指交叉) 注:手指移动的距离的计算是,假设你的一根从x,移动到y格,那么移动的距离是|x-y| Input 第一行一个数T,表示有T组测试数据(T<=50) 第二行,n,表示进

广工校赛——DP——悦动达人

Description 一个游戏,在屏幕上有5个格子形成一行,每一秒都会有一个格子闪烁,格子闪烁时你需要保证至少有一只手指在格子上面, 现在我们已经知道第i秒时,第xi个格子会闪烁,我们假设手指的移动不花费时间,你现在用两根手指玩这个游戏, 设初始两根手指都在0处位置,算出n秒过后手指需要移动的最小距离.(允许手指交叉) 注:手指移动的距离的计算是,假设你的一根从x,移动到y格,那么移动的距离是|x-y| Input 第一行一个数T,表示有T组测试数据(T<=50) 第二行,n,表示进行n秒(1

发现最有正能量的网络达人”,Spark开发者大赛火热进行!

2014-10-13 Spark亚太研究院 2014年9月30日,2014 Spark开发者大赛在北京正式启动.本次大赛由Spark亚太研究院联合国内领先的IT技术创新与发展的互联网媒体平台51CTO传媒及国内最大的IT在线教育平台51CTO学院在亚太范围内发起.面向云计算大数据从业者.Spark技术爱好者及数百所高校在读学生.无论是对Spark有浓厚兴趣的初学者.或者Spark应用高手,还是Spark源码级别大牛,都可以借助本次大赛,一展才华,就Spark技术与应用实践展开交流及切磋. Spa

CSDN日报20170425 ——《私活,是对技术达人最好的点赞》

[程序人生]私活,是对技术达人最好的点赞 作者:littletigerat 简而言之,接私活,是市场经济对技术达人最好的奖赏和点赞. 点击阅读全文 [深度学习]基于卷积神经网络(CNN)的中文垃圾邮件检测 作者:clayanddev 随着深度学习的发展以及RNN.CNN的陆续出现,特征向量的构建将会由网络自动完成,因此我们只要将文本的向量表示输入到网络中就能够完成自动完成特征的构建与分类过程. 点击阅读全文 [Java]Java 爬虫工具Jsoup解析 作者:Smile_Miracle Jsou

【BZOJ-3033】太鼓达人 欧拉图 + 暴搜

3033: 太鼓达人 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 204  Solved: 154[Submit][Status][Discuss] Description 七夕祭上,Vani牵着cl的手,在明亮的灯光和欢乐的气氛中愉快地穿行.这时,在前面忽然出现了一台太鼓达人机台,而在机台前坐着的是刚刚被精英队伍成员XLk.Poet_shy和lydrainbowcat拯救出来的的applepi.看到两人对太鼓达人产生了兴趣,applepi果断闪

《31天成为IT服务达人》之技能篇硬件维护技能概要

 server维护技能 server硬件作为应用软件部署的基础平台,是基础架构中最为核心的设备.一旦server出现问题就会影响业务的正常开展.因此,server的运维管理对于企业整个IT运维管理来说尤为关键. 怎样做好server的硬件维护?掌握哪些server硬件运维知识或技能?是每一个server硬件运维人员所要深思的事情.server运维人员的工作"包括单不限于"下面列表中内容,只是这些也是server硬件运维project师的典型职责: 參与制定server应用规划和实施

小米·粽子达人

粽子达人 闲来无聊,加上今天没有抢到小米任何产品,(小米2以来,基本小米的产品都有抢到过,特别是红米手机抢得够多,现在就遗憾抢不到红米note了),所以想吃200个粽子,成为攻城狮. 可由于手拙,只能吃到 100 多,无法完成心愿.故只好使用外挂,小小几行代码模拟敲击 white space key 就行了. 1 using System.Runtime.InteropServices; 2 3 namespace Snippet 4 { 5 public class SimulateKeyBo

用《捕鱼达人》去理解C#中的多线程

参考:http://www.cnblogs.com/maitian-lf/p/3678128.html 用<捕鱼达人>去理解C#中的多线程,布布扣,bubuko.com

草根自媒体很难再出“达人”嘛?冯东阳+4个月+草根=月收过万+粉丝总浏览突破“百万”…………

草根在十年前就被网络提起,最近两年很是流行.自己也做自媒体有些年月了,深深感触草根很难再出达人.自媒体达人三要素=原创+坚持+分享 达人都是逆袭成功的.你想成功,你想成为达人,可是你的行动呢?坚持呢?分享的精神呢?前几天北京游玩,也认识了一位数据SEO的牛人,他姓胡“自称胡歌”,哈~ 他是一个对数据来源很敏感的人,哪怕是跟他面对面的交流时.你可能会问,他丫的有病吧.No……No,恰恰相反,胡哥的智商挺高的,智商简直超群.在这里倒不是说胡哥有多么的牛叉,是说他那一种令人难以置信,甚至不可理喻的专注