Tyvj 1211 DP
来源:互联网 发布:格式化恢复软件 编辑:程序博客网 时间:2024/05/22 20:04
dp[i][num[i]][j] 表示第i次 左脚在num[i]位置上,右脚在j位置上的最小消耗体能值
dp[i][j][num[i]]表示第i次 右脚在num[i]位置上,左脚在j位置上的最小消耗体能值
AC代码如下:
#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>using namespace std;#define MAX 0x3f3f3f3fint dp[11000][5][5];int num[10000];int main(){int N;while( scanf( "%d", &N ) != EOF ){for( int i = 0; i < N; i++ ){cin >> num[i];num[i]--;}memset( dp, 0x3f, sizeof( dp ) );dp[0][num[0]][4] = 2;dp[0][4][num[0]] = 2;for( int i = 1; i < N; i++ ){//遍历左脚for( int j = 0; j < 5; j++ ){if( j == num[i] ){continue;}for( int k = 0; k < 5; k++ ){if( k == j || dp[i-1][k][j] == MAX ){continue;}if( k == 4 ){dp[i][num[i]][j] = min( dp[i][num[i]][j], dp[i-1][k][j] + 2 );}else if( abs( k - num[i] ) == 2 ){dp[i][num[i]][j] = min( dp[i][num[i]][j], dp[i-1][k][j] + 4 );}else if( abs( k - num[i] ) == 1 || abs( k - num[i] ) == 3 ){dp[i][num[i]][j] = min( dp[i][num[i]][j], dp[i-1][k][j] + 3 );}else{dp[i][num[i]][j] = min( dp[i][num[i]][j], dp[i-1][k][j] + 1 );}}}//遍历右脚for( int j = 0; j < 5; j++ ){if( j == num[i] ){continue;}for( int k = 0; k < 5; k++ ){if( k == j || dp[i-1][j][k] == MAX ){continue;}if( k == 4 ){dp[i][j][num[i]] = min( dp[i][j][num[i]], dp[i-1][j][k] + 2 );}else if( abs( k - num[i] ) == 2 ){dp[i][j][num[i]] = min( dp[i][j][num[i]], dp[i-1][j][k] + 4 );}else if( abs( k - num[i] ) == 1 || abs( k - num[i] ) == 3 ){dp[i][j][num[i]] = min( dp[i][j][num[i]], dp[i-1][j][k] + 3 );}else{dp[i][j][num[i]] = min( dp[i][j][num[i]], dp[i-1][j][k] + 1 );}}}}int ans = MAX;for( int i = 0; i < 5; i++ ){ans = min( dp[N-1][num[N-1]][i], ans );}for( int i = 0; i < 5; i++ ){ans = min( dp[N-1][i][num[N-1]], ans );}cout << ans << endl;}return 0;}
0 0
- Tyvj 1211 DP
- TYVJ 1211 跳舞家怀特先生(DP)
- tyvj-1034 DP
- tyvj-1044 DP
- tyvj-1045 DP
- tyvj-1048 DP
- tyvj-1050 LCS DP
- tyvj-1052 树形DP
- tyvj-1055 区间DP
- tyvj-1144 股票 DP
- tyvj-1084 简单DP
- [TYVJ-1088] DP
- [TYVJ-1195] DP
- [TYVJ-1102] DP
- TYVJ-1046 DP
- TYVJ-1057 DP
- 【tyvj】【dp】合唱队型
- Tyvj 1008 传球游戏 dp
- 计算机 - 中国发展
- NSArray 数据对象的多个条件进行排序
- LinkedList链表形式的列表应用
- QT/E中的字体
- Linux中断研究
- Tyvj 1211 DP
- RRD文件格式分析
- 一个按钮触发多个事件
- PDMLink 10.2 的更改管理
- 模拟计算机
- time 时间与字符串转换
- PB DataWindow 38个技巧
- base64 压缩传送和非压缩传送
- 计算机科学与技术是一门实用性