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

Educational Codeforces Round 120 (Rated for Div. 2) vp补题

文章目录C 贪心 策略D 组合数学 容斥原理E 状压 绝对值 贪心参考Ander 的题解C 贪心 策略基本策略操作1改小的让大的数进行操作2变成小的voidsolve(){intn,k;cinnk;vectorinta(n1),pre(n1,0);intsm0;forr(i,1,n)cina[i];sort(a.begin()1,a.end());forr(i,1,n){pre[i]pre[i-1]a[i];}if(pre[n]a[1]k)cout0endl;else{intmninf;reforr(i,1,n){intaftsmk-pre[i]a[1];// 修改的部分最后得到的和intaim;// aim*(n-i1)aftsmif(aftsm0)aimaftsm/(n-i1);// aim是a[1]要改成的数elseaim(aftsm-ni)/(n-i1);// 负数向下取整mnmin(mn,max(a[1]-aim,0ll)n-i);}coutmnendl;}}D 组合数学 容斥原理constintN1e5,M1e5;constdoublePIacos(-1);constlonglongmod998244353,inf1e910;intfac[N10],ifac[N10];intqpow(inta,intb,intp){intres1;while(b){if(b1)(res*a)%p;b1;(a*a)%p;}returnres%p;}intinv(intx){returnqpow(x,mod-2,mod)%mod;}voidinit(){fac[0]1;forr(i,1,N){fac[i]fac[i-1]*i%mod;}ifac[N]inv(fac[N]);reforr(i,0,N-1){ifac[i]ifac[i1]*(i1)%mod;}}intC(intn,intm){returnfac[n]*ifac[m]%mod*ifac[n-m]%mod;}voidsolve(){intn,k;string s;cinnks;s s;/* 双指针 拓展最长的有k个1的段 任意取的最长段 1的数量都不变 */vectorintpre(n1,0);forr(i,1,n){pre[i]pre[i-1](s[i]-0);}if(pre[n]k||k0)returncout1endl,void();// 不操作// 该题 问的是最多进行一次操作 不操作也可以得到1// ICPC南昌邀请赛I 问的是进行一次操作intans0;if(k1){vectorintcnt;intz0;forr(i,1,n){if(s[i]1){cnt.push_back(z);z0;if(cnt.size()1){inttpcnt.size();anscnt[tp-1]cnt[tp-2];}}elsez;}cnt.push_back(z);inttpcnt.size();anscnt[tp-1]cnt[tp-2]1;// 进行一次操作也可以不修改}else{intnowl1,nowr0,lstr-1;while(nowrn){while(nowrnpre[nowr1]-pre[nowl-1]k)nowr;if(pre[nowr]-pre[nowl-1]k)break;// 判断区间1的个数intlap0;// 和上一段重叠部分if(lstrnowl)lapC(lstr-nowl1,pre[lstr]-pre[nowl-1]);// nowl~lstr这一段的1数量不变 就是两段都会算的部分(ansC(nowr-nowl1,pre[nowr]-pre[nowl-1])-lapmod)%mod;while(nowlnowrpre[nowr]-pre[nowl-1]k)nowl;// 摆脱1数量k的这一段lstrnowr;}}coutansendl;}E 状压 绝对值 贪心题意r [ i ] ∑ j 1 m p [ j ] s [ i ] [ j ] r[i] \sum_{j 1} ^m p[j] s[i][j]r[i]∑j1m​p[j]s[i][j]。给定 x[i] 问∑ i 1 n ∣ r [ i ] − x [ i ] ∣ \sum_{i 1}^n |r[i] - x[i]|∑i1n​∣r[i]−x[i]∣的最大值无论实际情况如何总有∣ r i − x i ∣ sign i ⋅ ( r i − x i ) |r_i - x_i| \text{sign}_i \cdot (r_i - x_i)∣ri​−xi​∣signi​⋅(ri​−xi​)其中sign i \text{sign}_isigni​的取值取决于r i r_iri​和x i x_ixi​的大小关系。由于n ≤ 10 n \leq 10n≤10我们可以枚举所有2 n 2^n2n种符号组合( sign 1 , sign 2 , … , sign n ) (\text{sign}_1, \text{sign}_2, \ldots, \text{sign}_n)(sign1​,sign2​,…,signn​)。对于固定的符号组合目标函数变为∑ i 1 n sign i ( r i − x i ) ∑ i 1 n sign i r i − ∑ i 1 n sign i x i \sum_{i1}^n \text{sign}_i(r_i - x_i) \sum_{i1}^n \text{sign}_i r_i - \sum_{i1}^n \text{sign}_i x_ii1∑n​signi​(ri​−xi​)i1∑n​signi​ri​−i1∑n​signi​xi​这里的关键是我们不是在猜测实际的符号而是在尝试所有可能的符号分配方式。并且符合r i r_iri​和x i x_ixi​的大小关系的符号一定能取到最大值。因此可以把绝对值符号去掉。对于每一种符号组合我们计算固定值− ∑ i 1 n sign i x i -\sum_{i1}^n \text{sign}_i x_i−∑i1n​signi​xi​这部分与p pp无关可变值∑ i 1 n sign i r i ∑ j 1 m p j ( ∑ i 1 n sign i s i , j ) \sum_{i1}^n \text{sign}_i r_i \sum_{j1}^m p_j \left(\sum_{i1}^n \text{sign}_i s_{i,j}\right)∑i1n​signi​ri​∑j1m​pj​(∑i1n​signi​si,j​)然后我们通过排序找到使可变值最大的排列p pp。voidsolve(){intn,m;cinnm;vectorintx(n1);vectorstrings(n1);forr(i,1,n)cinx[i];forr(i,1,n)cins[i];intmx-1;vectorintans;/* 因为枚举正负号绝对值的情况被包含在内并且肯定是最大值 如果枚举的正负号不贴合去掉绝对值的情况必然得不到最大值 */forr(b,0,(1n)-1){// 状压// 枚举正负符号情况 1:r_ix_i |r_i-x_i|r_i-x_i 0:r_ix_i |r_i-x_i|-r_ix_ivectorinttp(m1);vectorpiiv(m1);// 每个位置的系数 需要记录下标forr(j,1,m)v[j]{0,j};intxsm0;forr(i,1,n){if(b(i-1)1){xsm-x[i];forr(j,1,m){if(s[i][j-1]-0)v[j].fir;}}else{xsmx[i];forr(j,1,m){if(s[i][j-1]-0)v[j].fir--;}}}// coutxsmxsmendl;// 因为是排列 待填p_i是固定的 系数大的分配大的p_isort(v.begin()1,v.end());intrsm0;forr(j,1,m){tp[v[j].sec]j;rsmj*v[j].fir;}// coutrsmrsmendl;if(rsmxsmmx){mxrsmxsm;anstp;}}forr(i,1,m)coutans[i] ;coutendl;}

相关文章:

Educational Codeforces Round 120 (Rated for Div. 2) vp补题

文章目录C 贪心 策略D 组合数学 容斥原理E 状压 绝对值 贪心参考Ander 的题解 C 贪心 策略 基本策略&#xff1a;操作1改小的&#xff0c;让大的数进行操作2变成小的 void solve(){int n,k;cin>>n>>k;vector<int>a(n1),pre(n1,0);int sm0;forr(i,1,n)cin>…...

5大创新功能:CodeCombat如何让编程学习像玩游戏一样上瘾

5大创新功能&#xff1a;CodeCombat如何让编程学习像玩游戏一样上瘾 【免费下载链接】codecombat Game for learning how to code. 项目地址: https://gitcode.com/gh_mirrors/co/codecombat 你是否曾经想过&#xff0c;学习编程可以像玩角色扮演游戏一样充满乐趣和成就…...

YOLO X Layout快速部署:systemd服务脚本守护app.py进程,异常自动重启

YOLO X Layout快速部署&#xff1a;systemd服务脚本守护app.py进程&#xff0c;异常自动重启 1. 项目简介与核心价值 YOLO X Layout是一个基于YOLO模型的智能文档版面分析工具&#xff0c;能够自动识别文档中的各种元素类型。这个工具特别适合需要处理大量文档的场景&#xf…...

芯片逆向工程与专利分析的技术实践与法律风险

1. 芯片逆向工程的行业现状与技术痛点在半导体行业摸爬滚打十几年&#xff0c;我见过太多公司一边公开否认、一边私下大搞逆向工程的"行业潜规则"。这就像厨艺界的秘密配方破解——大家都说尊重原创&#xff0c;但谁不想知道对手的独门秘方&#xff1f;逆向工程本质上…...

如何在 Vite + React 项目中禁用自动热更新(HMR)

本文详解如何在 vite 开发服务器中彻底禁用热模块替换&#xff08;hmr&#xff09;&#xff0c;避免长时间操作&#xff08;如大文件上传、复杂计算&#xff09;因页面自动刷新而中断进度&#xff0c;同时提供配置示例与关键注意事项。 本文详解如何在 vite 开发服务器中彻…...

VBA-JSON终极指南:让Office应用轻松处理JSON数据的完整解决方案

VBA-JSON终极指南&#xff1a;让Office应用轻松处理JSON数据的完整解决方案 【免费下载链接】VBA-JSON JSON conversion and parsing for VBA 项目地址: https://gitcode.com/gh_mirrors/vb/VBA-JSON 在当今数据驱动的办公环境中&#xff0c;处理JSON数据已成为VBA开发者…...

程序员鱼皮AI智能体项目学习体验分享|给Java学习者的真实参考

各位正在学习Java的小伙伴们&#xff0c;大家好&#xff5e; 最近我刚完整做完程序员鱼皮的AI智能体项目&#xff0c;发现不少同学对这个项目很感兴趣&#xff0c;结合我自己的学习全过程和真实感受&#xff0c;今天就来跟大家好好分享一波&#xff0c;也给纠结要不要学这个项目…...

拯救者工具箱:让你的联想笔记本性能翻倍的开源神器

拯救者工具箱&#xff1a;让你的联想笔记本性能翻倍的开源神器 【免费下载链接】LenovoLegionToolkit Lightweight Lenovo Vantage and Hotkeys replacement for Lenovo Legion laptops. 项目地址: https://gitcode.com/gh_mirrors/le/LenovoLegionToolkit 还在为联想官…...

华硕枪神8/8Plus 超竞版 G634J G614J G814J G814J 原厂Win11 22H2系统分享下载-宇程系统站

华硕枪神8/8Plus超竞版配备了一键恢复功能&#xff0c;可帮助用户在系统异常或更换硬盘后轻松恢复原厂Win11 22H2系统及隐藏恢复分区。支持包括G634JYR、G614JIR、G814JVR等在内的多款型号。通过使用原厂提供的工厂文件&#xff0c;用户能够确保系统恢复至出厂状态&#xff0c;…...

记录一次长时间未提交事务造成的慢SQL

目录 问题描述 问题分析 1、了解前后信息 2、分析执行计划 3、分析生产环境系统负载 4、分析数据库性能 5、初步锁定根因为长时间未提交事务导致 6、最终根因定位 7、原理分析 问题描述&#xff1a; 开发反馈执行某条select语句的时候&#xff0c;生产环境和测试环境耗时相差非…...

如何优雅地使用c语言编写爬虫

前言 大家在平时或多或少地都会有编写网络爬虫的需求。一般来说&#xff0c;编写爬虫的首选自然非python莫属&#xff0c;除此之外&#xff0c;java等语言也是不错的选择。选择上述语言的原因不仅仅在于它们均有非常不错的网络请求库和字符串处理库&#xff0c;还在于基于上述语…...

幻境·流金多场景落地:支持教育课件配图、科研论文插图、展览海报

幻境流金多场景落地&#xff1a;支持教育课件配图、科研论文插图、展览海报 1. 引言&#xff1a;让专业视觉创作变得简单高效 在日常工作和学习中&#xff0c;我们经常需要制作各种视觉材料——老师需要为课件配图&#xff0c;研究人员需要为论文制作插图&#xff0c;策展人员…...

自学渗透测试第20天(防火墙基础与规则配置)

7.3 防火墙基础与规则配置&#xff08;第20天&#xff09;核心目标理解防火墙原理&#xff1a;掌握包过滤、状态检测、应用层代理等防火墙工作原理&#xff0c;理解iptables/netfilter架构。掌握iptables配置&#xff1a;熟练使用iptables命令配置防火墙规则&#xff0c;实现访…...

Beyond Compare 5密钥生成器:简单高效的文件对比工具激活方案

Beyond Compare 5密钥生成器&#xff1a;简单高效的文件对比工具激活方案 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen 还在为Beyond Compare 5的30天评估期到期而烦恼吗&#xff1f;BCompare…...

5分钟快速上手:QMCDecode音频格式转换完整指南

5分钟快速上手&#xff1a;QMCDecode音频格式转换完整指南 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac&#xff0c;qmc0,qmc3转mp3, mflac,mflac0等转flac)&#xff0c;仅支持macOS&#xff0c;可自动识别到QQ音乐下载目录&#xff0c;默认转换结果…...

【限时解密】Loom响应式项目CI/CD流水线重构方案(GitHub Actions + JUnit 5.12+ Loom-aware Profiling插件)

第一章&#xff1a;Java 项目 Loom 响应式编程转型指南 2026 最新趋势 Java 平台在 2026 年已全面拥抱 Project Loom 的虚拟线程&#xff08;Virtual Threads&#xff09;与结构化并发&#xff08;Structured Concurrency&#xff09;&#xff0c;并与响应式编程范式深度协同。…...

规划失败怎么办:回退、改写与再规划策略

规划失败怎么办:回退、改写与再规划全链路策略 副标题:从软件工程、AI Agent到企业战略的通用可落地框架,附代码实现与实战案例 第一部分:引言与基础 1.1 摘要/引言 你有没有遇到过这些崩溃时刻: 花了3个月做的技术规划,上线第一天就出现核心链路故障,半年的投入几乎…...

MFC 去掉CSV文件(指定文件路径)末尾的换行符

#include <fstream> #include <string>//去掉CSV文件&#xff08;指定文件路径&#xff09;末尾的换行符 BOOL RemoveTrailingNewlineFromCSV2(const CString& strFilePath) {if (strFilePath.IsEmpty())return FALSE;// 以二进制模式打开文件std::fstream fil…...

RMBase数据库数据整理

我下载的RMBase BED文件&#xff0c;打开第一行是这样的&#xff1a;chr1 14414 14415 m6A_site_1 0 - m6A 2 GSE102493 GSM2739535,GSM2991403 29507755 HeLa m6A-seq ENSG00000227232.5 ENST00000488147.1 WASH7P unprocessed_pseudogene exon-11 GGCACACCAATCAATAAAGAACTGAG…...

GraalVM Native Image内存优化实战手册(金融级低延迟场景验证版)

第一章&#xff1a;GraalVM Native Image内存优化实战手册&#xff08;金融级低延迟场景验证版&#xff09;在高频交易与实时风控等金融级低延迟系统中&#xff0c;GraalVM Native Image 的启动延迟与运行时内存开销直接影响端到端 P99 延迟稳定性。本章基于某头部券商订单网关…...

3步实现CATIA几何特征智能识别:工业软件二次开发提升设计效率指南

3步实现CATIA几何特征智能识别&#xff1a;工业软件二次开发提升设计效率指南 【免费下载链接】pycatia python module for CATIA V5 automation 项目地址: https://gitcode.com/gh_mirrors/py/pycatia 在现代CAD设计流程中&#xff0c;工程师经常需要处理大量重复的几何…...

别再死记硬背了!用PyTorch亲手画一画CNN的特征图,秒懂它在‘看’什么

用PyTorch可视化CNN特征图&#xff1a;揭开神经网络的神秘面纱 当你第一次听说卷积神经网络&#xff08;CNN&#xff09;能识别猫狗时&#xff0c;是否也好奇过它究竟"看到"了什么&#xff1f;那些抽象的数字矩阵背后&#xff0c;隐藏着怎样的视觉逻辑&#xff1f;今…...

ITK-SNAP医学图像分割架构深度解析与性能优化实战指南

ITK-SNAP医学图像分割架构深度解析与性能优化实战指南 【免费下载链接】itksnap ITK-SNAP medical image segmentation tool 项目地址: https://gitcode.com/gh_mirrors/it/itksnap ITK-SNAP作为一款专业的医学图像分割工具&#xff0c;其核心价值不仅在于直观的用户界面…...

别再被短读长困扰了!手把手教你用PacBio Sequel平台搞定10Kb+长读长测序

突破基因组拼接瓶颈&#xff1a;PacBio Sequel长读长测序实战指南 当你在深夜盯着电脑屏幕&#xff0c;面对那些无法闭合的基因组缺口时&#xff0c;是否曾想过——或许问题并不出在你的分析技巧&#xff0c;而是数据本身存在先天不足&#xff1f;短读长测序技术虽然成熟可靠&a…...

JS逆向实战:Hook技术对抗与绕过无限Debugger的防御策略

1. 无限Debugger的常见类型与原理剖析 第一次遇到无限Debugger时&#xff0c;我正试图抓取某电商网站的价格数据。刚打开开发者工具&#xff0c;页面就像卡死的音乐盒一样不断弹出调试窗口&#xff0c;鼠标根本来不及点"继续执行"。这种防御机制看似无解&#xff0c;…...

无人机送货时如何‘看’得更远?聊聊MPC里的预测时域K和采样时间dt怎么调

无人机送货时如何优化MPC的视野&#xff1a;预测时域K与采样时间dt的工程调参艺术 当无人机在复杂城市环境中执行送货任务时&#xff0c;控制器需要像老司机一样具备"预判能力"——不仅要处理当前的飞行状态&#xff0c;还要提前规划未来几秒甚至十几秒的轨迹。这正是…...

电力老师傅带你读懂IEC 60870-5-101规约:从帧格式到主站子站对话全解析

电力老师傅手把手教你玩转IEC 60870-5-101规约 记得刚入行那会儿&#xff0c;第一次看到IEC 60870-5-101规约文档&#xff0c;整个人都是懵的——满眼的十六进制代码、控制位定义、报文格式&#xff0c;活像一本天书。直到跟着师傅在变电站蹲了三个月&#xff0c;才慢慢摸清门道…...

RMBG-2.0效果对比:与传统工具PK,毛发玻璃杯处理更精准

RMBG-2.0效果对比&#xff1a;与传统工具PK&#xff0c;毛发玻璃杯处理更精准 1. 为什么传统抠图工具总让你抓狂&#xff1f; 想象一下这些场景&#xff1a; 你正在为电商产品图去除背景&#xff0c;但玻璃杯的透明部分总是被误判为背景拍摄的宠物照片需要抠图&#xff0c;但…...

在Replit上构建你的首个全栈应用:从零到部署的免费实践

1. 为什么选择Replit开发全栈应用&#xff1f; 第一次听说Replit时&#xff0c;我正为学生的课程设计发愁——他们需要完成一个包含前后端的全栈项目&#xff0c;但很多人的笔记本电脑跑不动开发环境。直到发现这个神奇的云端IDE&#xff0c;所有问题迎刃而解。Replit最吸引我的…...

51单片机型号数字暗藏玄机?STC89C51、C52、C54命名规则与存储空间全解析

51单片机型号密码&#xff1a;从STC89C52数字后缀破解存储空间玄机 第一次接触51单片机时&#xff0c;你是否也被各种型号后缀搞得一头雾水&#xff1f;STC89C51、C52、C54这些看似随机的数字组合&#xff0c;其实暗藏着一套精妙的行业密码。今天我们就来当一回"芯片侦探&…...