UVa 10611 - The Playboy Chimp

来源:互联网 发布:python控制机器人 编辑:程序博客网 时间:2024/05/21 08:04

题目:一只公猩猩有一个母猩猩的身高序列(非递减),找到比他矮的中最高的以及比他高的中最矮的。

分析:分治,二分查找。直接二分寻找即可,查找前判断是否成立。

说明:╮(╯▽╰)╭好久天没刷题了。

#include <iostream>#include <cstdlib>#include <cstdio>using namespace std;int Chimps[50005];int H[25005];int bs1( int r, int h ){long long l = 1,mid;while ( l < r ) {mid = l+(r-l+1)/2;if ( Chimps[mid] >= h )r = mid-1;else l = mid;}return l;}int bs2( int r, int h ){long long l = 1,mid;while ( l < r ) {mid = l+(r-l)/2;if ( Chimps[mid] <= h )l = mid+1;else r = mid;}return r;}int main(){int N,Q;scanf("%d",&N);for ( int i = 1 ; i <= N ; ++ i )scanf("%d",&Chimps[i]);scanf("%d",&Q);for ( int i = 1 ; i <= Q ; ++ i )scanf("%d",&H[i]);for ( int i = 1 ; i <= Q ; ++ i ) {if ( Chimps[1] < H[i] )printf("%d ",Chimps[bs1( N, H[i] )]);else printf("X "); if ( Chimps[N] > H[i] )printf("%d\n",Chimps[bs2( N=, H[i] )]);else printf("X\n");}//system("pause");return 0;}


0 0
原创粉丝点击