CODEFORCE #519 C. Smallest Word


题目链接

吐槽:

这题我还没搞懂题意,峡哥已经A了,猜了个规律就过了,,然后跟我说了下题意,我第一反应DP可以搞,,写了几分钟过了,看题半小时,做题五分钟啊,,,,

题意:

  • 给你一个只包含’a’与’b’的字符串,
  • 你需要从下标1~n,依次决定对当前下标i选择两种操作之一:
    0.保持不变
    1.将1~i这个前缀翻转,比如abb -> bba
  • 输出能获得的最小字典序的字符串,并输出操作 (001表示前两次保持不变,第三次翻转)

思路:

dp思路

  • 定义状态: 设一个dp[2][i] ,dp[0][i]表示到下标i为止能获得最长前缀a的操作,dp[1][i]表示到下标i为止能获得最长后缀a的操作。(这里dp数组存的是一个‘0’,‘1’字符串,表示操作)。
  • 状态转移:
    1.考虑当前添加一个’a’,那么dp[0][i]=dp[1][i-1]+‘1’,dp[1][i]=dp[1][i-1]+‘0’
    2.考虑当前添加一个’b’,那么dp[0][i]=dp[0][i-1]+
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值