CodeForces - 589D
题目链接: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的更多相关文章
- CodeForces - 589D(暴力+模拟)
题目链接:http://codeforces.com/problemset/problem/589/D 题目大意:给出n个人行走的开始时刻,开始时间和结束时间,求每个人分别能跟多少人相遇打招呼(每两人 ...
- CodeForces 589D Boulevard (数学,相遇)
题意:给定 n 个的在 x 轴上的坐标,和开始时间,结束坐标,从起点向终点走,如果和其他人相遇,就互相打招乎,问你每人打招乎的次数. 析:其实这一个数学题,由于 n 比较小,我们就可以两两暴力,这两个 ...
- CodeForces - 589D —(思维题)
Welcoming autumn evening is the best for walking along the boulevard and npeople decided to do so. T ...
- python爬虫学习(5) —— 扒一下codeforces题面
上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...
- 【Codeforces 738D】Sea Battle(贪心)
http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...
- 【Codeforces 738C】Road to Cinema
http://codeforces.com/contest/738/problem/C Vasya is currently at a car rental service, and he wants ...
- 【Codeforces 738A】Interview with Oleg
http://codeforces.com/contest/738/problem/A Polycarp has interviewed Oleg and has written the interv ...
- CodeForces - 662A Gambling Nim
http://codeforces.com/problemset/problem/662/A 题目大意: 给定n(n <= 500000)张卡片,每张卡片的两个面都写有数字,每个面都有0.5的概 ...
- CodeForces - 274B Zero Tree
http://codeforces.com/problemset/problem/274/B 题目大意: 给定你一颗树,每个点上有权值. 现在你每次取出这颗树的一颗子树(即点集和边集均是原图的子集的连 ...
随机推荐
- 【ELK】之Centos6.9_x64安装elasticsearch6.2.1
1.下载elasticsearch6.2.1 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.1 ...
- python3学习笔记四(列表1)
参考http://www.runoob.com/python3/python3-list.html 序列 python包含6种内建的序列:列表,元组,字符串,Unicode字符串,buffer对象和x ...
- [转][C#]文件流读取
{ internal static class FileUtils { public static string GetRelativePath(string absPath, string base ...
- 2017-2018-2 20165312 课下选做 MySort
2017-2018-2 20165312 课下选做 MySort 题目描述 模拟实现Linux下Sort -t : -k 2的功能,参考 Sort的实现. import java.util.*; pu ...
- MySQL 大数据备份方案之Percona XtraBackup
Xtrabackup介绍 1.Xtrabackup是什么 Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbacku ...
- 安装ORACLE高可用RAC集群11g执行root脚本的输出信息
安装ORACLE高可用RAC集群11g执行root脚本的输出信息 作者:Eric 微信:loveoracle11g [root@node1 ~]# /u01/app/oraInventory/orai ...
- Activiti图表bpmn对应的xml文件
当我们绘制了一个bpmn图表,实质是创建了一个xml文件, 右键bpmn文件open with xml edit <?xml version="1.0" encodin ...
- shell脚本(二)
shell脚本(二)——变量 一.定义:用来存放各种数据,编程语言组成部分 变量的命名规则: 变量名由数字 字母下划线组成 必须以字母或者下划线开头 不能使用shell里面的关键词 ...
- 学习笔记:AngularJs
站点: http://www.angularjs.cn/ angularjs中文社区 http://www.jb51.net/article/60733.htm AngularJS内置指令 基本页 ...
- leetcode62
使用排列组合计算公式来计算,注意使用long long型数据保证计算不会溢出. class Solution { public: int M, N; ; //从根到叶子有多少个分支,就表示有多少种路径 ...