1112 KGold
给出N个人在0时刻的财富值M[i](所有人在0时刻的财富互不相等),以及财富增长速度S[i],随着时间的推移,某些人的财富值会超越另外一些人。如果时间足够长,对于财富增长最快的人来说,他的财富将超越所有其他对手。
第1行:N,表示人的数量。(1 <= N <= 10000)
第2 - N + 1行:每行2个数,分别是初始的财富值M[i],和财富增长速度S[i]。(0 <= M[i] <= 10^5, 1 <= S[i] <= 100)
输出前10000次超越,超越者和被超越者的编号。如果总的超越次数不足10000,则输出所有。如果1次超越都不会发生,则输出No Solution。
输出按照超越发生的时间排序,同一时刻发生的超越,按照超越者的编号排序,如果超越者编号也相同,则按照被超越者的编号排序。所有排序均为递增序。
4
1 100
2 100
3 1
4 50
2 3
1 3
2 4
1 4
以时间为x轴,财富为y轴建立坐标系,则超越就是两条直线的交点且有交点必须满足s[i]>s[j],w[i]<w[j].n条直线最多有n*(n-1)/2条交点,全部储存消耗内存,可以二分时间确定某时刻交点的个数
#include <bits/stdc++.h>
using namespace std;
#define esp 1e-9
typedef long long ll;
int n;
struct point{
double w,s;
int id;
bool operator<(const point &a) const {
return a.w>w;
}
}e[];
struct Cost{
double cost;
int id;
bool operator<(const Cost &a) const {
return a.cost>cost;
}
}f[];
struct node
{
double time;
int idx,idy;
bool operator<(const node &a)const {
return fabs(a.time-time)<esp?(a.idx==idx?a.idy<idy:a.idx<idx):a.time<time;
}
}p;
priority_queue<node>q;
int solve(double mid)
{
for(int i=;i<=n;i++){
f[i].id=i;
f[i].cost=mid*e[i].s+e[i].w;
}
sort(f+,f+n+);
int ans=;
for(int i=;i<=n;i++)
if(i<f[i].id) ans+=f[i].id-i;
return ans>;
}
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++){
scanf("%lf%lf",&e[i].w,&e[i].s);
e[i].id=i;
}
sort(e+,e+n+);
double l=1.0,r=100000005.0;
while(r-l>0.00001){
double mid=(l+r)/;
if(solve(mid)) r=mid;
else l=mid;
}
for(int i=;i<=n;i++)
for(int j=;j<i;j++)
{
if(e[j].s>e[i].s)
{
p.time=(e[i].w-e[j].w)*1.0/(e[j].s-e[i].s);
if(p.time>esp && p.time<r)
{
p.idx=e[j].id;
p.idy=e[i].id;
q.push(p);
}
}
}
for(int i=;i<;i++)
{
if(!q.empty()){
printf("%d %d\n",q.top().idx,q.top().idy);
q.pop();
}
else break;
}
return ;
}
1112 KGold的更多相关文章
- 胡小兔的OI日志3 完结版
胡小兔的 OI 日志 3 (2017.9.1 ~ 2017.10.11) 标签: 日记 查看最新 2017-09-02 51nod 1378 夹克老爷的愤怒 | 树形DP 夹克老爷逢三抽一之后,由于采 ...
- Entity Framework 6 Recipes 2nd Edition(11-12)译 -> 定义内置函数
11-12. 定义内置函数 问题 想要定义一个在eSQL 和LINQ 查询里使用的内置函数. 解决方案 我们要在数据库中使用IsNull 函数,但是EF没有为eSQL 或LINQ发布这个函数. 假设我 ...
- BZOJ 1112: [POI2008]砖块Klo
1112: [POI2008]砖块Klo Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1736 Solved: 606[Submit][Statu ...
- ACdream 1112 Alice and Bob(素筛+博弈SG函数)
Alice and Bob Time Limit:3000MS Memory Limit:128000KB 64bit IO Format:%lld & %llu Submit ...
- csuoj 1112: 机器人的指令
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1112 1112: 机器人的指令 Time Limit: 1 Sec Memory Limit: ...
- ural 1112,LIS
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1112 题意:n根线段,要拿走一些,使得任何的线段的左段没有在某一个线段的内部. 其实说白 ...
- LightOJ 1112 Curious Robin Hood (单点更新+区间求和)
http://lightoj.com/volume_showproblem.php?problem=1112 题目大意: 1 i 将第i个数值输出,并将第i个值清0 2 i v ...
- [BZOJ 1112] [POI2008] 砖块Klo 【区间K大】
题目链接:BZOJ - 1112 题目分析 枚举每一个长度为k的连续区间,求出这个区间的最优答案,更新全局答案. 可以发现,这个区间的所有柱子最终都变成这k个数的中位数时最优,那么我们就需要查询这个区 ...
- 图论+dp poj 1112 Team Them Up!
题目链接: http://poj.org/problem?id=1112 题目大意: 有编号为1~n的n个人,给出每个人认识的人的编号,注意A认识B,B不一定认识A,让你将所有的人分成两组,要求每组的 ...
随机推荐
- Jq自定义的方法绑定树结构
1.先上效果图 (借鉴博客) 2.这边不做样式的只做结构 function toTreeData(data) { var pos = {}; var tree = []; var i = 0; wh ...
- 反射另一个app中的View
FrameLayout fl = (FrameLayout) findViewById(R.id.content); View v = null; try { Context context = cr ...
- Oracle自制事务
数据库事务是一种单元操作,要么全部操作成功,要么全部失败.在Oracle中,一个事务是从执行第一个数据操作语言(DML)语句开始的,直到执行一个COMMIT语句,提交保存事务,或执行一个ROLLBAC ...
- C++ 简单内存泄漏检测方法
遇到个bug,MFC程序异常退出,debug模式下输出 Detected memory leaks! Dumping objects -> {366566} normal block at 0x ...
- vue封装http请求
import axios from 'axios' import isObject from 'lodash/isObject' const http = function (api, data = ...
- 在centos系统中增、删交换分区
Swap介绍: Linux 将物理内存分为内存段,叫做页面.交换是指内存页面被复制到预先设定好的硬盘空间(叫做交换空间)的过程,目的是释放对于页面的内存.物理内存和交换空间的总大小是可用的虚拟内存的总 ...
- POI 详细介绍
Apache POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目.目前POI已经有了Ruby版本. 结构: HSSF - 提供读写Microsoft Excel XLS格式 ...
- open函数详解
转载:https://www.cnblogs.com/frank-yxs/p/5925574.html open函数用来在进程中打开文件,如果成功则返回一个文件描述符fd. ============= ...
- 获取ip,判断用户所在城市
PHP获取IP地址 这个比较简单了,利用PHP自带函数就可以了,PHP中文手册看一下,都有现成的例子,就不过多说明了,直接上代码,A段: <? //PHP获取当前用户IP地址方法 $xp_Use ...
- Ubuntu安装keepalived
Ubuntu安装keepalived 一.Keepalived是什么鬼东西: keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障. 二.Ke ...