尧图网络科技 Logo 尧图网络科技
  • 首页
  • 关于我们
  • 建站服务
  • UI 设计
  • 案例展示
  • SEO 优化
  • 资讯中心
  • 联系我们

资讯详情

深度解读 · 专业分析

  • 首页
  • 资讯中心
  • /
  • P6149 [USACO20FEB] Triangles S 总结

最新资讯

  • 全部资讯
  • 行业动态
  • UI 设计
  • SEO 优化
  • 网站开发

P6149 [USACO20FEB] Triangles S 总结

📅 发布时间:2026/6/19 23:12:39 👁 浏览次数:
P6149 [USACO20FEB] Triangles S 总结

P6149 [USACO20FEB] Triangles S 总结

P6149 [USACO20FEB] Triangles S 总结

思路历程

这一题还是相当有趣的,首先我们不难发现,题目要求的就是一个两个直角边平行于 \(x\) 和 \(y\) 的直角三角形。

此时我们想到,这个三角形开口的方向可以有四个情况(对应四个象限),所以我们可以排序四次并在这四次排序操作得到这四种情况。

然后我们考虑一个点对应的 \(x\) 轴和 \(y\) 轴上有多个点怎么求面积,我们可以通过推一推式子得到结论:假设 \(x\) 轴上有多个线段 \(x_1, x_2, x_3\) 和 \(y\) 轴上有多段线段 \(y_1, y_2, y_3\),可以得到这个式子:

\[\sum S = (x_1+2\times x_2+3\times x_3) \times (y_1 + 2\times y_2 + 3\times y_3) \]

所以我们还需要用一个桶来记录出现的点的个数。

#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long 
#define pii pair <ll, ll>
const ll PI = 1e4+5;
const ll MOD = 1e9+7;void solve () {int n; cin >> n;vector <pii> point(n);for (int i = 0;i < n;i++) {cin >> point[i].first >> point[i].second;point[i].first += PI, point[i].second += PI;}ll ans = 0;auto count = [&]() -> void {vector <ll> x(PI*2+1000, 0), _x(PI*2+1000, 0), y(PI*2+1000, 0), _y(PI*2+1000, 0);vector <ll> lstx(PI*2+1000), lsty(PI*2+1000);for (auto [fir, sec] : point) {x[fir] = (x[fir] + abs(sec-lstx[fir])*_x[fir]) % MOD, _x[fir]++, lstx[fir] = sec;y[sec] = (y[sec] + abs(fir-lsty[sec])*_y[sec]) % MOD, _y[sec]++, lsty[sec] = fir;ans = (ans + x[fir]*y[sec]) % MOD; }};sort(point.begin(), point.end(), [&](pii x, pii y) { return (x.first != y.first ? x.first < y.first : x.second < y.second); });count();sort(point.begin(), point.end(), [&](pii x, pii y) { return (x.first != y.first ? x.first < y.first : x.second > y.second); });count();sort(point.begin(), point.end(), [&](pii x, pii y) { return (x.first != y.first ? x.first > y.first : x.second < y.second); });count();sort(point.begin(), point.end(), [&](pii x, pii y) { return (x.first != y.first ? x.first > y.first : x.second > y.second); });count();cout << ans << "\n";
}int main () {ios::sync_with_stdio(false);cin.tie(nullptr), cout.tie(nullptr);int _ = 1;while (_--) solve();return 0;
}

相关新闻

数据预处理

数据预处理

2026/6/20 3:47:38 查看详情
Java第二天

Java第二天

2026/6/19 0:27:28 查看详情
八、认识for循环

八、认识for循环

2026/6/20 8:14:12 查看详情
zTree架构设计与性能优化:构建企业级树形数据可视化解决方案

zTree架构设计与性能优化:构建企业级树形数据可视化解决方案

2026/6/20 10:02:12 查看详情
庆阳市奢侈品手表包包回收多少钱?本地5家门店最新回收报价 - 谊识预商贸

庆阳市奢侈品手表包包回收多少钱?本地5家门店最新回收报价 - 谊识预商贸

2026/6/20 10:02:12 查看详情
2026 上海爱彼腕表回收甄选指南:本地专业机构筛选标准与适配推荐 - 奢侈品回收

2026 上海爱彼腕表回收甄选指南:本地专业机构筛选标准与适配推荐 - 奢侈品回收

2026/6/20 10:02:12 查看详情
SPI通信协议深度解析:从双缓冲机制到中断驱动的稳定实践

SPI通信协议深度解析:从双缓冲机制到中断驱动的稳定实践

2026/6/20 10:02:00 查看详情
贵阳云岩区黄金回收五维测评 金价903元每克行情分析 - 专业黄金回收

贵阳云岩区黄金回收五维测评 金价903元每克行情分析 - 专业黄金回收

2026/6/20 10:02:12 查看详情
常州钟楼区黄金回收行情指南与六家机构实测对比 - 专业黄金回收

常州钟楼区黄金回收行情指南与六家机构实测对比 - 专业黄金回收

2026/6/20 10:00:02 查看详情
团队博客 5:Sprint 3——收官与优化

团队博客 5:Sprint 3——收官与优化

2026/6/20 0:00:19 查看详情
3分钟掌握微信语音转换:Silk v3解码器完整使用指南

3分钟掌握微信语音转换:Silk v3解码器完整使用指南

2026/6/20 0:01:25 查看详情
VAC进程监控模块完全解析:3种扫描类型与虚拟方法表技术揭秘

VAC进程监控模块完全解析:3种扫描类型与虚拟方法表技术揭秘

2026/6/20 0:01:25 查看详情
从Landsat到高分系列:手把手教你选择适合自己项目的遥感卫星数据

从Landsat到高分系列:手把手教你选择适合自己项目的遥感卫星数据

2026/6/20 3:05:19 查看详情
福州空调维修上门加氟移机空调不制冷、推荐本地老牌鑫盛达、冷顺安 - 我叫一

福州空调维修上门加氟移机空调不制冷、推荐本地老牌鑫盛达、冷顺安 - 我叫一

2026/6/20 4:00:16 查看详情
嵌入式调试器组件化界面与拖拽交互技术详解

嵌入式调试器组件化界面与拖拽交互技术详解

2026/6/20 2:29:50 查看详情
YOLOv11涨点改进| CVPR 2026 | 独家创新首发、特征融合改进篇| 引入CMGF 引导特征融合机制,实现对不同模态特征的自适应增强与高效融合,助力多模态目标检测,小目标检测或分割有效涨点

YOLOv11涨点改进| CVPR 2026 | 独家创新首发、特征融合改进篇| 引入CMGF 引导特征融合机制,实现对不同模态特征的自适应增强与高效融合,助力多模态目标检测,小目标检测或分割有效涨点

2026/6/19 22:53:17 查看详情
E-E-A-T 成第一权重:2027 年无经验内容将被彻底淘汰

E-E-A-T 成第一权重:2027 年无经验内容将被彻底淘汰

2026/6/20 4:40:29 查看详情
深圳福田园岭老小区搬家公司推荐 经验足师傅高效搬运攻略 - 从来都是英雄出少年

深圳福田园岭老小区搬家公司推荐 经验足师傅高效搬运攻略 - 从来都是英雄出少年

2026/6/18 22:29:04 查看详情

关于尧图

立足北京本地的一站式网站建设服务与设计教学平台,深耕企业网站定制开发、全网 SEO 优化及网络推广服务。

快速链接

  • 关于我们
  • 建站服务
  • 案例展示
  • 资讯中心

服务项目

  • 企业官网定制
  • UI 界面设计
  • SEO 优化推广
  • 移动端适配

联系方式

电话:400-XXX-XXXX

邮箱:info@zskr.cn

地址:北京市朝阳区 XXX 路 XX 号

© 2026 尧图网络科技 版权所有 | 京 ICP 备 XXXXXXXX 号