【动态规划】Alternating Strings Gym
来源:互联网 发布:java web敏捷开发框架 编辑:程序博客网 时间:2024/06/08 02:18
【动态规划】Alternating Strings Gym - 100712D
【vj链接】
题目大意
第一行为T (1 ≤ T ≤ 64)
每组数据包括两行
第一行 n k (1 ≤ K ≤ N ≤ 1000)
第二行01串,共n个
求至少剪开多少处才能使每一部分都不长于k且不是01交替的串(比如010101,101)
Sample Input
46 31110005 2110103 31103 3101
Sample Output
1302
解题思路
从后往前dp;
dp[i]表示从a[i]到a[n-1]能组成的符合条件的串;
j从i到i+k;
转移方程大致为dp[i]=min(dp[i],dp[j+1]+1)(还有一些条件);
AC代码
#include <cstdio>#include <iostream>#include <algorithm>using namespace std;#define LL long longconst LL maxn=1000+7;int dp[maxn];char a[maxn];int main(){ int t,n,k,i,j; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&k); scanf("%s",a); dp[n]=0; for(i=n-1;i>=0;i--) { bool flag=false; dp[i]=dp[i+1]+1; if(a[i]==a[i+1]) flag=true; j=i+1; while(j<n&&j<i+k) { if(a[j]==a[j-1]) flag=true; if(flag) dp[i]=min(dp[i],dp[j+1]+1);//从j后面切一刀 j++; } } printf("%d\n",dp[0]-1); } return 0;}
阅读全文
0 0
- 【动态规划】Alternating Strings Gym
- Gym 100712D Alternating Strings 动态规划
- Gym 100712D Alternating Strings (dp)
- GYM 100712 L.Alternating Strings II(dp+线段树)
- amman D.Alternating Strings
- 区间dp Gym100712D Alternating Strings
- GYM-100952-Special Palindrome【动态规划】
- HDU6170 Two strings(动态规划)
- Gym 100703F Game of words 动态规划
- 2015 ACM Amman Collegiate Programming Contest L .Alternating Strings II
- 2015 ACM Amman Collegiate Programming Contest D.Alternating Strings【Dp】
- GYM 100247 B. Similar Strings(水~)
- Codeforces Round #272 (Div. 2) E. Dreamoon and Strings 动态规划
- Codeforces Round #272 (Div. 2) E. Dreamoon and Strings 动态规划
- 712. Minimum ASCII Delete Sum for Two Strings(动态规划)
- leetcode 583. Delete Operation for Two Strings 最长公共子串 + DP动态规划
- 动态规划!!!动态规划!!!
- Android 动态生成Strings
- go println与printf区别
- 【操作系统】处理器的二级调度
- 76.笔记 MySQL学习——C编写MySQL程序九预处理
- ajax获取数据的3种方式和springmvc消息转换器
- java并发编程--Runnable Callable及Future
- 【动态规划】Alternating Strings Gym
- 使用Phoenix api操作hbase 报错java.lang.ClassNotFoundException: org.apache.phoenix.jdbc.PhoenixDriver
- HBase(0.96以上版本)过滤器Filter详解及实例代码
- HashMap的原理及实现
- 链接脚本分析
- 【Pta测试6.1】:基础编程题目集
- Ubuntu17上安装Tensorflow
- 【Scikit-Learn 中文文档】线性和二次判别分析
- 记录SpringBoot使用Druid和Mybatis配置