poj 2503 快排+二分
var x,y:array[..] of string;
i,n,l,r,mid:longint;
s:string;
procedure qsort(h,l:longint);
var i,j:longint;
temp,m:string;
begin
i:=h;j:=l;m:=x[(i+h)>>];
repeat
while x[i]<m do inc(i);
while x[j]>m do dec(j);
if i<=j then
begin
temp:=x[i];x[i]:=x[j];x[j]:=temp;
temp:=y[i];y[i]:=y[j];y[j]:=temp;
inc(i);dec(j);
end;
until i>j;
if i<l then qsort(i,l);
if j>h then qsort(h,j);
end;
procedure init;
begin
n:=;
while true do
begin
readln(s);if s='' then break;
inc(n);
y[n]:=copy(s,,pos(' ',s)-);
delete(s,,pos(' ',s));
x[n]:=s;
end;
qsort(,n);
end;
procedure main;
begin
while true do
begin
readln(s);if s='' then break;
l:=;r:=n;
while l<r do
begin
mid:=(l+r)>>;
if s<x[mid] then r:=mid
else if s>x[mid] then l:=mid+
else begin l:=mid;r:=mid;end;
end;
if x[l]=s then writeln(y[l]) else writeln('eh');
end;
end;
begin
init;
main;
end.
水一道……体验了一把1A的感觉……
还要说的是,这道题的字符串达到了100000,但还是能够直接排序处理,那是因为它的字符串太短了……
var x,y:array[..] of string;
i,n,l,r,mid:longint;
s:string;
procedure qsort(h,l:longint);
var i,j:longint;
temp,m:string;
begin
i:=h;j:=l;m:=x[(i+h)>>];
repeat
while x[i]<m do inc(i);
while x[j]>m do dec(j);
if i<=j then
begin
temp:=x[i];x[i]:=x[j];x[j]:=temp;
temp:=y[i];y[i]:=y[j];y[j]:=temp;
inc(i);dec(j);
end;
until i>j;
if i<l then qsort(i,l);
if j>h then qsort(h,j);
end;
procedure init;
begin
n:=;
while true do
begin
readln(s);if s='' then break;
inc(n);
y[n]:=copy(s,,pos(' ',s)-);
delete(s,,pos(' ',s));
x[n]:=s;
end;
qsort(,n);
end;
procedure main;
begin
while true do
begin
readln(s);if s='' then break;
l:=;r:=n;
while l<r do
begin
mid:=(l+r)>>;
if s<x[mid] then r:=mid
else if s>x[mid] then l:=mid+
else begin l:=mid;r:=mid;end;
end;
if x[l]=s then writeln(y[l]) else writeln('eh');
end;
end;
begin
init;
main;
end.
poj 2503 快排+二分的更多相关文章
- POJ 2503 Babelfish(map,字典树,快排+二分,hash)
题意:先构造一个词典,然后输入外文单词,输出相应的英语单词. 这道题有4种方法可以做: 1.map 2.字典树 3.快排+二分 4.hash表 参考博客:[解题报告]POJ_2503 字典树,MAP ...
- UVA 1152 4 Values whose Sum is 0 (枚举+中途相遇法)(+Java版)(Java手撕快排+二分)
4 Values whose Sum is 0 题目链接:https://cn.vjudge.net/problem/UVA-1152 ——每天在线,欢迎留言谈论. 题目大意: 给定4个n(1< ...
- poj 2804 字典 (特里 要么 快排+二分法)
2804:词典 总时间限制: 3000ms 内存限制: 65536kB 描写叙述 你旅游到了一个国外的城市.那里的人们说的外国语言你不能理解.只是幸运的是,你有一本词典能够帮助你. 输入 首先输 ...
- Java排序算法分析与实现:快排、冒泡排序、选择排序、插入排序、归并排序(二)
一.概述: 上篇博客介绍了常见简单算法:冒泡排序.选择排序和插入排序.本文介绍高级排序算法:快速排序和归并排序.在开始介绍算法之前,首先介绍高级算法所需要的基础知识:划分.递归,并顺带介绍二分查找算法 ...
- java排序,冒泡排序,选择排序,插入排序,快排
冒泡排序 时间复杂度:O(n^2) 空间复杂度O(1) 稳定性:稳定 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.这步做完后,最 ...
- STL函数库的应用第二弹——快排sort函数与结构体关键字排序
时隔20多天,本蒟蒻终于记起了他的博客园密码!!! 废话不多说,今天主题:STL快排函数sort()与结构体关键字排序 Part 1:引入和导语 首先,我们需要知道,algorithm库里有一些奇怪的 ...
- Java基础进阶:APi使用,Math,Arrarys,Objects工具类,自动拆装箱,字符串与基本数据类型互转,递归算法源码,冒泡排序源码实现,快排实现源码,附重难点,代码实现源码,课堂笔记,课后扩展及答案
要点摘要 Math: 类中么有构造方法,内部方法是静态的,可以直接类名.方式调用 常用: Math.abs(int a):返回参数绝对值 Math.ceil(double a):返回大于或等于参数的最 ...
- 【PHP数据结构】交换排序:冒泡、快排
上篇文章中我们好好地学习了一下插入类相关的两个排序,不过,和交换类的排序对比的话,它们真的只是弟弟.甚至可以说,在所有的排序算法中,最出名的两个排序都在今天要介绍的交换排序中了.不管是冒泡.还是快排, ...
- F#之旅4 - 小实践之快排
参考文章:https://swlaschin.gitbooks.io/fsharpforfunandprofit/content/posts/fvsc-quicksort.html F#之旅4 - 小 ...
随机推荐
- Catalyst揭秘 Day7 SQL转为RDD的具体实现
Catalyst揭秘 Day7 SQL转为RDD的具体实现 从技术角度,越底层和硬件偶尔越高,可动弹的空间越小,而越高层,可动用的智慧是更多.Catalyst就是个高层的智慧. Catalyst已经逐 ...
- ValueError: No JSON object could be decoded?此种异常的解决方案之一
第一次遇到这样的异常,实在不知道如何是好?进行了测试发现报错的json出没有问题,而且每次出现异常的位置不一样 于是我认为这样的问题可能是因为程序执行过快,所以很简单的解决办法是: def deal_ ...
- Git之不明觉厉11-利其器source tree
前面10篇文章都在用命令行,虽然装逼不错,但是我想说一句,平时我也是用source tree比较多点,命令行一般都是在source tree的图形按钮找不到在哪里,就直接用命令行.对于初次用git的同 ...
- Oracle中正则表达式的使用
Oracle10开始支持正则表达式. ORACLE中的支持正则表达式的函数主要有下面四个: 1. REGEXP_LIKE : 与LIKE的功能相似 2. REGEXP_INSTR : ...
- 泛形集合List<T>
public class Person { /// <summary> /// 姓名 /// </summary> private string name; public st ...
- Understanding Responsive Web Design: Cross-browser Compatibility
http://www.sitepoint.com/understanding-responsive-web-design-cross-browser-compatibility/ In the las ...
- jq 7种实例化
$(html) ->$(array) $(html,{}||$(...)) $(#id) $(expr,$(...)) $(expr,context) $(dom) $(function(){} ...
- C#学习笔记---基础入门(三)
泛型<T> 使用泛型能够最大限度的重用代码/保护类型安全,提高性能 泛型成员因为类型的不确定性,不能使用算术运算符/比较运算符 类型参数可以有多个,可以是编译器能够识别的任何类型 类型参数 ...
- 实时数据处理环境搭建flume+kafka+storm:1.zookeeper 安装配置
1. 解压 tar -zxvf 2.创建目录 zk根目录创建 mkdir zkdatalog --日志 mkdir zkdata ---快照文件 3.修改配置文 ...
- 团队软件开发_基于windows下截屏软件关于NABC框架的特点
经过我们小组数次的激烈讨论,就自己的能力和时间而言,我们小组的初步的计划是开发一款基于windows下的截图软件. 关于这个软件的功能,我们初步的想法如下: 1.能在windows下后台运行,有相应的 ...