UVa 10152 - ShellSort

题目:给你一个现有字符串的序列,以及一个目标字符串的序列,每次操作可以把一个单词置顶,

问把当前串变成目标串,要操作几次。

分析:排序。因为每次可以使一个单词置顶,所以每个单词最多移动一次就可以变为目标串。

从后向前找到每个目标串元素对应元素的当前串位置(每个只能在“上一个”之前);

能找到的元素个数,就是不需要改动的个数,其他均要移动,对应目标串中剩余的元素;

剩余的目标串倒序输出,即为操作顺序。

定义两个指针分别从两串序列的尾部向头部移动,如果匹配成功同时前进;

不成功,当前传指针前进(这期间经过的串都是需要上移的),直到顶部即可。

说明:注意输入格式。

#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <cmath>

using namespace std;

char A[222][111];
char B[222][111];

int main()
{
	int t,n;
	while (~scanf("%d",&t)) {
		getchar();
		while (t --) {
			scanf("%d",&n);	getchar();
			for (int i = 0 ; i < n ; ++ i)
				gets(A[i]);
			for (int i = 0 ; i < n ; ++ i)
				gets(B[i]);

			int p = n-1,q = n-1;
			while (p >= 0) {
				if (!strcmp(A[p], B[q])) q --;
				p --;
			}

			while (q >= 0)
				printf("%s\n",B[q --]);
			printf("\n");
		}
	}
    return 0;
}
时间: 2024-10-28 17:56:55

UVa 10152 - ShellSort的相关文章

UVa 10152 - ShellSort 题解

按他的方法排序,每次移动一个数到顶点,排成需要的序列. Problem D: ShellSort He made each turtle stand on another one's back And he piled them all up in a nine-turtle stack. And then Yertle climbed up. He sat down on the pile. What a wonderful view! He could see 'most a mile! T

UVa 10152 龟壳排序

思路:先读入的一列是原始串,后读入的一列是目标串.最少操作次数的方式是,从下到上,只对原始串进行删除而不放到最上面能得到的目标串的以最下元素开头的最长子串,然后将目标串剩余的那些按序放在最上方,即按由下到上的顺序输出即可. Code: //#define LOCAL #include<stdio.h> #include<stdlib.h> #include<string.h> char name[210][90]; char target[210][90]; //cha

ShellSort UVA 10152

说说: 题意大概就是开始有一堆的字符串堆栈A,其中的任何一个字符串都可以从当前位置移动到栈顶,经过若干字符串的移动,最后形成了另一个字符串堆栈B,要求输出按顺序输出移动字符串最少的移动方案.其实解法挺简单的,既然要求的是最少的移动,那么就从B的底部开始逐个在A中从底部往上查找,并且要在A中标记查找位置,因为A中已经被查找过的字符串必然是要移动的.如此重复,直到B在原堆栈中找不到可以不移动的字符串.最后,B中剩下的都是移动过的字符串.因为字符串只能移动到顶部,因此从B中的当前位置逐个向顶部输出字符

编程题目分类(剪辑)

1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. 模拟 12. 算术与代数 13. 组合问题 14. 数论 15. 网格,几何,计算几何 [编程入门] PC 110101, uva 100, The 3n+1 problem, 难度 1 PC 110102, uva 10189, Minesweeper, 难度 1 PC 110103, uva 10137, The T

UVA题目分类

题目 Volume 0. Getting Started 开始10055 - Hashmat the Brave Warrior 10071 - Back to High School Physics 10300 - Ecological Premium 458 - The Decoder 494 - Kindergarten Counting Game 414 - Machined Surfaces 490 - Rotating Sentences 445 - Marvelous Mazes

计划,,留

下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成.打牢基础,厚积薄发. 一.UVaOJ http://uva.onlinejudge.org 西班牙Valladolid大学的程序在线评测系统,是历史最悠久.最著名的OJ. 一.<算法竞赛入门经典> 刘汝佳 (UVaOJ 351道题) 以下部分内容摘自:http://sdkdacm.5d6d.com/thread-6-1-1.html "AOAPC I"

算法竞赛入门经典+挑战编程+USACO

下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成.打牢基础,厚积薄发.   一.UVaOJ http://uva.onlinejudge.org  西班牙Valladolid大学的程序在线评测系统,是历史最悠久.最著名的OJ.   二.<算法竞赛入门经典> 刘汝佳  (UVaOJ  351道题)  以下部分内容摘自:http://sdkdacm.5d6d.com/thread-6-1-1.html   "AO

(Step1-500题)UVaOJ+算法竞赛入门经典+挑战编程+USACO

下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成.打牢基础,厚积薄发. 一.UVaOJ http://uva.onlinejudge.org 西班牙Valladolid大学的程序在线评测系统,是历史最悠久.最著名的OJ. 二.<算法竞赛入门经典> 刘汝佳  (UVaOJ  351道题)  以下部分内容摘自:http://sdkdacm.5d6d.com/thread-6-1-1.html “AOAPC I”是刘汝佳(大

ShellSort uva

ShellSort He made each turtle stand on another one's back And he piled them all up in a nine-turtle stack. And then Yertle climbed up. He sat down on the pile. What a wonderful view! He could see 'most a mile! The Problem King Yertle wishes to rearra