zoukankan      html  css  js  c++  java
  • 牛客网练习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 */
  • 相关阅读:
    query and join operation after sharding
    Windows Phone中的几种集合控件
    什么是SOPA SOPA的危害
    自动刷新人人网API session_key方法
    Windows Phone XNA创建简单局域网游戏
    static 修饰MySqlConnection引发的异常
    $Dsu$ $on$ $Tree$ 复习
    $Noip$前的小总结哦
    $NOIP2018$ 暴踩全场计划实施方案
    $NOIP2018$ 爆踩全场记
  • 原文地址:https://www.cnblogs.com/CJLHY/p/8594018.html
Copyright © 2011-2022 走看看