CodeForces 589D(思路)
来源:互联网 发布:软件行业销售模式 编辑:程序博客网 时间:2024/06/05 15:39
解题思路:直接暴力判断两两直接是否相遇。任意选两个人p1,p2.如果p1的时间大于p2交换一下,令p1和p2时间相同,即p1走到和p2时间相同。p1和p2如果相遇有两种情况,第一种,同向时,p1和p2的位置相同。第二种,p1和p2反向,求出相遇点,判断p1、p2是否走到终点,即是否在两个区间交集里。
#include<cstdio>#include<algorithm>using namespace std;struct tt{ int t; int s; int f;}a[1010];int num[1010];bool judge(tt p1, tt p2){ if(p1.t > p2.t){ swap(p1.t, p2.t); swap(p1.s, p2.s); swap(p1.f, p2.f); } int flag1, flag2; if(p1.s > p1.f) flag1 = -1; else flag1 = 1; if(p2.s > p2.f) flag2 = -1; else flag2 = 1; int x = p1.s + (p2.t - p1.t) * flag1; if(flag1 == 1 && flag2 == 1){ if(x == p2.s && x <= p1.f) return true; } if(flag1 == -1 && flag2 == 1){ int t1 = x - p1.f; int t2 = p2.f - p2.s; int tt = (x - p2.s); double t = tt / 2.0; double ans = x - t; if(p1.s < p2.s || p1.f > p2.f) return false; if(ans >= p1.f && ans <= p2.f && ans >= p2.s && ans <= x) return true; } else if(flag1 == 1 && flag2 == -1){ int t1 = p1.f - x; int t2 = p2.s - p2.f; int tt = p2.s - x; double t = tt / 2.0; double ans = x + t; if(p1.f < p2.f || p1.s > p2.s) return false; if(ans >= p2.f && ans <= p1.f && ans >= x && ans <= p2.s) return true; } else if(flag1 == -1 && flag2 == -1){ if(x == p2.s && x >= p1.f) return true; } return false;}int main(){ int n; scanf("%d", &n); for(int i = 0;i < n; i++){ scanf("%d%d%d", &a[i].t, &a[i].s, &a[i].f); } for(int i = 0; i < n; i++){ for(int j = i + 1; j < n; j++) if(judge(a[i], a[j])) { num[i]++; num[j]++; } } for(int i = 0; i < n; i++){ if(i) printf(" "); printf("%d", num[i]); } printf("\n");}
1 0
- CodeForces 589D(思路)
- codeforces round# 302(div 2 D)(思路)
- codeforces round#323(div2 D)(思路)
- codeforces 592D(树上的思路题)
- Codeforces Round #395 (Div. 2) D. Timofey and rectangles(思路)
- 【codeforces 749 D】【set+二分查找+思路清晰】
- codeforces 589d(相遇问题)
- CodeForces 589D Boulevard
- CodeForces 589D
- codeforces 589B(两次排序 + 暴力 ) (重点在于思路)
- CodeForces #589 D Boulevard 模拟
- 【Codeforces】542C - Idempotent functions(思路)
- Codeforces 534C Polycarpus' Dice(思路)
- CodeForces 160CFind Pair(思路)
- C. Classroom Watch(思路)---codeforces
- CodeForces 10D(DP)
- codeforces 682D(DP)
- codeforces 723D(DFS)
- java中this用法
- 感谢这一年的尚不如愿,这是下一年必须努力的理由
- Spring Boot实战之单元测试
- 数据结构实验之栈八:栈的基本操作
- 嵌入式系统原理及接口技术 ARM9体系结构
- CodeForces 589D(思路)
- HDU 4431 Mahjong
- C++ vector的用法小结
- eclipse频率最高的快捷键组合
- 获取相册照片和获取拍照照片原图(不被压缩)
- Android系统的启动流程
- C语言基础知识总结
- GSON
- QWebView隐藏时使用代码点击网页上的一个链接或按钮无效。