牛客 周赛109 20250924

news/2025/10/6 14:25:09/文章来源:https://www.cnblogs.com/dianman/p/19127597

牛客 周赛109 20250924

https://ac.nowcoder.com/acm/contest/116945

A:
题目大意:

给定两个坐标,判断和原点一起能否构成一个直角三角形

void solve(){double x, y, u, v;cin >> x >> y >> u >> v;double L[] = {sqrt(x * x + y * y), sqrt(u * u + v * v), sqrt((x - u) * (x - u) + (y - v) * (y - v))};sort(L, L + 3);if (L[0] + L[1] <= L[2]) cout << "No";else cout << "Yes";
}

签到

B:
题目大意:

image-20250923150820760

void solve(){int n;cin >> n;vector<double> x(n), y(n);for (int i = 0; i < n; i ++)cin >> x[i] >> y[i];auto check = [&](int i, int j){double dx = x[i] - x[j], dy = y[i] - y[j];return abs(sqrt(dx * dx + dy * dy) - 1) < 0.000001;};int cnt = 0;for (int i = 0; i < n; i ++){for (int j = i + 1; j < n; j ++){if (check(i, j)) cnt ++; }}cout << cnt ;
}

\(O(n^2)\) 的暴力

C:
题目大意:

image-20250923150907951

void solve(){pair<int, int> p1, p2, p3;cin >> p1.first >> p1.second >> p2.first >> p2.second;if (p1.first == p2.first || p1.second == p2.second){if (p1.first == p2.first){p3.second = min(p1.second, p2.second);p3.first = p1.first - 2;}else{p3.first = min(p1.first, p2.first);p3.second = p1.second - 2;}cout << p3.first << ' ' << p3.second; return ;}if (p1.second < p2.second) swap(p1, p2);p3.first = p1.first;p3.second = p2.second;int dx = p2.first - p3.first;int dy = p1.second - p2.second;if (dx & 1 && dy & 1) p3.first -= dx;cout << p3.first << ' ' << p3.second; }

先构造出以 \(AB\) 为斜边的一个直角三角形,然后判断两条直角边是否都为奇数

如果全为奇数,那么面积存在小数,所以令任意一条直角边变为原来的两倍,构造满足题意

D:
题目大意:

image-20250923151146279

int dx[] = {1, 2, -1, -2};
int dy[] = {2, -2 , 1, -1};void solve(){int n;cin >> n;vector<pair<int, int>> p(n);for (int i = 0; i < n; i ++)cin >> p[i].first >> p[i].second;sort(p.begin(), p.end());map<pair<int, int>, int> mp;for (int i = 0; i < n; i ++){int x = p[i].first, y = p[i].second;for (int u = 0; u < 4 ; u ++){for (int v = 0; v < 4; v ++){if (abs(dx[u]) == abs(dy[v])) continue;int tx = x + dx[u], ty = y + dy[v];if (tx <= 0 || ty <= 0) continue;mp[{tx, ty}] ++;}}}pair<int, int> ans = {0, 0};int mx = 0;for (auto [k ,v] : mp){if (mx < v && lower_bound(p.begin(), p.end(), k) != p.end()){mx = v;ans = k;}}cout << ans.first << ' ' << ans.second;
}

考虑用 map 记录所有可以威胁到兵的位置,至多存在 \(8n = 1.6e6\) 个,存入空间复杂度可以接受

最后枚举所有记录的位置,得到最大值答案

E:
题目大意:

image-20250923151817949

void solve(){int n;cin >> n;vector<pair<int, int>> p(n);for (int i = 0; i < n; i ++)cin >> p[i].first >> p[i].second;sort(p.begin(), p.end());map<int, set<int>> mp;for (int i = 0; i < n; i ++)mp[p[i].first].insert(p[i].second);int ans = 0;for (auto it = mp.begin(); next(it, 1) != mp.end(); it ++){auto st1 = (*it).second, st2 = (*next(it, 1)).second;if ((*it).first != (*next(it, 1)).first - 1) continue;int cnt = 0;for (auto i : st1){if (st2.count(i)) cnt ++;}ans += cnt * (cnt - 1) / 2;}mp.clear();for (int i = 0; i < n; i ++)mp[p[i].second].insert(p[i].first);for (auto it = mp.begin(); next(it, 1) != mp.end(); it ++){auto st1 = (*it).second, st2 = (*next(it, 1)).second;if ((*it).first != (*next(it, 1)).first - 1) continue;int cnt = 0;for (auto i : st1){if (st2.count(i)){cnt ++;if (st1.count(i - 1) && st2.count(i - 1)) ans --;}}ans += cnt * (cnt - 1) / 2;}cout << ans ;
}

对点进行两次排序,第一次按照横坐标从小到大排序,把点按照横坐标存进不同的 set 中,然后枚举 map 中的 set

暴力计算相邻的横坐标相差一的 set 中相同的纵坐标数量,排列组合计算在横坐标相差一下可以构造的矩形数量

同样的对纵坐标排序后相似计算,注意还需要减去长宽都为 \(1\) 的矩形重复的贡献

for (auto i : st1){if (st2.count(i)){cnt ++;if (st1.count(i - 1) && st2.count(i - 1)) ans --;}
}

F:
题目大意:

image-20250923152235422

const int N = 2e5 + 10;struct Q{int k1, k2, idx;
};int s[N];int lowbit(int x){return x&-x;
}void change(int x, int k){while (x < N){s[x] += k;x += lowbit(x);}
}int query(int x){int res = 0;while (x){res += s[x];x -= lowbit(x);}return res;
}void solve(){int n, m;cin >> n >> m;vector<pair<int, int>> p(n);for (int i = 0; i < n; i ++)cin >> p[i].first >> p[i].second;	vector<Q> q(m);for (int i = 0; i < m; i ++){cin >> q[i].k1 >> q[i].k2;q[i].idx = i;}set<int> st;map<int, int> mp;int idx = 0;for (int i = 0; i < n; i ++){int x = p[i].first, y = p[i].second;p[i].first = x - y;p[i].second = x + y;st.insert(p[i].second);}for (int i = 0; i < m; i ++){q[i].k1 *= -1;st.insert(q[i].k2);}for (auto i : st) mp[i] = ++ idx;for (int i = 0; i < n; i ++){p[i].second = mp[p[i].second];change(p[i].second, 1);}for (int i = 0; i < m; i ++) q[i].k2 = mp[q[i].k2];auto cmp = [&](Q x, Q y){return x.k1 < y.k1;};sort(p.begin(), p.end());sort(q.begin(), q.end(), cmp);int i = 0, j = 0;vector<int> ans(m);while (i < m){while (j < n && p[j].first <= q[i].k1){change(p[j].second, -1);j ++;}ans[q[i].idx] = query(q[i].k2 - 1);i ++;}for (auto i : ans) cout << i << '\n';}

给定的点需要满足下面的约束:

\[y - x < k_1\\ y + x < k_2 \]

换算到切比雪夫坐标下,令 \(X = x -y,Y=x + y\) ,约束为 \(X > -k_1,Y<k_2\)

对询问和点集按照 \(X\) 从小到大排序后,离散化后树状数组查询对应 \(Y\) 满足的点的数量

while (i < m){//枚举询问while (j < n && p[j].first <= q[i].k1){//删去点集中不合法的点change(p[j].second, -1);j ++;}ans[q[i].idx] = query(q[i].k2 - 1);//处理询问i ++;
}

时间复杂度为 \(O(n\log n)\)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/929403.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

域名网站如何做市场推广长沙网页网站制作

在赋予一个string值的时候&#xff0c;可以用单引号或者双引号。 1.单引号和双引号的区别&#xff1a; 单引号&#xff1a;不会翻译变量。 双引号&#xff1a;会翻译变量&#xff0c;会将变量替换为之前赋予变量的值。 例子&#xff1a; &#xff08;1&#xff09;单引号&a…

建歌网站多少钱温州网站建设价格

💡💡💡本文独家改进:卷积和注意力融合模块(CAFMAttention),增强对全局和局部特征的提取能力,2024年最新的改进思路 💡💡💡创新点:卷积和注意力巧妙设计 💡💡💡如何跟YOLOv8结合:1)放在backbone后增强对全局和局部特征的提取能力;2)放在detect前面,增…

罗技G102螺丝型号

共有三种,都是PH00螺丝(反正就就是很小的十字螺丝) 外壳固定用  M1.4*4mm  直径3mm厚0.5的平头螺丝  共三个 侧键固定用  M2*4mm   直径5mm厚0.5的平头螺丝  共俩个 主板固定用  M1.4*3mm  直径4…

详细介绍:深入剖析C#构造函数执行:基类调用、初始化顺序与访问控制

详细介绍:深入剖析C#构造函数执行:基类调用、初始化顺序与访问控制pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &qu…

公司网站建设进度vitality wordpress

TCP与UDP TCP 是面向连接的、可靠的流协议&#xff0c;通过三次握手建立连接&#xff0c;通讯完成时要拆除连接。 UDP是面向无连接的通讯协议&#xff0c;UDP通讯时不需要接收方确认&#xff0c;属于不可靠的传输&#xff0c;可能会出现丢包现象 端口号&#xff1a; 端口号用…

上海网站建设 销售营销型网站开发推荐

一、产品介绍 此次发布一款7寸高清全新外壳产品&#xff0c;让HMI人机界面家族再添一新成员。该产品相比其他外壳有以下5个大改动&#xff1a; 1 表面玻璃盖板使用2.5D立体结构&#xff1b; 2 液晶盖板采用一体黑设计&#xff0c;且液晶屏与触摸板是全贴合结构&#xff1b; …

广州网站建设培训学校seo优化外包

了解动态内存函数 前言&#xff1a;一、malloc函数二、calloc函数三、realloc函数四、free函数 前言&#xff1a; 在C语言中&#xff0c;动态内存函数是块重要的知识点。以往&#xff0c;我们开辟空间都是固定得&#xff0c;数组编译结束后就不能继续给它开辟空间了&#xff0…

[LUCKY」在Windows下使用STUN穿透实现Minecraft联机并设置SRV记录

[LUCKY」在Windows下使用STUN穿透实现Minecraft联机并设置SRV记录2024.02.18 本教程目标 在无公网环境低成本的实现较为稳定的 Minecraft Java版联机(服务器) 目前常见的联机(服务器)方法及其问题(针对好友联机和小…

系统管理员的日常困境与幽默自嘲

这篇文章通过Reddit论坛上系统管理员们的真实讨论,展现了IT专业人员面对"请联系系统管理员"这类提示时的无奈与幽默,揭示了技术支持工作中的常见困境和职业共鸣。这篇文章通过Reddit论坛上系统管理员们的真…

46设计网站官网网站开发项目团队人员

前言 如果你被hutool坑过、被fastjson坑过&#xff0c;nicetool帮你解脱&#xff01; 如果你想用稳定、Spring原生的工具类&#xff0c;nicetool已帮你封装&#xff01; nicetool不生产工具&#xff0c;只是JDK和Spring的封装侠&#xff01; 介绍 nicetool&#xff1a;超好…

实用指南:Docker 在 AI 开发中的实践:GPU 支持与深度学习环境的容器化

实用指南:Docker 在 AI 开发中的实践:GPU 支持与深度学习环境的容器化pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: …

电子商务网站类型培训学校 网站费用

处理域名连接nacos读取配置异常 1 项目启动报错2 问题处理3 刷新依赖重启问题解决 1 项目启动报错 使用ip可以正在启动&#xff0c;但是使用域名报下面的错误 2024-06-15 17:37:22.981 ERROR 29268 --- [ main] c.a.c.n.c.NacosPropertySourceBuilder : parse …

视频素材网站建设有没有专门做印刷图的网站

前言 对于使用jmeter工具完成接口测试的测试工程师而言。在工作中&#xff0c;或者在面试中&#xff0c;都会遇到一个问题。 CSV文档做了一大笔测试数据后&#xff0c;怎么去校验这个结果呢&#xff1f; 现在大部分测试工程师可能都是通过人工的方法去查看结果&#xff0c;十几…

AI数据标注平台获融资挑战行业巨头

一家AI数据平台公司获得1300万美元融资,专注于为开发者提供数据标注、管理和模型评估工具,帮助构建高质量AI训练数据集,客户包括多家知名科技企业。AI数据平台获得1300万美元融资挑战行业竞争对手 人工智能数据平台…

详细介绍:如何用 pnpm patch 给 element-plus 打补丁修复线上 bug(以 2.4.4 修复 PR#15197 为例)

详细介绍:如何用 pnpm patch 给 element-plus 打补丁修复线上 bug(以 2.4.4 修复 PR#15197 为例)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block…

广州网站ui设计贵港免费的网站建设

我是个前端菜鸡&#xff0c;最近准备学习一点前端知识&#xff0c;先从Bootstrap5开始&#xff0c;毕竟早期Bootstrap还是比较火的。推出的Bootstrap5不再和jQery强制绑定&#xff0c;这里直接按照官方文档上来操作&#xff0c;打包工具我们选择Webpack。 一 前期准备 前期准备…

网站开发工具最好用做网站的工作量

https://blog.csdn.net/layman1024/article/details/72628379

Go 为何天生适合云原生? - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

ARC 207

目前打得最好的一集。 A 考虑如果 \(\le 0\) 还会减一,那么花掉的钱就是,\(1+2+\cdots +(n-1)\)。现在的问题就是,可能少花掉一些。 最多花掉 \(\mathcal{O}(n^2)\),所以考虑计数这个。发现其实,花掉的是 \(\sum_…