zoukankan      html  css  js  c++  java
  • hdu--4585--lower_bound()

    好久不见     lower_bound()

    最近 事情太多了 龙兄 来了宁波 我们几个一起陪他玩了几天 那几天就没碰过题了 昨天他回临安了 明年应该就是我们宁波这3个 过去找他了

    我们 设计了很多创业大计 描绘了美好的蓝图 就差 资金到位了 哈哈~~

    -------

    这题的话 就是开始给你一个人的ID与他的能力值  起初这个集合中只有 一个人:Id 1  能力值 1000000000

    后来 每次加入一个人的时候 总是要从这个集合中 找出一个人与他进行PK 这个人的能力值要与他是得到这样的关系min( abs(new-old) )因为这是绝对值得 所以如果存在上界与下界同时满足 取下界 即小于<new的值  

    这样每次插入一个 输出一个 最后就可以了

    但是我的代码 运行时间好tm长啊 要900+ms 一共给的时间也就1000ms 我也是 醉了

    顺便 提下lower_bound(var)函数是返回一个序列中大于等于var的第一个位置  注意这是一个前闭后开的区间 所以如果这个var大于这个序列的所有元素 那么返回的将是一个没有元素的位置 即xx.end()

     1 #include <iostream>
     2 #include <map>
     3 using namespace std;
     4 
     5 map<int,int>mp;
     6 
     7 int main()
     8 {
     9     cin.sync_with_stdio(false);
    10     int n , Id , grade , var , num;
    11     while( cin >> n && n )
    12     {
    13         mp.clear( );
    14         map<int,int>::iterator ans;
    15         mp[1000000000] = 1;
    16         for( int i = 0 ; i<n ; ++i )
    17         {
    18             cin >> Id >> grade;
    19             if( !i )
    20             {
    21                 cout << Id << " " << 1 << endl;
    22             }
    23             else
    24             {
    25                 ans = mp.lower_bound( grade );
    26                 if( ans == mp.begin() )
    27                     cout << Id << " " << ans->second << endl;
    28                 else
    29                 {
    30                     var = ans->first;
    31                     num = ans->second;
    32                     --ans;
    33                     if( var-grade < grade-(ans->first) )
    34                         cout << Id << " " << num << endl;
    35                     else
    36                         cout << Id << " " << ans->second << endl;
    37                 }
    38             }
    39             mp[ grade ] = Id;
    40         }
    41     }
    42     return 0;
    43 }
    View Code

    today:  

      你说 谈恋爱需要靠什么呢?

      我什么都不想罗列

      最后反正是看脸

      

    just follow your heart
  • 相关阅读:
    idea中yml文件变成text样式并且没有提示
    挂载redhat镜像创建本地yum源
    Windows环境下Oracle数据库的自动备份脚本
    Oracle存储过程锁表
    DDL和客户端ip监控
    Linux 单实例oracle安装步骤
    Linux常用命令
    Linux常用目录
    oracle基础知识及语法
    Linux下Oracle新建用户并且将已有的数据dmp文件导入到新建的用户下的操作流程
  • 原文地址:https://www.cnblogs.com/radical/p/4052115.html
Copyright © 2011-2022 走看看