codeforces 132C Logo Turtle--- dp dfs】的更多相关文章

可以用三维dp来保存状态, dp[i][j][k]表示在前i个字符变换了j步之后方向为k(k = 1 or k = 0)的最优解,也就是离原点的最大距离.这里规定0方向为正方向,1位负方向,表示的是当前这个人朝哪个方向.这两个方向是对立的. 所以就可以递推一个关系式,分第i个字符为'F' or 'T'时 如果为'F' 依次枚举在第i个位置变换了几步,这是枚举的范围为0~j, 假设变换了k步(和上面的dp[i][j][k]当中的k不是一个) 1. 如果当k为奇数的时候,就是相当于变化了1步,所以'…
Description A lot of people associate Logo programming language with turtle graphics. In this case the turtle moves along the straight line and accepts commands "T" ("turn around") and "F" ("move 1 unit forward"). Y…
题目链接:http://codeforces.com/contest/132/problem/C C. Logo Turtle time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output A lot of people associate Logo programming language with turtle graphics. In…
C. Logo Turtle   A lot of people associate Logo programming language with turtle graphics. In this case the turtle moves along the straight line and accepts commands "T" ("turn around") and "F" ("move 1 unit forward"…
C. Logo Turtle 题意 有一个海龟在一个x轴的0点,给出一个由'F','T'组成的字符序列. 海龟要按照这个序列进行行动,如果第i个字符为'F',表示沿当前方向走,'T'表示转身. 现在你必须改变n个操作,把'F'变成'T',或者把'T'变成'F',同一个操作可以改变多次,问终点距离起点最大距离. 思路 看数据范围就是DP. 先说正解. dp[i][j][0]表示执行完前i步,改变了j次,方向为正对起点的最大距离 dp[i][j][1]表示执行完前i步,改变了j次,方向为背对起点的最…
题目在这里:点击打开链接 题意: F表示前进一步,T表示变成反方向 给一串FT字符,和一个n,表示可以改变多少次,求可以走到的离原点最远的距离 改变就是F变成T.T变成F 关键: dfs(int d,int pos,int i,int cnt) dp[][][][] 依次表示,方向.最长距离.到字符串的哪一个点了.还剩多少改变次 因为你每到一步,下一步只有两种情况: 一种是方向改变,pos不变 一种个是方向不变,pos朝当前+1 两种情况的cnt 根据当前值是F还是T -0或者-1 哎╮(╯▽╰…
http://codeforces.com/contest/133/problem/E 题目就是给定一段序列,要求那个乌龟要走完整段序列,其中T就是掉头,F就是向前一步,然后开始在原点,起始方向随意,要求输出能走到最远是哪里. 首先可以保证的是,他最远走的可以默认是向右走,因为,如果你说是向左走的话,我可以设置相反的开始face,就是开始的时候面向那里,从而得到相反的结论.所以就能得到向左走,是-1,向右走,是+1 那么从最终状态考虑, 最后肯定是走完了整段序列,然后改变了n次,face是那里还…
D. Valid Sets time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output As you know, an undirected connected graph with n nodes and n - 1 edges is called a tree. You are given an integer d and a tree…
[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…
Va爷的胡策题T2 E. Fairy time limit per test1.5 seconds memory limit per test256 megabytes inputstandard input outputstandard output Once upon a time there lived a good fairy A. One day a fine young man B came to her and asked to predict his future. The fa…