[swustoj 327] 最小的最大与最大的最小
最小的最大与最大的最小(0327)
又是一个数据处理题(>_<)。还是直接看Input吧。
输入
一组测试实例。 Line 1:两个数n, m (1 <= n <= 1000000, 1 <= m <= 100000),n表示数字个数,m表示查询次数。 Line 2:包含n个整数A(i)(0 <= A(i) <= 1000000000)。两个数之间以空格隔开。 接下来m行:每行包含两个整数a,b(1 <= a <= 2, -1000000000 <= b <= 1000000000)。表示一次查询。当a = 1时,输出n个数中比b小的数的最大值。当a = 2时,输出n个数中比b大的数的最小值。如果不存在满足条件的数,则输出-1。
每于每一次查询,输出答案,每个答案占一行。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define INF 0x7fffffff
#define N 1000010
int n,m;
int a[N];
int low_bound(int k)
{
int l=,r=n+;
while(l<r)
{
int m=l+(r-l)/;
if(a[m]>=k) r=m;
else l=m+;
}
return l;
}
int up_bound(int k)
{
int l=,r=n+;
while(l<r)
{
int m=l+(r-l)/;
if(a[m]<=k) l=m+;
else r=m;
}
return l;
}
int main()
{
int i,j,x;
scanf("%d%d",&n,&m);
for(i=;i<=n;i++)
{
scanf("%d",&a[i]);
}
sort(a+,a+n+); //逗比了、没排序、一直WA、受不了= =
while(m--)
{
int op,x;
scanf("%d%d",&op,&x);
if(op== && a[]>=x || op== && a[n]<=x)
{
cout<<-<<endl;
continue;
}
if(op==)
{
int ans=low_bound(x);
ans--;
cout<<a[ans]<<endl;
}
else
{
int ans=up_bound(x);
cout<<a[ans]<<endl;
}
}
return ;
}
[swustoj 327] 最小的最大与最大的最小的更多相关文章
- 最小包围多边形(凸包;最小包围点集)——C代码例子
本文来自:http://alienryderflex.com/smallest_enclosing_polygon/ 这个C代码例子需要一群2维点集,如下图所示: 要获得包含这些点的最小多边形如下图所 ...
- POJ 2125 Destroying The Graph (二分图最小点权覆盖集+输出最小割方案)
题意 有一个图, 两种操作,一种是删除某点的所有出边,一种是删除某点的所有入边,各个点的不同操作分别有一个花费,现在我们想把这个图的边都删除掉,需要的最小花费是多少. 思路 很明显的二分图最小点权覆盖 ...
- 能量最小化初探,graphcuts能量最小化调用
1.相对于能量函数来说,能量最小化的办法都有哪些? 梯度下降 模拟退火 图割 2.这个 跟最优化问题的求解,有什么联系跟区别呢? 基本上差不多,其实就是求出来了函数的一个最小值,我们看问题的时候不妨把 ...
- 最小正子序列(序列之和最小,同时满足和值要最小)(数据结构与算法分析——C语言描述第二章习题2.12第二问)
#include "stdio.h" #include "stdlib.h" #define random(x) (rand()%x) void creat_a ...
- bzoj 2229: [Zjoi2011]最小割【Gomory–Hu tree最小割树】
这个算法详见http://www.cnblogs.com/lokiii/p/8191573.html 求出两两之间最小割之后暴力统计即可 #include<iostream> #inclu ...
- POJ 2125 Destroying the Graph 二分图最小点权覆盖
Destroying The Graph Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 8198 Accepted: 2 ...
- AOPR软件最小化消失了
结合日常使用软件的经历,我们都是选择最小化按钮后,点击状态栏中最小化图标即可恢复软件窗口.在使用Advanced Office Password Recovery的过程中,有时会出现点击最小化按钮后在 ...
- ACM/ICPC 之 卡卡的矩阵旅行-最小费用最大流(可做模板)(POJ3422)
将每个点拆分成原点A与伪点B,A->B有两条单向路(邻接表实现时需要建立一条反向的空边,并保证环路费用和为0),一条残留容量为1,费用为本身的负值(便于计算最短路),另一条残留容量+∞,费用为0 ...
- hdu 4966 GGS-DDU (最小树形图)
比较好的讲解:http://blog.csdn.net/wsniyufang/article/details/6747392 view code//首先为除根之外的每个点选定一条入边,这条入边一定要是 ...
随机推荐
- wpf鼠标捕获与控件交互——UIElement.CaptureMouse
应用场景是这样的,我需要拖动一个元素在屏幕上移动,注册了被移动元素的MouseMove事件,但是当鼠标移到被移动元素的外面时,移动失效,且鼠标的手势变成了普通的箭头形状,于是就找到了以下的解决方案. ...
- WPF处理Windows消息
WPF中处理消息首先要获取窗口句柄,创建HwndSource对象 通过HwndSource对象添加消息处理回调函数. HwndSource类: 实现其自己的窗口过程. 创建窗口之后使用 AddHook ...
- 帝国cms中 内容分页的SEO优化
关于内容页如果存在分页的话,我们想区分第一页和后面数页,当前的通用做法是在标题上加入分页码,帝国cms中如何做到呢.我们可以修改在e/class/functions.php中的源码.找到找到GetHt ...
- EXTJS 4.2 资料 控件之隐藏显示setVisible、只读setDisabled
隐藏: form_Step3_1_left.form.findField('CPTypeId').setVisible(false); 显示: form_Step3_1_left.form.findF ...
- linux whereis which
whereis 命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b).man说明文件(参数-m)和源代码文件(参数-s). [root@localhost ~]# whereis svn svn ...
- Code for the Homework1 改进
#include <iostream> #include <vector> #include "shape.h" //using namespace std ...
- MBProgressHUD ---
1,MBProgressHUD常用属性和用法Demo - (void)testMBProgressHUD { NSLog(@"test MBProgressHUD "); /* 要 ...
- 对.net orm工具Dapper在多数据库方面的优化
Dapper是近2年异军突起的新ORM工具,它有ado.net般的高性能又有反射映射实体的灵活性,非常适合喜欢原生sql的程序员使用,而且它源码很小,十分轻便.我写本博客的目的不是为了介绍Dapper ...
- spoj 346
当一个数大于等于12 那分别处以2, 3, 4之后的和一定大于本身 但是直接递归会超时 然后发现有人用map存了 膜拜..... #include <cstdio> #i ...
- C++中的构造函数,拷贝构造函数和赋值运算
关于C++中的构造函数,拷贝构造函数和赋值运算,以前看过一篇<高质量C++/C编程指南>的文章中介绍的很清楚,网上能搜索到,如果想详细了解这方面的知识可以参看一下这篇文章. 常见的给对象赋 ...