当前位置: 首页 > news >正文

P14393 题解

原题链接

曼波~

\(n^2\) 过百万,暴力踩标算。

实则是不是百万。

思路

注意到输入范围最后一行,表示每次询问两个起冲突的部落是一定互不相同的(当然即使相同也可以记忆化),那么每次询问对两个部落之间的龙进行暴力枚举枚举是均摊 \(O(n^2)\) 的,与 \(q\) 无关。题目中 \(n\) 的范围是 \(30000\),卡卡常能过。

对于验证每一条龙向另一条龙发射火球是否会破坏道路,显然可以转换为验证射线与线段是否相交,是计算几何板子。

卡常

挺好卡的,把计算几何的板子加点 inline 然后用链式前向星就很快了。虽然我卡了很久。

部分代码

const int maxn = 3 * 1e4 + 1;int n, m, q, ans = 0, tot, id, res, head[maxn];
struct edge {pair <int, int> p;int nxt;
} e[maxn];
pair <int, int> x, y;// 为了卡常其他的都可以开 int,但计算几何板子里面一定开开 long long。
#define pii pair <long long, long long> 
inline pii to(pii a, pii b) { return {b.first - a.first, b.second - a.second}; }
inline long long cj(pii a, pii b) { return a.first * b.second - b.first * a.second; }
inline bool getdirection(pii a, pii b, pii c) { return cj(to(a, b), to(a, c)) > 0; }
inline int check(pii f, pii t, pii a, pii b) { return getdirection(a, b, f) ? (!getdirection(a, f, t) && getdirection(b, f, t)) : (getdirection(a, f, t) && !getdirection(b, f, t)); }void solve() {cin >> n >> m;for(int i = 1, from; i <= n; i++) {pair <int, int> p;cin >> p.first >> p.second >> from;tot++;e[tot].p = p, e[tot].nxt = head[from];head[from] = tot;}cin >> x.first >> x.second >> y.first >> y.second >> q;while(q--) {int id1, id2;cin >> id1 >> id2;res = 0;for(int i1 = head[id1]; i1; i1 = e[i1].nxt) for(int i2 = head[id2]; i2; i2 = e[i2].nxt) res += check(e[i1].p, e[i2].p, x, y);cout << res; el;}
}
http://www.jsqmd.com/news/405438/

相关文章:

  • 民生银行的事
  • 导师推荐!自考论文神器 —— 千笔写作工具
  • 2026最新!9个降AIGC平台测评:研究生降AI率必备工具全解析
  • 2026更新版!AI论文工具 千笔AI VS 知文AI,专科生写作新选择!
  • 看完就会:专科生必备的AI论文工具 —— 千笔写作工具
  • 格式总出错?口碑爆棚的AI论文平台 —— 千笔·专业论文写作工具
  • AI元人文:空性、科学与舞台 ——基于“自感注册”的存在论拓展
  • 闭眼入AI论文工具,千笔AI VS 学术猹,本科生专属神器!
  • 从此告别拖延,AI论文软件 千笔ai写作 VS 云笔AI,自考写作者首选!
  • 字面量与变量
  • LSM-Tree 日志结构合并树
  • 2026年适合企业产品介绍可商用的9款解说配音软件
  • aaaaa
  • CF2192C All-in-one Gun
  • 基于php高校社团管理系统设计与实现_w349azoj
  • [php]校园互助生活服务交流平台视频(编号:99513267)
  • 基于PHP的高校学生考勤管理系统的设计与实现_qy08f0tq
  • 可信数据空间建设运营指南,六项地方标准
  • 考虑风光火储的微电网优化调度 软件:Matlab+cplex 介绍:考虑风电、光伏、热电机组和...
  • 干货来了:MBA必备降AI率工具,千笔·降AIGC助手 VS Checkjie
  • 【实战落地】方言TTS开发避坑指南:从0搭建可商用方言语音生成系统(附完整代码+顶会方案)
  • 多组学临床运用--解析胃癌新辅助免疫化疗异质性反应的遗传与免疫驱动因素
  • 处理二维信号(或图像)的傅里叶变换算法的MATLAB源代码,其中含:二维傅里叶变换、用滤波器自...
  • python大学生兼职信息系统(编号:15217141)
  • python日用品在线购物商城平台设计与实现 9c9d42r0
  • python家政服务公司信息管理系统(编号:50892236)
  • 无感方波方案,无感启动无抖动,无反转,启动方式为脉冲注入检测位置,换相方式为AD+比较器,电机...
  • 人工智能应用- 预测化学反应:03. 扑朔迷离的化学反应
  • 开发日志5
  • 人工智能应用- 预测化学反应:02. 化学反应简介