【比赛记录】2025CSP-S模拟赛59

news/2025/10/7 19:39:03/文章来源:https://www.cnblogs.com/zhangxyhp/p/19128795
A B C D Sum Rank
50 32 50 0 132 15/24

A. 数列变换

\(f(j)=\left|\sum_{i=1}^{n}(-1)^{i-1} a_{i}-(-1)^{i-1} b_{i+j}\right|=\left|\sum_{i=1}^{n}(-1)^{i-1} a_{i}+\sum_{i=1}^{n}(-1)^{i} b_{i+j}\right|\),前一项和 \(j\) 没关系,可以 \(O(1)\) 维护变化,后一项直接预处理出来即可。然后二分一下就好了。

Code
#include<bits/stdc++.h>
#define int long long
#define il inline
#define lwrb lower_bound
using namespace std;
namespace asbt{
const int maxn=5e5+5;
int n,m,q,a[maxn],b[maxn];
set<int> st;
il void calc(int x){auto it=st.lwrb(x);if(it==st.begin()){cout<<*it-x<<'\n';}else if(it==st.end()){cout<<x-*prev(it)<<'\n';}else{cout<<min(*it-x,x-*prev(it))<<'\n';}
}
int main(){ios::sync_with_stdio(0),cin.tie(0);cin>>n>>m>>q;for(int i=1;i<=n;i++){cin>>a[i];}for(int i=1;i<=m;i++){cin>>b[i];b[i]=b[i-1]+(i&1?-b[i]:b[i]);}for(int i=0;i<=m-n;i++){st.insert(i&1?b[i]-b[i+n]:b[i+n]-b[i]);}int ans=0;for(int i=1;i<=n;i++){ans+=i&1?a[i]:-a[i];}calc(-ans);while(q--){int l,r,x;cin>>l>>r>>x;if((r-l)%2==0){ans+=l&1?x:-x;}calc(-ans);}return 0;
}
}
signed main(){return asbt::main();}

B. 排列计数

原原原

首先可以转化成将一对带标号小球排列且满足相邻小球颜色不同的方案数。

记颜色数为 \(m\),第 \(i\) 中颜色有 \(s_i\) 个,连成了 \(b_i\) 块。记 \(B=\sum b_i\)。此时的方案数为 \(\frac{B!}{\prod_{i=1}^{m}b_i!}\prod_{i=1}^{m}s_i!{s_i-1\choose b_i-1}\)

\(f_{i,j}\) 为考虑了前 \(i\) 个颜色时 \(\sum b=j\)\(\prod_{k=1}^{i}{s_k-1\choose b_k-1}\frac{1}{b_k!}\) 的值,容易 DP 求出。于是根据容斥,答案为:

\[\prod_{i=1}^{m}s_i!\sum_{j=m}^{n}j!f_{m,j}(-1)^{n-j} \]

Code
#include<bits/stdc++.h>
#define ll long long
#define il inline
#define lwrb lower_bound
using namespace std;
namespace asbt{
const int mod=1e9+7;
int T,n,a[605],f[605][605],s[605];
int fac[605],inv[605],lsh[605];
il int qpow(int x,int y=mod-2){int res=1;while(y){if(y&1){res=res*1ll*x%mod;}y>>=1,x=x*1ll*x%mod;}return res;
}
il void init(int n=600){fac[0]=1;for(int i=1;i<=n;i++){fac[i]=fac[i-1]*1ll*i%mod;}inv[n]=qpow(fac[n]);for(int i=n;i;i--){inv[i-1]=inv[i]*1ll*i%mod;}
}
il int C(int x,int y){if(x<y||y<0){return 0;}return fac[x]*1ll*inv[y]%mod*inv[x-y]%mod;
}
int main(){ios::sync_with_stdio(0),cin.tie(0);cin>>T;init();while(T--){cin>>n;int tot=0;for(int i=1;i<=n;i++){cin>>a[i];int x=a[i];a[i]=1;for(int j=2;j<=x/j;j++){if(x%j==0){int num=0;while(x%j==0){x/=j,num++;}if(num&1){a[i]*=j;}}}if(x>1){a[i]*=x;}lsh[++tot]=a[i];
//			cout<<a[i]<<' ';}
//		cout<<'\n';sort(lsh+1,lsh+tot+1);tot=unique(lsh+1,lsh+tot+1)-lsh-1;for(int i=1;i<=tot;i++){s[i]=0;}for(int i=1;i<=n;i++){a[i]=lwrb(lsh+1,lsh+tot+1,a[i])-lsh;s[a[i]]++;}for(int i=0;i<=tot;i++){for(int j=0;j<=n;j++){f[i][j]=0;}}f[0][0]=1;for(int i=1,ss=0;i<=tot;i++){ss+=s[i];for(int j=1;j<=ss;j++){for(int k=1;k<=min(s[i],j);k++){f[i][j]=(f[i-1][j-k]*1ll*C(s[i]-1,k-1)%mod*inv[k]+f[i][j])%mod;}}}int ans=0;for(int i=tot;i<=n;i++){if((n-i)&1){ans=(ans-f[tot][i]*1ll*fac[i]%mod+mod)%mod;}else{ans=(f[tot][i]*1ll*fac[i]+ans)%mod;}}for(int i=1;i<=tot;i++){ans=ans*1ll*fac[s[i]]%mod;}cout<<ans<<'\n';}return 0;
}
}
int main(){return asbt::main();}

C. 子串调整

D. 最小生成树

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

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

相关文章

使用 C 语言实现英文数字验证码识别系统

一、引言 验证码(CAPTCHA, Completely Automated Public Turing test to tell Computers and Humans Apart)是一种用于区分人类和机器行为的安全机制。 它常用于登录、注册、表单验证等场景,验证码图片通常包含英文…

APlayer的配置方法和相关资料整理(已完成)

APlayer的配置方法和相关资料整理(已完成)关于之前折腾小智AI和MCP的时候搜索了很多关于酷我音乐api接口的相关资料 结果没过多长时间就忘了(5个月前吧)后面找时间整理回来吧 所以我才说啊,感觉自己学东西很快,但…

详细介绍:目标检测任务的评估指标mAP50和mAP50-95

详细介绍:目标检测任务的评估指标mAP50和mAP50-95pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas"…

用 Haskell 实现英文数字验证码识别

一、引言 验证码(CAPTCHA)是网站安全的重要组成部分,用于区分人类与自动化程序。 尽管 Python、Go、C# 等语言常被用于 OCR 任务,但本文将尝试使用 Haskell——一门函数式编程语言——来完成英文数字验证码的识别。…

上海交通大学网站建设小程序制作需求文档

一、 题目 卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里&#xff0c;情况稍微有些复杂。 当我们验证卡拉兹猜想的时候&#xff0c;为了避免重复计算&#xff0c;可以记录下递推过程中遇到的每一个数。例如对 n3 进行验证的时候&#xff0c;我们需要计算 3、5、8、…

深入解析:Day43 Python打卡训练营

深入解析:Day43 Python打卡训练营pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&…

C#中数据绑定的简单例子 - 详解

C#中数据绑定的简单例子 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&quo…

Spring Boot整合Druid与Dynamic-Datasource多数据源安装:从错误到完美解决

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

用 Perl 实现验证码图像识别

一、引言 验证码(CAPTCHA)是一种区分人类与机器的安全机制,常用于登录、注册等场景中。随着 OCR(光学字符识别)技术的发展,利用编程语言自动识别验证码变得可行。本文将使用 Perl 结合 Tesseract OCR 实现英文数…

网站域名包括网站建设详细方案

基于LabVIEW的CAN通信系统开发案例 介绍了基于LabVIEW开发的CAN通信系统&#xff0c;该系统主要用于汽车行业的数据监控与分析。通过对CAN通信协议的有效应用&#xff0c;实现了车辆控制系统的高效信息交换与实时数据处理&#xff0c;从而提升了车辆性能的检测与优化能力。 项…

实用指南:【结构型模式】代理模式

实用指南:【结构型模式】代理模式pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&…

中小型企业网站优化推广微信朋友圈做网站推广赚钱吗

cocos2d-x自带了不少示例&#xff0c;以及几个比较简单的游戏&#xff0c;不过这些游戏都是用javascript binding(SpiderMonkey)做的&#xff0c;所以我猜测javascript binding可能是cocos2d-x开发游戏的主流模式&#xff0c;优点是&#xff1a; 游戏逻辑用javascript&#xff…

深入解析:Kotlin 中companion object {} 什么时候触发

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

libopenssl-1_0_0-devel-1.0.2p RPM 包安装教程(openSUSE/SLES x86_64)​

libopenssl-1_0_0-devel-1.0.2p RPM 包安装教程(openSUSE/SLES x86_64)​​一、这个包是干啥用的? 它是 ​OpenSSL 的开发文件包,不是 OpenSSL 本身运行时库。 libopenssl-1_0_0-devel-1.0.2p RPM安装包下载:http…

网站收录提交wordpress文章导入

从远端仓库克隆到本地 前提:本地要安装git,并且登录了账户 1.在要放这个远程仓库的路径下,打git 然后 git clone https://.. 如果要登录验证,那就验证下 克隆完后,cd 到克隆的路径, 可以用 git branch -a //查看分支名 git status //查看代码状态 删除…

云数据仓库十年架构演进与技术突破

本文深入解析某云数据仓库服务十年来的技术演进历程,涵盖架构设计、存储计算分离、自动化优化、多服务集成等核心技术突破,展示了从传统数据仓库到现代云原生架构的完整转型过程。云数据仓库的诞生与演进 近十年前,…

心理健康教育网站建设新十条优化措施

150. 逆波兰表达式求值 题目-中等难度示例1. 字典存储function2. if-else 题目-中等难度 给你一个字符串数组 tokens &#xff0c;表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意&#xff1a; 有效的算符为 ‘’、‘-’…

网站倒计时代码网页制作教程案例

一、总体概述 TypeScript 是 JavaScript 的超集&#xff0c;主要通过静态类型检查和丰富的类型系统来提高代码的健壮性和可维护性。它涵盖了从基础数据类型到高级类型、从函数与对象的类型定义到类、接口、泛型、模块化及装饰器等众多知识点。掌握这些内容有助于编写更清晰、结…