ABC467
D计算几何给四个点其中两个pq属于一个圆另外两个rs属于另一个圆。问有没有可能这两个圆的圆心相同给了圆上两点可以确定圆心在这两点形成的线段的中垂线上。如果两个中垂线有交点则交点就是公共圆心。转化为直线交点问题如果两个中垂线不平行则一定有交点如果平行则只有两个直线重合时才有交点。于是问题转化成判断两个中垂线是否平行这可以用向量叉乘等于0来表示。获取两个直线的方向向量太麻烦的话由于都是中垂线可以直接看pq,rs两个向量是否平行是等价的。判断两个中垂线是否重合如果是手算这不难列出两个直线表达式然后看化简后是否相同。但是这是计算几何系数化简并不好做。考虑重合时满足的其他特征如果重合那么pq,rs平行且pq rs的中垂线相同那么pqsr构成一个梯形检查梯形的性质是好做的比如可以检查对角线相等且斜边相等计算线段长度就可以这是简单的structpoint{intx,y;voidread(){cinxy;}};intcross(via,vib){returna[0]*b[1]-a[1]*b[0];}voidsolve(){point p,q,r,s;p.read();q.read();r.read();s.read();vi pq{p.x-q.x,p.y-q.y};vi rs{r.x-s.x,r.y-s.y};if(cross(pq,rs)0){// cout ok ;if(dis(p.x,p.y,r.x,r.y)dis(q.x,q.y,s.x,s.y)dis(p.x,p.y,s.x,s.y)dis(q.x,q.y,r.x,r.y)){coutYes\n;}else{coutNo\n;}}else{coutYes\n;}}E取模 差分给定A,B一次操作可以给A的一个元素1问最少多少次操作使得AiAi1Bi(modM)A_iA_{i1}B_i(mod M)Ai​Ai1​Bi​(modM)注意到B是确定的那么这个约束其实规定了任意相邻A的递推关系也就是说确定了A1A_1A1​后面的就都确定了只需要考虑A1A_1A1​在[0,M−1][0,M-1][0,M−1]里取什么值。设AiA_iAi​最终加addiadd_iaddi​那么假设add1add_1add1​确定了add2add_2add2​为(A1A2−B1−add1)mod M(A_1A_2-B_1-add_1)\mod M(A1​A2​−B1​−add1​)modM类似地add3add_3add3​为(A2A3−B2−add2)mod M(A_2A_3-B_2-add_2)\mod M(A2​A3​−B2​−add2​)modMaddiadd_iaddi​是可以递推的这和前面的分析一样并且更关键的是注意每一轮递推都会和前一个addi−1add_{i-1}addi−1​符号相反因此add1add_1add1​1所有奇数下标的add都1所有偶数下标的add都-1那么add1add_1add1​1对整体答案的影响是奇数下标个数-偶数下标个数不妨设这个值为diff。此外考虑取模奇数位置1到M了会变成0或者说会-M偶数位置-1到-1了会变成M-1也就是会M。A1A_1A1​能取的值就是[0,M−1][0,M-1][0,M−1]那么add1取值范围也是add_1取值范围也是add1​取值范围也是[0,M-1]最终答案是一个关于最终答案是一个关于最终答案是一个关于add_1$的函数在没有触发取模规则时就是一个线性函数斜率diff触发取模规则的地方会有一些C突变。现在就是求这个函数的最值。考虑枚举自变量取值M1e9M1e9M1e9太大了不行但注意对于每个addiadd_iaddi​最多取模一次因此总的突变位置只有O(n)O(n)O(n)个剩余位置都是线性单增的最值点一定是出现在突变位置具体来说由于CC正负都有可能最值可能是突变点或前一个位置但绝不可能是线性单增过程中的某个点。于是我们用差分标记所有突变位置然后做一次前缀和累加只计算所有突变点和前一个点更新最值。中间的线性部分跳过线性部分的贡献可以O(1)O(1)O(1)计算。需要注意线性段有一种情况下可能是最值就是定义域右端点上要么收的特判一下这个点要么在记录差分的map力给m−1m-1m−1点也做一个0的标记这样也会计算这个点的答案。voidsolve(){intn,m;cinnm;via(n1),b(n);rep(i,1,n){cina[i];}rep(i,1,n-1){cinb[i];}intsum0;viadd(n1);rep(i,2,n){intxb[i-1]-a[i]-a[i-1]-add[i-1];x(x%mm)%m;sumx;add[i]x;}intanssum;intk0;rep(i,1,n){if(i%2){k;}else{k--;}}mapint,intmp;rep(i,1,n){if(i%2){mp[m-add[i]]-m;}else{mp[add[i]1]m;}}intpre0;if(!mp.count(m-1)){mp[m-1]0;}for(auto[cur,dif]:mp){if(curm)break;sum(cur-pre-1)*k;ansmin(ans,sum);sumkdif;ansmin(ans,sum);precur;}coutans;}F线段树 离散化 贪心带修规划问题每个任务准备需要ai准备完了还需要bi的延迟延迟期间可以干别的。问做完所有任务的最短时间。每次会修改一个任务的a或b询问新的结果。这种都先考虑不带修怎么做。这种题要是能做要么DP要么贪心。从简单的开始思考先考虑贪心。贪心策略无非就是按A或B的大小排序。实际答案就是按B排序可以用交换贪心证明在按B降序的基础上交换任意两个任务都是不会更优的。如果不带修按B排序后一次扫描即可确定答案。具体过程是每次在最后新增一个任务答案要么不变前面某个任务的延迟b很大覆盖了这个新任务的ab 要么是这个新任务的结束时间也就是所有a的和加上这个新任务的b发现这个过程可以用线段树维护。于是考虑线段树由于必须按B降序考虑用B作为线段树下标。考虑合并两个区间合并时类似前面的分析答案要么是左区间的答案最后一个结束的任务在左区间有一个超大b比右区间总时间都长要么是左区间的a的和加上右区间的延迟最后一个结束的任务在右区间左区间的b不用考虑了只考虑a带来的延迟于是线段树每个节点需要保存区间内a的和以及区间内所有任务的总时间。更新时如果改的是a改属性a。如果改的是b由于b是作为下标的意味着要在线段树上取消一个元素然后在另一个下标新增一个元素。由于b很大需要离散化再建树。这里有个问题一个b可能同时有多个任务但我们这个设计一个叶子只能对应一个元素所以需要区分b相同的多个元素。具体做法是离散化时对b,id二元组离散化不只对b离散化这样任何一个修改都对应线段树上一个唯一叶子。structTree{#definelsu1#definersu1|1structNode{intl,r,mx,sum;Node operator(constNodeo){Node res;res.mxmax(mx,o.mxsum);res.ll;res.ro.r;res.sumsumo.sum;returnres;}}tr[N2];voidpushup(intu){tr[u]tr[ls]tr[rs];}voidbuild(intu,intl,intr){tr[u]{l,r,0,0};if(lr)return;intmid(lr)1;build(ls,l,mid);build(rs,mid1,r);pushup(u);}voidmodify(intu,intidx,pii val){if(tr[u].ltr[u].r){tr[u].sumval.fi;tr[u].mxval.fival.se;return;}else{intmid(tr[u].ltr[u].r)1;if(mididx)modify(ls,idx,val);elsemodify(rs,idx,val);pushup(u);}}Nodequery(intu,intl,intr){if(ltr[u].ltr[u].rr)returntr[u];intmid(tr[u].ltr[u].r)1;if(rmid)returnquery(ls,l,r);if(lmid)returnquery(rs,l,r);returnquery(ls,l,r)query(rs,l,r);}}t;voidsolve(){intn,q;cinnq;via(n1),b(n1);rep(i,1,n){cina[i];}vectorpiiall;rep(i,1,n){cinb[i];all.push_back({b[i],i});}viop(q1),idx(q1),val(q1);rep(i,1,q){cinop[i]idx[i]val[i];if(op[i]2)all.push_back({val[i],idx[i]});}sort(all.begin(),all.end(),[](piia,piib){returna.fib.fi;});all.erase(unique(all.begin(),all.end()),all.end());inttotall.size()10;viitop(n1);mappii,intmp;intcnt0;for(autop:all){mp[p]cnt;}t.build(1,1,tot);rep(i,1,n){itop[i]mp[{b[i],i}];t.modify(1,itop[i],{a[i],b[i]});}rep(i,1,q){intididx[i];if(op[i]1){a[id]val[i];t.modify(1,itop[id],{a[id],b[id]});}else{t.modify(1,itop[id],{0,0});b[id]val[i];itop[id]mp[{b[id],id}];t.modify(1,itop[id],{a[id],b[id]});}coutt.query(1,1,tot).mx\n;}}

相关新闻

LLM-Pruner: On the Structural Pruning of Large Language Models 解读

LLM-Pruner: On the Structural Pruning of Large Language Models 解读

一、论文基本信息 论文题目:LLM-Pruner: On the Structural Pruning of Large Language Models 作者:Xinyin Ma、Gongfan Fang、Xinchao Wang 发表会议:NeurIPS 2023 官方代码:horseee/LLM-Pruner。官方仓库标注这是 NeurIPS …

2026/9/25 2:48:30 阅读更多 →
CAN/CAN FD调试--笔记1

CAN/CAN FD调试--笔记1

CAN/CAN FD调试–笔记1 一、CAN 和 CAN FD 的配置差别 1.1 BSR 位的作用:速率切换标志 CAN FD 支持两种比特率: 仲裁段(Arbitration Phase):与传统 CAN 相同的低速速率(用于仲裁,确保兼容性…

2026/9/24 20:40:01 阅读更多 →
计算机毕业设计之基于jsp在线选课系统的设计与实现

计算机毕业设计之基于jsp在线选课系统的设计与实现

随着信息化时代的到来,网络系统都趋向于智能化、系统化,在线选课系统也不例外,但目前国内的有些在线选课仍都使用人工管理,在线选课规模越来越大,同时信息量也越来越庞大,人工管理显然已无法应对时代的变化…

2026/9/12 0:44:38 阅读更多 →

最新新闻

EasyWeChat 6.x 开放平台第三方平台实战示例:从推送事件接收、预授权到代公众号/小程序调用

EasyWeChat 6.x 开放平台第三方平台实战示例:从推送事件接收、预授权到代公众号/小程序调用

后端即时通讯 【免费下载链接】easywechat 📦 一个 PHP 微信 SDK 项目地址: https://gitcode.com/gh_mirrors/ea/easywechat 点击查看 免费下载 本篇基于 EasyWeChat 6.x(PHP 微信 SDK)的开放平台第三方平台模块,围绕…

2026/9/25 2:48:22 阅读更多 →
深入解析 Orleans Journaled Todo List 示例:基于日志一致性提供程序的持久化事件溯源实战

深入解析 Orleans Journaled Todo List 示例:基于日志一致性提供程序的持久化事件溯源实战

后端微服务 【免费下载链接】orleans Cloud Native application framework for .NET 项目地址: https://gitcode.com/gh_mirrors/or/orleans 点击查看 免费下载 导读 Journaled Todo List 是一个由 .NET Aspire 托管的 Blazor Web 应用示例,它完整演示…

2026/9/25 2:48:22 阅读更多 →
Kubebuilder 移除 kube-rbac-proxy:以 NetworkPolicy 与 cert-manager 重构指标端点安全架构

Kubebuilder 移除 kube-rbac-proxy:以 NetworkPolicy 与 cert-manager 重构指标端点安全架构

开发者工具代码生成CLI云原生后端 【免费下载链接】kubebuilder Kubebuilder - SDK for building Kubernetes APIs using CRDs 项目地址: https://gitcode.com/gh_mirrors/ku/kubebuilder 点击查看 免费下载 Kubebuilder 在 3.15.0 版本起不再在新脚手架的默认配置…

2026/9/25 2:48:22 阅读更多 →
react-native-skia 混合着色器指南:用 Blend 与 ColorShader 组合着色效果

react-native-skia 混合着色器指南:用 Blend 与 ColorShader 组合着色效果

图形学移动开发跨平台UI组件 【免费下载链接】react-native-skia High-performance React Native Graphics using Skia 项目地址: https://gitcode.com/gh_mirrors/re/react-native-skia 点击查看 免费下载 本篇指南基于 react-native-skia 官方文档中的 Blending …

2026/9/25 2:48:21 阅读更多 →
Python字符串转数字:int()与float()的精度陷阱与异常处理实战

Python字符串转数字:int()与float()的精度陷阱与异常处理实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 2:48:20 阅读更多 →
专科毕业论文AI工具实测:九款软件组合与全流程配置指南

专科毕业论文AI工具实测:九款软件组合与全流程配置指南

专科生的毕业论文难不难?我不想灌鸡汤,直接说结论:难,但不是难在深度,而是难在没人告诉你怎么拆解。我自己当年也是一边实习一边抽空搞论文,白天上班晚上憋字,导师的标准一句比一句抽象。后来我…

2026/9/25 2:47:20 阅读更多 →

日新闻

AI元人文:从工具使用到思维重构的深度探索

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:00:41 阅读更多 →
Python+CNN车牌识别实战:从数据预处理到模型训练与部署

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:00:41 阅读更多 →
Vim基础操作全攻略:保存退出、模式切换与高频命令实战

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/25 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →