[CF132C] Logo Turtle , Luogu

A turtle moves following by logos.(length is \(N\)) \(F\) means "move 1 unit forward", \(T\) means turned around(180°). You must change the order \(M\) times.(\(F\) -> \(T\) , \(T\) -> \(F\))

\(N \le 50, M \le 100\).

Click here

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define debug(...) fprintf(stderr,__VA_ARGS__)
#define Debug(x) cout<<#x<<"="<<x<<endl
using namespace std;
typedef long long LL;
const int INF=1e9+7;
inline LL read(){
register LL x=0,f=1;register char c=getchar();
while(c<48||c>57){if(c=='-')f=-1;c=getchar();}
while(c>=48&&c<=57)x=(x<<3)+(x<<1)+(c&15),c=getchar();
return f*x;
} const int N = 1005; int dp[N][N][2];
char s[N];
int n, m; inline void chkmax(int& a, int b){ a = a > b ? a : b; } int main(){
// freopen("a.in","r",stdin);
scanf("%s", (s + 1));
n = strlen(s + 1);
m = read(); memset(dp, 0xcf, sizeof dp);
dp[0][0][0] = dp[0][0][1] = 0; for(int i = 1; i <= n; ++i){
for(int j = 0; j <= m; ++j){ // turned j times in total.
for(int k = 0; k <= j; ++k){ // turn k times at i.
if(s[i] == 'F'){
if(k & 1){
chkmax(dp[i][j][0], dp[i - 1][j - k][1]);
chkmax(dp[i][j][1], dp[i - 1][j - k][0]);
}
else{
chkmax(dp[i][j][0], dp[i - 1][j - k][0] + 1);
chkmax(dp[i][j][1], dp[i - 1][j - k][1] - 1);
}
}
if(s[i] == 'T'){
if(k & 1){
chkmax(dp[i][j][0], dp[i - 1][j - k][0] + 1);
chkmax(dp[i][j][1], dp[i - 1][j - k][1] - 1);
}
else{
chkmax(dp[i][j][0], dp[i - 1][j - k][1]);
chkmax(dp[i][j][1], dp[i - 1][j - k][0]);
}
}
}
// printf("dp[%d][%d] = %d, %d\n", i, j, dp[i][j][0], dp[i][j][1]);
}
} printf("%d\n", max(dp[n][m][0], dp[n][m][1]));
}

[CF132C] Logo Turtle的更多相关文章

  1. Codeforces Beta Round #96 (Div. 1) C. Logo Turtle —— DP

    题目链接:http://codeforces.com/contest/132/problem/C C. Logo Turtle time limit per test 2 seconds memory ...

  2. Codeforces Beta Round #96 (Div. 1) C. Logo Turtle DP

    C. Logo Turtle   A lot of people associate Logo programming language with turtle graphics. In this c ...

  3. CF#132 C. Logo Turtle DP

    C. Logo Turtle 题意 有一个海龟在一个x轴的0点,给出一个由'F','T'组成的字符序列. 海龟要按照这个序列进行行动,如果第i个字符为'F',表示沿当前方向走,'T'表示转身. 现在你 ...

  4. CodeForces 132C Logo Turtle (记忆化搜索)

    Description A lot of people associate Logo programming language with turtle graphics. In this case t ...

  5. codeforces 132C Logo Turtle(dp)

    可以用三维dp来保存状态, dp[i][j][k]表示在前i个字符变换了j步之后方向为k(k = 1 or k = 0)的最优解,也就是离原点的最大距离.这里规定0方向为正方向,1位负方向,表示的是当 ...

  6. Codeforces Beta Round #96 (Div. 2) E. Logo Turtle dp

    http://codeforces.com/contest/133/problem/E 题目就是给定一段序列,要求那个乌龟要走完整段序列,其中T就是掉头,F就是向前一步,然后开始在原点,起始方向随意, ...

  7. CF习题集二

    CF习题集二 一.CF507E Breaking Good 题目描述 \(Breaking Good\)这个游戏对于有经验的玩家来说也有一定的难度. 游戏的主角小明希望加入一个叫斧头帮的犯罪团伙.这个 ...

  8. Overview over available Turtle and Screen methods

    24.5.2.1. Turtle methods Turtle motion Move and draw forward() | fd() backward() | bk() | back() rig ...

  9. turtle文库 ——python

    本文将会为您介绍关于python--turtle库函数,学会这个库函数,会有很多让你意想不到的事情发生哦! 我也也会为你们,简单的编写几个代码,让你们看一下turtle函数的魅力 Turtle库是Py ...

随机推荐

  1. Codeforces Round #588 (Div. 2) D题【补题ING】

    思路:先找出现次数>=2数.然后在取跑所有数,需要考虑一般情况(当一个人比另一个人的ai小且他们的与运算等于小的那个人的ai那么可以知道大的那个人必定强于ai小的那个人). 则可以用位运算实现判 ...

  2. Codeforces 1220 E Tourism

    题面 可以发现一个边双必然是可以随意走的,所以我们就把原图求割边然后把边双缩成一个点,然后就是一个树上dp了. #include<bits/stdc++.h> #define ll lon ...

  3. UVA 11754 Code Feat 中国剩余定理+枚举

    Code FeatUVA - 11754 题意:给出c个彼此互质的xi,对于每个xi,给出ki个yj,问前s个ans满足ans%xi的结果在yj中有出现过. 一看便是个中国剩余定理,但是同余方程组就有 ...

  4. 经过测试,feign只能通过@RequestBody传对象参数

    通过feign调用,使用ModelAttribute 注解,参数没法传到对应的server

  5. mac 安装软件 显示信任任何来源

    “通用”里有时没有“任何来源”这个选项: 显示"任何来源"选项在控制台中执行: sudo spctl --master-disable 不显示"任何来源"选项( ...

  6. 数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历 (SDUT 2141)

    #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> ...

  7. Spring事务管理的一些注意点

    在<Spring Boot事务管理(下)>中,已经介绍了如果在 protected.private 或者默认可见性的方法上使用@Transactional,事务将是摆设,也不会抛出任何异常 ...

  8. 【做题记录】AtCoder AGC做题记录

    做一下AtCoder的AGC锻炼一下思维吧 目前已做题数: 75 总共题数: 239 每一场比赛后面的字母是做完的题,括号里是写完题解的题 AGC001: ABCDEF (DEF) AGC002: A ...

  9. Codeforces 23A You're Given a String...

    A. You're Given a String... time limit per test 2 seconds memory limit per test 256 megabytes input ...

  10. pwn学习日记Day18 《程序员的自我修养》读书笔记

    知识杂项 obj文件:当前源代码编译成二进制目标文件 exe文件:将.obj文件与库文件.lib等文件链接生成的可执行文件 一个现代编译器的主要工作流程如下: 源程序(source code)→ 预处 ...