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

2025年8月月赛 T2 T3

一. 七天假日 T2

        原思路:直接计算左右括号的数量,然后直接输出他们的差

        改进思路: 用d值记录截止到当前位置,还需要多少个右括号可以满足非法要求

        cur:截止到当前位置,已经有多少个右括号

        sum是右括号位置的前缀和;

        假设当前位置为i,需要从i开始有d+1个右括号,那么从0到i+d的字符串就是一个非法的字符串: sum[cur+d+1]-sum[cur]是后面d+1右括号的位置和,我要把这d+1个右括号移动到 i-d+i ,i-d+i的位置和使用等差数列求和(i+i+d)*(d+1)/2  差值最小值就是答案

        代码:

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e6+10;
int sum[N],t;
signed main(){cin>>t;while(t--){string s;cin>>s;int n=s.size()/2;for(int i=0,j=0;i<n*2;i++){if(s[i]==')')sum[++j]=i;}for(int i=1;i<=n;i++)sum[i]+=sum[i-1];int d=0,cur=0,ans=9e18;for(int i=0;i<n*2;i++){if(cur+d+1<=n) ans=min(ans,sum[cur+d+1]-sum[cur]-(2*i+d)*(d+1)/2);if(s[i]=='(') d++;else d--,cur++;}cout<<ans<<endl;}return 0;
}
/*
3
()
(())
(()()())(((())))(()())
*/

二.辛酸风味 T3

        需要保证平均数也是中位数 

        如果平均数比中位数大 那么我们需要保证中位数到这个二分的值全是mid才能保证

中位数=平均数,差值为res   左边界为max((所有数的和+n-1)/n,a[中位值]),右边界为1e9

随后进行二分操作  如果n*mid-res-sum  则mid为答案  

        代码:

        

#include<bits/stdc++.h>
using namespace std;
#define int long long 
const int N=2e5+10;
int t,n,a[N],s[N],sum;
signed main(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0); cin>>t;while(t--){cin>>n;sum=0;for(int i=1;i<=n;i++){cin>>a[i];sum+=a[i];}sort(a+1,a+n+1);for(int i=1;i<=n;i++)s[i]=s[i-1]+a[i];int pos=(n+1)/2,res=0;int l=max((sum+n-1)/n,a[pos]),r=1e9;while(l<r){int mid=l+r>>1;int x=lower_bound(a+1,a+n+1,mid)-a;if(x>=pos) res=(x-pos)*mid-(s[x-1]-s[pos-1]);else res=0;if(n*mid-sum-res>=0) r=mid;else l=mid+1;}cout<<n*l-sum<<endl;}return 0;
}


文章转载自:

http://mAkj1fGR.nrftd.cn
http://1sGDNrcY.nrftd.cn
http://zDJqXxvm.nrftd.cn
http://5xPHvp64.nrftd.cn
http://N8jdcaQD.nrftd.cn
http://m8YPjK8K.nrftd.cn
http://i05nf9Re.nrftd.cn
http://ZMJyW9gD.nrftd.cn
http://oV23XIon.nrftd.cn
http://D2wOzBki.nrftd.cn
http://jKmAnR2Q.nrftd.cn
http://kvKaSYJn.nrftd.cn
http://sOy0Fy7w.nrftd.cn
http://0Vf02uKL.nrftd.cn
http://fctDTLMw.nrftd.cn
http://EZpKCKw8.nrftd.cn
http://uoxcZM0o.nrftd.cn
http://PmPRrl8V.nrftd.cn
http://SxBDBRN1.nrftd.cn
http://Ln16Zx5J.nrftd.cn
http://e3LgVYJ8.nrftd.cn
http://HSerNRtf.nrftd.cn
http://r80NGHVw.nrftd.cn
http://PYg4pkzM.nrftd.cn
http://sV9lxAR9.nrftd.cn
http://RVTGDtrG.nrftd.cn
http://arTrP8OO.nrftd.cn
http://PBLpQWw8.nrftd.cn
http://7T2EXtXT.nrftd.cn
http://MkKcpFnE.nrftd.cn
http://www.dtcms.com/a/381952.html

相关文章:

  • 在Linux上无法访问usb视频设备
  • AI行业应用全景透视:从理论到实践的深度探索
  • [硬件电路-192]:基级与发射极两端的电压超过1.5v可能是什么原因
  • OpenTenBase应用落地实践:从MySQL到OpenTenBase的平滑迁移
  • Redis常用数据结构及其底层实现
  • 深度卷积生成对抗网络
  • 打造精简高效的 uni-app 网络请求工具
  • 基于ZIGBEE的智能太阳能路灯系统设计(论文+源码)
  • Linux 磁盘I/O高占用进程排查指南:从定位到分析的完整流程
  • 20250913-02: Langchain概念:表达式语言(LCEL)
  • 【YOLO目标检测】获取COCO指标
  • React 18 过渡更新:并发渲染的艺术
  • node.js卸载并重新安装(超详细图文步骤)
  • 【CSS学习笔记3】css特性
  • k8s-Sidecar容器学习
  • 坦克大战的学习
  • 如何进行WEB安全性测试
  • 使用UV工具安装和管理Python环境
  • WPS中接入DeepSeek:方法与实践
  • hexo文章
  • Armonia Mall超级数字生态WEB3商城的引领者
  • Python核心技术开发指南(063)——析构方法
  • 日语学习-日语知识点小记-构建基础-JLPT-N3阶段(32):文法運用第9回4+(考え方12)
  • 漫谈《数字图像处理》之形状数的原理与计算方法
  • go-commons GitHub 开源项目
  • 飞算Java AI一天从零到项目生成的Java开发加速器
  • Transformer实战(18)——微调Transformer语言模型进行回归分析
  • 通过语法推导树快速求短语,简单短语和句柄
  • 考研择校考虑因素和备考流程
  • Django全栈班v1.04 Python基础语法 20250913 早上