• O(nmlogn)O(nmlogn)O(nmlogn),这么一算都1e8了
  • long double,但好像double也可以过
#include <iostream>
#include <algorithm>
#include <cstring>
#include <queue>
#include <vector>
#define debug(a) cout << #a << " = " << a << endl;
//#define x first
//#define y second
#define LD long double
using namespace std;
typedef long long ll;const int N = 1005;
const double INF = 1e9 + 7;struct point
{LD x, y;
}A[N], stk[N];LD slope(point s, point t)
{if (s.x == t.x)return INF;return (t.y - s.y) / (t.x - s.x);
}struct line
{LD k, b;point fromP, endP;line(){}line(point s, point t){fromP = s, endP = t;k = slope(s, t);if (k == INF) b = INF;else b = s.y - k * s.x;}
};point findPoint(line a, line b)
{if (a.k == b.k)return point{INF, INF};LD xpos, ypos;if (a.k == INF)xpos = a.fromP.x;else if (b.k == INF)xpos = b.fromP.x;elsexpos = (b.b - a.b) / (a.k - b.k);if (a.k == 0)ypos = a.fromP.y;else if (b.k == 0)ypos = b.fromP.y;elseypos = xpos * a.k + a.b;return point{xpos, ypos};
}int getAllPoint(int n, int h, line city)
{int cnt = 0;point s = city.fromP, t = city.endP;for (int i = 1; i <= n; i ++ ){if (i == h) continue;line now = line(A[i], A[h]);if (now.k == city.k)continue;point get = findPoint(now, city);if (get.x < min(s.x, t.x) || get.x > max(s.x, t.x) || get.y < min(s.y, t.y) || get.y > max(s.y, t.y))continue;stk[ ++ cnt] = get;}return cnt;
}int main()
{int n, m;scanf("%d%d", &n, &m);point s, t;scanf("%LF%LF%LF%LF", &s.x, &s.y, &t.x, &t.y);line city = line(s, t);for (int i = 1; i <= n; i ++ ){scanf("%LF%LF", &A[i].x, &A[i].y);}for (int i = 1; i <= m; i ++ ){int h, k;scanf("%d%d", &h, &k);int len = getAllPoint(n, h, city);if (k > len){printf("-1\n");}else{if (city.k == 0)sort(stk + 1, stk + 1 + len, [](point a, point b){return a.x < b.x;});elsesort(stk + 1, stk + 1 + len, [](point a, point b){return a.y < b.y;});if (s.y > t.y)reverse(stk + 1, stk + 1 + len);if (city.k == 0 && s.x > t.x)reverse(stk + 1, stk + 1 + len);printf("%.10LF %.10LF\n", stk[k].x, stk[k].y);}}return 0;
}

Mr. Main and Windmills 模拟,计算几何(昆明)相关推荐

  1. 2020 ICPC 昆明站 I(Mr. Main and Windmills)

    题目链接 题目大意: 给定 n 个点 m 个询问, 在给出一条线段,人从线段的st走到ed,每次询问查询第h个点在视野中发生第k次交换时人所处的位置. 思路: 先n2枚举预处理每组直线,二维结构体数组 ...

  2. [luogu9141] [THUPC 2023 初赛] 乱西星上的空战 -大模拟 - 计算几何

    传送门:P9141 [THUPC 2023 初赛] 乱西星上的空战 大家好我又来了,这次带给大家的依然是THUPC的传统艺能大模拟~ 个人点评:这题是我个人写完并通过的算法竞赛中的大模拟题中最长的一道 ...

  3. 计算几何从入门到入土(题目)

    代码中的板子参考了繁凡和俊杰带佬的板子 二维基础 A.计算几何spj hacker 题意: 输入一组数a,b使无论ans为任何数,以下函数都返回AC. // a and b are outputed ...

  4. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(昆明),签到题HIL

    H. Hard Calculation 链接:https://ac.nowcoder.com/acm/contest/12548/H 来源:牛客网 题目描述 Hooray! It is the fir ...

  5. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(昆明),签到题4题

    文章目录 H. Hard Calculation I. Mr. Main and Windmills L. Simone and graph coloring J.Parallel Sort 补题链接 ...

  6. 【基础算法-模拟-例题-*校长的问题】-C++

    为什么在题目前面打上星号呢? 这道题的正解不是模拟! 正解树状数组! 正解树状数组! 正解树状数组! 重要的事情说够三遍了! 但是,歪解模拟因为数据水都能AC! 因为这道题放在模拟专题中,所以我们就讨 ...

  7. Java纸牌拖拉机简单模拟

    有天跟前任玩纸牌的拖拉机,来来回回玩了好长时间,分不出胜负,当时就在想,这玩意能分出胜负吗?于是心血来潮就想写一个程序模拟一下,看到底能不能分出胜负,写出来了,能分出胜负,但貌似哪里还有点问题,总共5 ...

  8. 第七周实践项目6 停车场模拟(栈和队列综合)

    设停车场是一个可停放n辆汽车的狭长死胡同,南边封口,汽车只能从北边进出(这样的停车场世间少有).汽车在停车场内按车辆到达时间的先后顺序,最先到达的第一辆车停放在车场的最南端,依次向北排开.若车场内已停 ...

  9. vue模拟加载更多功能(数据追加)

    使用vue制作加载更多功能,通过ajax获取的数据往data里面push经常不成功,原因是push是往数组中追加数据内容的,而不能用作数组之间的拼接,ajax获取的数据就是数组形式的,因此不成功,应该 ...

最新文章

  1. 如何利用 C# 爬取BigOne交易所的公告!
  2. pandas基本数据操作
  3. Python 里面如何生成随机数?
  4. Deep Ranking for Person Re-identification via Joint Representation Learning
  5. linux入门之实用指令(三)
  6. 想写一篇关于.net下COM工作原理的文章
  7. Sass mixin与extends、%placeholder、function
  8. mixin机制 vue_vue mixins组件复用的几种方式(小结)
  9. 工作只用jquery,原生js知道就好了
  10. 《机器人学导论》Matlab计算坐标系变换矩阵
  11. Freemarker word导出教程
  12. python 规则引擎 drools_Drools规则引擎入门指南(一)
  13. 安卓系统管理软件_26号免费软件集合
  14. kettle数据清洗
  15. 关于CS模式和P2P模式分发文件速度的思考
  16. oracle与sql语句
  17. 自媒体人或初学者以及专业电影制作者最喜欢的八款制作软件推荐(会声会影)(Vegas)
  18. mybatis 九大动态标签详解
  19. 【Hive】grouping sets() 函数
  20. 为不同大小的图片添加纯色背景

热门文章

  1. SAP 库存物资收发存报表主要思路
  2. SmartForms 小技巧
  3. SAP方丈-写给新手的SAP成本核算流程
  4. SD功能增强业务说明书
  5. 会计记忆总结之四:会计凭证
  6. delphi获取闲置时间
  7. 回港二次上市,会是内容社区平台的更优选吗?
  8. 左手高仿,右手二奢,这届年轻人的奢侈品消费有点迷
  9. php写的微信聊天界面,浅谈 聊天界面 核心架构设计
  10. 行为模型实例 php,JS中事件模型的实例详解