zoukankan      html  css  js  c++  java
  • poj2318

    简单题,二分查找

    View Code
    #include <iostream>
    #include
    <cstdio>
    #include
    <cstdlib>
    #include
    <cstring>
    #include
    <algorithm>
    using namespace std;

    #define maxn 5005

    struct Line
    {
    int u, d;
    } line[maxn];

    int n, m, x1, x2, y1, y2;
    int toy[maxn];

    bool left(int x, int y, Line a)
    {
    if (x < a.d + (y - y2) * (a.u - a.d) * 1.0 / (y1 - y2))
    return true;
    return false;
    }

    int binarysearch(int x, int y)
    {
    int l = 0, r = n;
    int mid;

    while (l < r)
    {
    mid
    = (l + r) / 2;
    if (left(x, y, line[mid]))
    r
    = mid;
    else
    l
    = mid + 1;
    }
    return l;
    }

    int main()
    {
    //freopen("t.txt", "r", stdin);
    while (scanf("%d", &n), n != 0)
    {
    memset(toy,
    0, sizeof(toy));
    scanf(
    "%d%d%d%d%d", &m, &x1, &y1, &x2, &y2);
    for (int i = 0; i < n; i++)
    scanf(
    "%d%d", &line[i].u, &line[i].d);
    for (int i = 0; i < m; i++)
    {
    int x, y;
    scanf(
    "%d%d", &x, &y);
    toy[binarysearch(x, y)]
    ++;
    }
    for (int i = 0; i <= n; i++)
    printf(
    "%d: %d\n", i, toy[i]);
    printf(
    "\n");
    }
    return 0;
    }
  • 相关阅读:
    3.List.Set
    2.Collection.泛型
    1.Object类.常用API
    MySQL-核心技术
    奇异的家族-动态规划
    动态规划-等和的分隔子集
    跳跃游戏-贪心
    跳跃游戏2
    爬楼梯
    组合博弈1536-S-Nim
  • 原文地址:https://www.cnblogs.com/rainydays/p/2054818.html
Copyright © 2011-2022 走看看