题目1 : 有序01字符串

时间限制:10000ms
单点时限:1000ms
内存限制:256MB

描述

对于一个01字符串,你每次可以将一个0修改成1,或者将一个1修改成0。那么,你最少需要修改多少次才能把一个01串 S 变为有序01字符串(有序01字符串是指满足所有0在所有1之前的01串)呢?

输入

第一行是一个整数 T,代表测试数据的组数。(1 ≤ T ≤ 10)

以下T行每行包含一个01串 S 。(1 ≤ |S| ≤ 1000)

输出

对于每组测试数据输出最少需要修改的次数。

样例输入
3
000111
010001
100000
样例输出
0
1
1
思路:找到1的时候考虑是否改成0;
   min(1后面的字符串最小改变值+1,1后面的0的个数;
#include<bits/stdc++.h>
using namespace std;
#define ll __int64
#define mod 1000000007
#define pi (4*atan(1.0))
const int N=2e3+,M=1e6+,inf=1e9+;
char a[N];
int zero[N],x;
int dp(char *a,int len)
{
if(len==)
return ;
for(int i=;i<x;i++)
if(a[i]=='')
return min(dp(a+i+,len-i-)+,zero[x-len+i]);
return ;
}
int main()
{
int y,z,i,t;
int T;
scanf("%d",&T);
while(T--)
{
scanf("%s",a+);
x=strlen(a+);
memset(zero,,sizeof(zero));
for(i=x;i>=;i--)
if(a[i]=='')
zero[i-]=zero[i]+;
else
zero[i-]=zero[i];
printf("%d\n",dp(a+,x));
}
return ;
}

最新文章

  1. javascript面向对象系列第三篇——实现继承的3种形式
  2. UTF-8 &lt;==&gt; unicode(WCHAR)
  3. 初始maven
  4. linux服务之openfiler
  5. opencv绘制灰度直方图
  6. Altium Designer规则
  7. 利用@media screen实现网页布局的自适应,@media screen and
  8. ibatis一对多 数据库设计及实现
  9. javascript精度问题与调整
  10. js 将一大段时间均分为很多个小时间段
  11. ArcGIS API for JavaScript 4.3学习笔记[新] AJS4.3和AJS3.20新特性
  12. javascript中对象字面量与数组字面量
  13. Web前端学习(1):上网的过程与网页的本质
  14. 《构建之法》教学笔记——Python中的效能分析与几个问题
  15. HDFS初次编程
  16. Docker环境编译时的错误记录
  17. ABAP中不修改内表参照的结构,给内表/结构体增加字段
  18. Spring中的Bean的配置形式
  19. 嵌入式设备hacking(转)
  20. QWebEngine_C++_交互

热门文章

  1. springmvc 之 easyUI开发商城管理系统
  2. 22.解决 eclipse 与 AS 共用 SDK 导致 eclipse ADT 无法使用的问题
  3. Mac Angular打包报错xcode-select: error: tool &#39;xcodebuild&#39; requires Xcode
  4. Linux下BLAST的使用---转载
  5. idea构建一个简单的maven_web项目
  6. 10 Linux Commands Every Developer Should Know
  7. 《UML和模式应用》读书笔记(一)面向对象分析和设计简单示例
  8. TOSCA自动化测试工具--建立测试用例
  9. Dbus组成和原理
  10. oracle 分区表详解