生成 01 单调不减序列(快排应用)
来源:互联网 发布:web编程 编辑:程序博客网 时间:2024/06/17 18:14
给定一个01串(仅由‘ 0’或‘1’组成的字符串),现在想把这个数字串排序成“非递减”有序序列,请问至少需要多少次交换(任意两个位置交换)?
输入描述:
输入数据第一行是一个正整数T(T<=100),表示有T组测试数据;接下来的T行,每行给出01串。数据保证——50%的字符串长度在[1,100 ]95%的字符串长度在[1,10000]100%的字符串长度在[1,1000000]
输出描述:
对于每组测试数据,请输出排成“非递减有序序列”的最小交换次数。每组输出占一行。
输入例子:
30110110
输出例子:
011
这道题的核心就是快速排序。
#include <string>#include <vector>#include <iostream>using namespace::std ;int main() { int input ; cin >> input ; while ( input -- != 0 ) { string tmp ; cin >> tmp ; int i = 0 ; int j = tmp.size() - 1 ; int count = 0 ; while ( i - j <= 0 ) { if ( tmp[i] == '0' ) ++ i ; else if ( tmp[j] == '1' ) -- j ; else { char strTmp = tmp[i] ; tmp[i] = tmp[j] ; tmp[j] = strTmp ; ++ i ; -- j ; ++ count ; } } cout << count << endl ; } return 0 ;}
0 0
- 生成 01 单调不减序列(快排应用)
- 快排及应用
- 快排改进(快排+插入)
- 《算法》第二章——生成快排的最佳序列
- 合并链表,单调不减
- HDUOJ2014(快排)
- 快排(小到大)
- 排序(快排,归并,堆排)
- 快排qsort函数应用大全
- 快排应用-第k大元素
- 快排算法,以及 top_k应用
- 三色旗问题中的快排应用
- 算法导论 改进快排(1)----几乎有序的序列 7.4-5
- 快排(qsort)用法
- 11-快排(排序)
- 快排 (自己实现)
- 快排(分治法)
- NOJ 1064(快排)
- iOS CocoaPods安装和使用图解
- CSS3 Transition
- 数码管
- ViewPager图片预览之图片的放大缩小,移动,切换(第三课)连载
- 使用cronolog按日期分割日志
- 生成 01 单调不减序列(快排应用)
- iOS常用宏定义大全
- PyGobject(七十八)Gtk.Builder篇
- 第十章 vim程序编辑器
- 伪元素和伪元素选择器
- EL表达式
- SpringMVC注解@RequestParam
- android 监听软键盘的弹出和收起
- tjut 4318