• 牛客网练习13 乌龟跑步


    https://www.nowcoder.com/acm/contest/70/E

    思路:我dp好菜啊。。   dp[ i ][ j ][ k ][ op ] 表示 到第 i 个字符,用来 j 次操作,能否到达k并朝向op方向。

     1 #include<bits/stdc++.h>
     2 #define fi first
     3 #define se second
     4 #define mk make_pair
     5 #define pii pair<int,int>
     6 #define read(x) scanf("%d",&x)
     7 #define sread(x) scanf("%s",x)
     8 #define dread(x) scanf("%lf",&x)
     9 #define lread(x) scanf("%lld",&x)
    10 using namespace std;
    11 
    12 typedef long long ll;
    13 const int inf=0x3f3f3f3f;
    14 const int INF=0x3f3f3f3f3f3f3f3f;
    15 const int N=107;
    16 const int M=12;
    17 
    18 int n,m;
    19 char s[N];
    20 bool dp[N][51][220][2];
    21 int main()
    22 {
    23     sread(s+1); read(m);
    24     int n=strlen(s+1);
    25 
    26     dp[0][0][105][1]=true;
    27     for(int i=1;i<=n;i++)
    28     {
    29         for(int j=0;j<=m;j++)
    30         {
    31             for(int k=1;k<=211;k++)
    32             {
    33                 if(s[i]=='F')
    34                 {
    35                     if(j) dp[i][j][k][0]|=dp[i-1][j-1][k][1];
    36                     if(j) dp[i][j][k][1]|=dp[i-1][j-1][k][1];
    37 
    38                     dp[i][j][k][0]|=dp[i-1][j][k+1][0];
    39                     dp[i][j][k][1]|=dp[i-1][j][k-1][1];
    40                 }
    41                 else
    42                 {
    43                     if(j) dp[i][j][k][0]|=dp[i-1][j-1][k+1][0];
    44                     if(j) dp[i][j][k][1]|=dp[i-1][j-1][k-1][1];
    45 
    46                     dp[i][j][k][0]|=dp[i-1][j][k][1];
    47                     dp[i][j][k][1]|=dp[i-1][j][k][0];
    48                 }
    49             }
    50         }
    51     }
    52     int ans=0;
    53     for(int i=1;i<=211;i++)
    54     {
    55         if(dp[n][m][i][0])
    56             ans=max(ans,abs(i-105));
    57         if(dp[n][m][i][1])
    58             ans=max(ans,abs(i-105));
    59     }
    60     printf("%d
    ",ans);
    61     return 0;
    62 }
    63 /*
    64 */
  • 相关阅读:
    使用JDBCTemplate执行DQL/DML语句
    spring中JDBCTemplate的简单应用
    Druid数据库连接池工具类
    Same Tree
    Remove Duplicates from Sorted List
    Length of Last Word
    Remove Element
    Remove Duplicates from Sorted Array
    java-StringBuffer更改功能
    java-StringBuffer的删除功能
  • 原文地址:https://www.cnblogs.com/CJLHY/p/8594018.html
Copyright © 2020-2023  润新知