题目链接: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. 3.CM3内核架构-寄存器

    一.寄存器的种类

  2. Lepus监控之SQLServer配置(后续整理)

    1.安装pymssql模块 1-1.环境准备: 1-1-1.unixODBC安装 yum install unixODBC unixODBC-devel -y 1-1-2.freetds安装下载 fr ...

  3. 开源ERP系统Odoo搭建文档

    本文参考链接地址: https://devecho.com/v/209/ https://www.cnblogs.com/wxylog/p/6386974.html 什么是Odoo 为什么选择Odoo ...

  4. 爬虫基础线程进程学习-Scrapy

    性能相关 学习参考:http://www.cnblogs.com/wupeiqi/articles/6229292.html 在编写爬虫时,性能的消耗主要在IO请求中,当单进程单线程模式下请求URL时 ...

  5. java常见面试题及答案 11-20(JVM)

    11.JVM内存分哪几个区,每个区的作用是什么? Java虚拟机主要分为以下一个区: 方法区:1. 有时候也成为永久代,在该区内很少发生垃圾回收,但是并不代表不发生GC,在这里进行的GC主要是对方法区 ...

  6. java并发编程目录

    java并发编程目录 Java多线程基础:进程和线程之由来 JAVA多线程实现的四种方式 Java并发编程:线程间协作的两种方式:wait.notify.notifyAll和Condition Jav ...

  7. android 开发 View _16 自定义计步器View、自定义柱状图View

    /** *@content:实现计步的环形View *@time:2018-7-30 *@build: */ public class CountStepsAnnularView extends Vi ...

  8. leetcode64

    class Solution { public: int minPathSum(vector<vector<int>>& grid) { int row=grid.si ...

  9. leetcode200

    深度优先搜索,每次遇到1,则岛的数量+1,从这个1开始找到所有相连的1,将其改为0. public class Solution { private void dfsSearch(char[,] gr ...

  10. 使用jQuery+huandlebars遍历数组嵌套数组

    兼容ie8(很实用,复制过来,仅供技术参考,更详细内容请看源地址:http://www.cnblogs.com/iyangyuan/archive/2013/12/12/3471227.html) & ...