题目链接:http://codeforces.com/problemset/problem/589/D

思路:将每个人的信息转化为自变量为时间因变量为位置的一元方程。再一个个判断是否相遇。

若两人同向,方程相等,如果两人起点与终点有交集则相遇否则不相遇。

若两人反向,求其相遇点,如果该点在两人的起点和终点之间则相遇否则不相遇。

 #include<iostream>
using namespace std;
struct node{
double t,s,f,a,b;
int ans;
}p[];
int main()
{
int n;
cin>>n;
for(int i=;i<n;i++)
{
cin>>p[i].t>>p[i].s>>p[i].f;
if(p[i].s>p[i].f)p[i].a=-1.0;
else p[i].a=1.0;
p[i].b=p[i].s-p[i].a*p[i].t;
}
for(int i=;i<n-;i++)
{
for(int j=i+;j<n;j++)
{
if(p[i].a==p[j].a&&p[i].b!=p[j].b)continue;
else if(p[i].a==p[j].a&&p[i].b==p[j].b)
{
double s1=p[i].s,s2=p[j].s,f1=p[i].f,f2=p[j].f;
if(s1<=s2&&f1>=s2||s1>=s2&&s1<=f2||f1<=f2&&s1>=f2||f1>=f2&&f1<=s2)
{
p[i].ans++;
p[j].ans++;
}
}
else
{
double t=(p[i].b-p[j].b)/2.0;
if(t<)t=-t;
double f1=max(p[i].f,p[i].s),f2=max(p[j].f,p[j].s);
double s1=min(p[i].f,p[i].s),s2=min(p[j].f,p[j].s);
double x1=t*p[i].a+p[i].b,x2=t*p[j].a+p[j].b;
if(x1==x2&&x1>=s1&&x1<=f1&&x2>=s2&&x2<=f2)
{
p[i].ans++;
p[j].ans++;
}
}
}
}
for(int i=;i<n;i++)
{
if(i!=n-)cout<<p[i].ans<<" ";
else cout<<p[i].ans<<endl;
}
return ;
}

CodeForces - 589D的更多相关文章

  1. CodeForces - 589D(暴力+模拟)

    题目链接:http://codeforces.com/problemset/problem/589/D 题目大意:给出n个人行走的开始时刻,开始时间和结束时间,求每个人分别能跟多少人相遇打招呼(每两人 ...

  2. CodeForces 589D Boulevard (数学,相遇)

    题意:给定 n 个的在 x 轴上的坐标,和开始时间,结束坐标,从起点向终点走,如果和其他人相遇,就互相打招乎,问你每人打招乎的次数. 析:其实这一个数学题,由于 n 比较小,我们就可以两两暴力,这两个 ...

  3. CodeForces - 589D —(思维题)

    Welcoming autumn evening is the best for walking along the boulevard and npeople decided to do so. T ...

  4. python爬虫学习(5) —— 扒一下codeforces题面

    上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...

  5. 【Codeforces 738D】Sea Battle(贪心)

    http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...

  6. 【Codeforces 738C】Road to Cinema

    http://codeforces.com/contest/738/problem/C Vasya is currently at a car rental service, and he wants ...

  7. 【Codeforces 738A】Interview with Oleg

    http://codeforces.com/contest/738/problem/A Polycarp has interviewed Oleg and has written the interv ...

  8. CodeForces - 662A Gambling Nim

    http://codeforces.com/problemset/problem/662/A 题目大意: 给定n(n <= 500000)张卡片,每张卡片的两个面都写有数字,每个面都有0.5的概 ...

  9. CodeForces - 274B Zero Tree

    http://codeforces.com/problemset/problem/274/B 题目大意: 给定你一颗树,每个点上有权值. 现在你每次取出这颗树的一颗子树(即点集和边集均是原图的子集的连 ...

随机推荐

  1. Android之listview添加数据篇

    一.ListView: 1. ListView通常有两个职责: 1.向布局填充数据 2.处理选择点击等操作 2.ListView的创建需要3个元素: 1. ListView中的每一列的View. 2. ...

  2. Java中运行时异常和非运行时异常什么鬼?

    Java中的异常分类 RuntimeException(也称unchecked exceptions,运行时异常) 就是我们在开发中测试功能时程序终止,控制台出现的异常.(一般来说,出现运行时异常基本 ...

  3. ssh免密钥之上厕所

    ssh服务简单介绍 SSH协议框架中最主要的部分是三个协议: *传输层协议(The Transport Layer Protocol)提供服务器认证,数据机密性,信息完整性等的支持; *用户认证协议( ...

  4. [编程小技巧]Notepad++中如何实现文本对比功能?

    1.打开Notepad++插件中心   2.安装Compare   3.按提示重启Notepad++     4.点击Compare比较临近的两个文件       5. 取消比较     6 Comp ...

  5. 读写txt

    FileStream fileStr = new FileStream("shaftCofig.txt", FileMode.OpenOrCreate); StreamReader ...

  6. dubbo文档

    Srping版Dubbo集成中文地址: https://dubbo.gitbooks.io/dubbo-user-book/content/preface/background.html Spring ...

  7. 单链表查找第i个节点

    #include<stdio.h> #include<string.h> #include<stdlib.h> typedef struct Node { char ...

  8. mysql5.7.18.1修改用户密码报错ERROR 1054 (42S22): Unknown column 'password' in 'field list'解决办法

    本意向修改一个用户的密码,网上搜到的命令为如下 mysql> update user set password=password(“新密码”) where user=”用户名”; 执行后报错 E ...

  9. atom常用插件

    汉化 simplified-chinese-menureact atom-react-snippets-0.5.0polymer atom-polymer-0.13.0polymer Atom-Pol ...

  10. python下彻底解决浏览器多窗口打开与切换问题

    # coding=utf-8 from selenium import webdriverimport timebrowser=webdriver.Firefox()#browser.maximize ...