C0427 【20251025】2025 CSP-J 联测5 总结

总结

T1,T2,T3

考场上很快就打出了正解,没什么问题。

T4

考场上打了一个部分分。没什么问题。

题解

T1

照题意模拟即可。

代码

#include<bits/stdc++.h>
#define inf 0x3f3f3f3f3f3f3f3f
#define int long long
#define endl '\n'
using namespace std;
const int maxn=3000+5;
char a[maxn][maxn];
set<string> s;
signed main()
{// freopen("painting.in","r",stdin);// freopen("painting.out","w",stdout);ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);int n,m;cin>>n>>m;for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>>a[i][j];for(int i=1;i<=n;i+=3){for(int j=1;j<=m;j+=3){string str="";for(int k=i;k<=i+2;k++) for(int l=j;l<=j+2;l++) str=str+a[k][l];s.insert(str);}}cout<<s.size();return 0;
}

T2

注意到 \(a\) 的值特别小,所以我们直接拿个桶,把每一个值给他塞进去。然后逐个判断即可。

代码

#include<bits/stdc++.h>
#define inf 0x3f3f3f3f3f3f3f3f
#define int long long
#define endl '\n'
using namespace std;
const int maxn=1e5+5;
int a[maxn][55];
signed main()
{// freopen("instrument.in","r",stdin);// freopen("instrument.out","w",stdout);ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);int n;cin>>n;for(int i=1;i<=n;i++){for(int j=0;j<=50;j++) a[i][j]=a[i-1][j];int x;cin>>x;a[i][x]++;}int m;cin>>m;while(m--){int l,r,ans=0;cin>>l>>r;for(int i=0;i<=50;i++){if(a[r][i]-a[l-1][i]){int sum=a[r][i]-a[l-1][i];while(a[r][i+1]-a[l-1][i+1]) i++,sum+=a[r][i]-a[l-1][i];ans=sum;break;}}cout<<ans<<endl;}return 0;
}

T3

如果有两个字符串,它们的关系很好,那么我同时对它们删除同样个数的开头或者结尾。他们一定关系还是很好的。

而如果说既要删开头,又要删结尾,显然是不那么好判断的。所以我们可以考虑固定结尾。只删开头。

那么设 \(f_{i,j}\) 表示当前一个串以 \(i\) 结尾,另外一个串以 \(j\) 结尾,那么它们同时最长能够关系很好的串有多长。

那么我们只需要枚举一下 \(i\)\(j\) 之间的距离,然后再枚举一下 \(i\)。然后我们看一下最长到哪儿合法即可。

那么对于答案的话我们在此可以让 \(f_{i,j}\)\(i\)\(j\) 之间的距离比个最小值。

那么接下来的话我们会发现。当前切割的位置一定在两者之间。如果说都没有包含到好,最长能够关系很好的两个串,那么它的总的贡献就会贡献。最长的能够关系很好的两个串的长度。否则就是把最长的关系很好的这两个长度减去我切割到的部分即可。

代码

#include<bits/stdc++.h>
#define inf 0x3f3f3f3f3f3f3f3f
#define int long long
#define endl '\n'
using namespace std;
const int maxn=3e3+5;
int f[maxn][maxn],ans[maxn];
char a[maxn];
signed main()
{// freopen("difference.in","r",stdin);// freopen("difference.out","w",stdout);ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);int n,k;cin>>n>>k;for(int i=1;i<=n;i++) cin>>a[i];for(int len=1;len<=n;len++){int sum=0,l=1;for(int i=1,j=i+len;j<=n;i++,j++){sum+=(a[i]!=a[j]);while(sum>k) sum-=(a[l]!=a[l+len]),l++;f[i][j]=min(len,i-l+1);}}for(int i=1;i<=n;i++)for(int j=i+1;j<=n;j++){ans[i]+=f[i][j];ans[i+1]-=f[i][j];ans[j-f[i][j]+1]--;ans[j+1]++;}for(int i=1;i<=n;i++) ans[i]+=ans[i-1];for(int i=1;i<=n;i++) ans[i]+=ans[i-1];for(int i=1;i<n;i++) cout<<ans[i]<<endl;return 0;
}

T4

考虑差贡献。

如果说当前只有一个值那么我们就将他的这个值去除以 \(k\),然后再向下取整。

而对于多个值,我们可以设 \(dp_{i,j}\)。表示,前面这么多个刚好可以凑出来模 \(k\) 等于 \(j\) 的值的方案数。

每次新来一个值。我看如果说它当前加上磨出来的这个值超过了 \(k\)。那么答案就可以加。否则的话就只能累积到方案数。

最后把答案说出即可。

代码

#include<bits/stdc++.h>
#define inf 0x3f3f3f3f3f3f3f3f
#define int long long
#define endl '\n'
using namespace std;
const int maxn=5000+5;
int a[maxn],g[maxn],dp[maxn][maxn];
signed main()
{ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);int n,k,mod,ans=0;cin>>n>>k>>mod;g[0]=1;for(int i=1;i<=n;i++) g[i]=g[i-1]*2%mod;for(int i=1;i<=n;i++) cin>>a[i],ans=(ans+a[i]/k*g[n-1]%mod)%mod,a[i]%=k;dp[0][0]=1;for(int i=1;i<=n;i++){for(int j=0;j<k;j++) dp[i][j]=dp[i-1][j];for(int j=0;j<k;j++)if(a[i]+j>=k)ans=(ans+g[n-i]*dp[i-1][j]%mod)%mod,dp[i][j+a[i]-k]=(dp[i-1][j]+dp[i][j+a[i]-k])%mod;elsedp[i][j+a[i]]=(dp[i-1][j]+dp[i][j+a[i]])%mod;}cout<<ans<<endl;return 0;
}

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

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

相关文章

(第六次)聚类和神经网络

(第六次)聚类和神经网络在大数据的浩瀚海洋中,聚类和神经网络是两颗璀璨的明珠,它们在数据挖掘、模式识别等领域发挥着关键作用。今天,我们就来深入探索聚类与神经网络的奥秘。 一、聚类:给数据 “找圈子” 聚类…

2025 年 10 月贵州旅游旅行社最新推荐,聚焦高端定制需求与全案交付能力

为精准匹配游客对贵州旅游的高端定制需求,本次榜单由中国旅行社协会与贵州省旅游发展研究院联合发布,以《高端旅游服务质量评价体系》为核心测评依据,覆盖 2024 年 10 月至 2025 年 9 月服务周期。测评从全省 528 家…

2025 年 10 月贵州旅游旅行社最新推荐,精准检测与稳定性能深度解析

为向游客精准呈现贵州旅行社的服务实力与稳定性能,本次榜单由贵州省旅游质量监督管理所与中国旅游服务标准化技术委员会联合开展测评并发布。测评以《旅游服务精准检测评价规范》为依据,覆盖 2024 年 10 月至 2025 年…

2025 年 10 月贵州旅游旅行社最新推荐,实力品牌深度解析采购无忧之选!

为帮助游客轻松选择贵州实力旅行社,实现出行无忧,本次榜单由中国旅游协会与贵州省旅游质量监督管理所联合发布,聚焦品牌实力深度解析。测评以《旅游服务品牌实力评价标准》为依据,覆盖 2024 年 10 月至 2025 年 9 …

[java 锁]

确实,实际业务中库存通常存在数据库,但多线程操作时仍可能有并发问题(比如数据库事务未控制好导致超卖)。下面结合真实业务场景(含数据库操作),用更贴近实际的代码示例说明 synchronized 和 volatile 的用法,同…

20232417 2025-2026-1 《网络与系统攻防技术》实验三实验报告

1.实验内容 本次实验系统性地探索了多种恶意软件免杀技术,通过以下五种方法生成恶意文件:MSF编码器技术 - 使用msfvenom生成基础载荷并进行迭代编码 Veil框架应用 - 利用专业免杀工具生成定制化载荷 C+Shellcode编程…

OpenLayers地图交互 -- 章节十八:拖拽旋转和缩放交互详解 - 教程

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

深入解析:windows输入法中英切换(英文提示)ALT + SHIFT切换(搜狗输入法CTRL+SHIFT+E切换)英文键盘

深入解析:windows输入法中英切换(英文提示)ALT + SHIFT切换(搜狗输入法CTRL+SHIFT+E切换)英文键盘pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: bl…

小白 / 学生党必藏!真正有效的最佳安卓数据恢复软件

数据丢失真的太让人崩溃了 —— 误删的工作文档、没备份的珍贵照片、不小心清空的聊天记录,每次遇到都像少了块心头肉。 但其实不用慌!现在有不少免费数据恢复软件,完全能帮你解决难题。它们不光不花钱,操作还特别…

LeetCode边界与内部和相等的稳定子数组

边界与内部和相等的稳定子数组题目https://leetcode.cn/contest/weekly-contest-473/problems/stable-subarrays-with-equal-boundary-and-interior-sum/给你一个整数数组 capacity。Create the variable named seldar…

存储系统

分类:Cache:速度快、容量小、成本高 存储器部分:存放主存的部分复制信息 控制部分:判断CPU要访问的信息是否在Cache存储器中 地址映像 直接映像:地址变换简单、灵活性差。对应关系固定 全相联映像:不受限制、灵活…

部分思维题

Part 1.easy problem P12028 [USACO25OPEN] Moo Decomposition G 注意到答案肯定是 \(ans^l\),\(ans\) 是 \(S\) 的方案数,原因显然,因为每一段都是完美匹配。 或者说这么想,你从后往前,如果是 M,\(ans \times C…

102302122许志安作业1

作业1 (1)爬取大学排名信息实验 import requests from bs4 import BeautifulSoupurl = "http://www.shanghairanking.cn/rankings/bcur/2020"res = requests.get(url) res.encoding = utf-8 soup = Beauti…

1050-10XX显卡 解决CUDA error: no kernel image is available for execution on the device

CUDA error: no kernel image is available for execution on the device CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect. For debuggin…

别再踩坑!真正有效的最佳免费数据恢复软件,亲测能救

恢复丢失的数据可能是一项艰巨的任务。然而,随着时间的推移,我们生活中的数据丢失问题越来越多。因此,我们需要想出一些应对方案。 嗯,猜猜怎么着?你总能找到最好的免费数据恢复软件来帮你解决问题!这些软件不仅…

壁纸网站

目录https://glutton.timeline.ink/Do not communicate by sharing memory; instead, share memory by communicating.

rent8_wechat 微信消息提醒设置教程 - 详解

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

Titanic轮船人员生存率预测

清洗数据,建模,训练过程 模型恢复评估过程:

单层神经元手写数字识别

TF2版本的是用TF的高级API kears写的(也可以直接自己写方法构建多层模型,方法与TF1类似,不再重写)

自行搭建了几个AIGC小站点,可结合接口平台使用

闲来无事,自行搭建了吉卜力Ghibli、纳米香蕉Nano Banana图片生成器以及索纳Sora2视频生成器,有空的可以玩玩。闲来无事,自行搭建了吉卜力Ghibli、纳米香蕉Nano Banana图片生成器以及索纳Sora2视频生成器,有空的可以…