POJ1054 枚举【STL__binary_search()_的应用】
①使用binary_search前要先保证有序
②binary_search函数仅返回true或false
③binary_search(first element, laste lment + 1, data to search)
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <iostream>
#include <algorithm>
using namespace std;
struct PLANT{
int x, y;
};
PLANT map[];
int r, c, num;
int max_num; bool operator < (const PLANT & p1, const PLANT & p2){
if(p1.x == p2.x) return p1.y < p2.y;
return p1.x < p2.x;
} int function(int dx, int dy, int x, int y){
int flag = ;
while(x >= && x <= r && y >= && y <= c){
PLANT temp;
temp.x = x;
temp.y = y;
if(!binary_search(map, map+num, temp)) return ;
x += dx;
y += dy;
++flag;
}
return flag;
}
int main(){
int i, j, k, t;
int num_x, num_y;
int flag;
scanf("%d%d",&r,&c);
scanf("%d",&num);
for(i = ; i < num; ++i) scanf("%d%d",&map[i].x,&map[i].y); sort(map, map+num);
max_num = ; for(i = ; i < num; ++i){
for(j = i + ; j < num; ++j){
int dx = map[j].x - map[i].x;
int dy = map[j].y - map[i].y;
int px = map[i].x - dx;
int py = map[i].y - dy;
if(px >= && px <= r && py >= && py <= c) continue; if(map[i].x + max_num * dx > r) continue;
int pY = map[i].y + max_num * dy;
if(pY > c || pY < ) continue; px = dx + map[j].x;
py = dy + map[j].y;
int flag = ;
while(px >= && px <= r && py >= && py <= c){
PLANT temp;
temp.x = px;
temp.y = py;
if(!binary_search(map, map+num, temp)){
flag = ;
break;
}
px += dx;
py += dy;
++flag;
}
max_num = max(max_num, flag);
}
}
if(max_num == ) printf("0\n");
else printf("%d\n",max_num);
return ;
}
POJ1054 枚举【STL__binary_search()_的应用】的更多相关文章
- 零基础逆向工程40_Win32_14_枚举窗口_模拟鼠标键盘
1 查找窗口 1.1 代码案例 //查找指定窗口 TCHAR szTitle[MAX_PATH] = {0}; HWND hwnd = ::FindWindow(TEXT("#32770&q ...
- 【t081】序列长度(贪心做法)
Time Limit: 1 second Memory Limit: 128 MB [问题描述] 有一个整数序列,我们不知道她的长度是多少(即序列中整数的个数),但我们知道在某些区间中至少有多少个整数 ...
- [loj2586]选圆圈
下面先给出比较简单的KD树的做法-- 根据圆心建一棵KD树,然后模拟题目的过程,考虑搜索一个圆 剪枝:如果当前圆[与包含该子树内所有圆的最小矩形]都不相交就退出 然而这样的理论复杂度是$o(n^2)$ ...
- BZOJ_1406_[AHOI2007]密码箱_枚举+数学
BZOJ_1406_[AHOI2007]密码箱_枚举+数学 Description 在一次偶然的情况下,小可可得到了一个密码箱,听说里面藏着一份古代流传下来的藏宝图,只要能破解密码就能打开箱子,而箱子 ...
- .Net基础篇_学习笔记_第八天_复杂数据类型(常量/枚举/结构)
1.常量: 声明的常量的语法:const 变量类型 变量名=值;最大的特点就是,声明了常量后,就不能再被重新赋值. 2.枚举 语法:[public] enum 枚举名{ 值1, 值2, 值3, ... ...
- C#(结构体_枚举类型)
结构体一般定义在Main函数上面,位于Class下面,作为一个类:一般情况Struct定义在Main函数前面,Main函数里面的地方都可以使用,参数前面加上public代表公用变量. 用法 1 ...
- C#_枚举类型
C#中的枚举是名/值对的数据类型,下面是自定义的军衔等级的枚举 //定义枚举 enum MilitaryRank { Commander, ArmyCorpCommander, Military ...
- c#中[Flags] 枚举类型定义问题_百度知道
[Flags]的微软解释是“指示可以将枚举作为位域(即一组标志)处理.”其实就是在编写枚举类型时,上面附上Flags特性后,用该枚举变量是既可以象整数一样进行按位的“|”或者按位的“&”操作了 ...
- C# 语言规范_版本5.0 (第14章 枚举)
1. 枚举 枚举类型 (enum type) 是一种独特的值类型(第 4.1 节),它用于声明一组命名的常量. 下面的示例 enum Color { Red, Green, Blue } 声明一个名为 ...
随机推荐
- SQLITE 多进程查询出错database is locked
程序比较简单: 父进程查询数据库A表,没有更新操作 子进程同时查询数据库A表,查询出来的内容更新B表. 两个进程都放到while(1)循环中,速度慢的话就是2S执行一次就没有错,执行的速度快的话就会报 ...
- VARCHAR2(N CHAR)与VARCHAR2(N)的区别[Oracle基础]
转载: http://blog.itpub.net/24930246/viewspace-1064982 在数据库开发的时候,经常需要考虑存储空间的问题,当然很多时候我们并不需要去考虑一些细小的差别, ...
- QWidget QMainWindow QDialog 之间的区别
QWidget类是所有用户界面对象的基类. 窗口部件是用户界面的一个原子:它从窗口系统接收鼠标.键盘和其它事件,并且在屏幕上绘制自己的表现.每一个窗口部件都是矩形,并且它们按Z轴顺序排列的.一个窗口部 ...
- Sicily-1438
一. 题意 买二送一.排序之后隔三求和,求折扣的最大值. 二. 代码 // // main.cpp // sicily-1438 // // Created by ashley o ...
- Java多线程之synchronized(一)
在上节中已经说过了“非线程安全”是如何出现的,链接如下:http://www.cnblogs.com/chentong/p/5650137.html,那么怎么解决“非线程安全”问题呢,只需要在两个线程 ...
- ;(function($,window,undefined){})(jQuery,window)详细解析————借助B5教程解析自己整理了一下
在jquery插件中我们经常看到以下这段代码 ;(function ( $, window, document, undefined ){ //函数体内具体代码 })(jQuery, window,d ...
- Linux下安装JRE
(1)下载jre-7u5-linux-i586.tar.gz,上传至/root目录 (2)执行tar -zxf jre-7u5-linux-i586.tar.gz (3)mv jre1.7.0_05 ...
- CSS 初始化 代码
腾讯QQ官网 样式初始化 ;} body{font:12px"宋体","Arial Narrow",HELVETICA;background:#fff;-web ...
- git 使用详情
一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以 ...
- CGI PHP安装
./configure --with-php-config=/usr/local/php/bin/php-config--with-pdo-mysql=/usr/local/mysql PDO——MY ...