CSP-S复赛真题解析

2023年CSP-S复赛真题

密码锁

题意:

分析:

代码:

正解代码
#include<bits/stdc++.h>using namespace std;int n;
int va[10][10];
int vb[10];
int sum;int check()
{for(int i=1;i<=n;i++){vector<int > v;for(int j=1;j<=5;j++){if(va[i][j]!=vb[j]) v.push_back(j);}if(v.size()==0) return false;if(v.size()>=3) return false;if(v.size()==1) continue;if(v.size()==2){if(v[1]-v[0]>=2) return false;int sum1 = va[i][v[0]]-vb[v[0]];int sum2 = va[i][v[1]]-vb[v[1]];int ned1 = (sum1%10+10)%10;int ned2 = (sum2%10+10)%10;if(ned1!=ned2) return false;}}return true;
}void dfs(int now)
{if(now>5){if(check()) sum++;return ;	}for(int i=0;i<=9;i++){vb[now] = i;dfs(now+1);}
}int main()
{//freopen()//freopen()cin>>n;for(int i=1;i<=n;i++){for(int j=1;j<=5;j++){cin>>va[i][j];}}dfs(1);cout<<sum;
}

消消乐

题意:

分析:

代码:

暴力解
#include<bits/stdc++.h>using namespace std;int n;
string s;int solve(int l,int r)
{stack<int > st;for(int i=l;i<=r;i++){if(st.size()){if(s[i]==st.top()) st.pop();else st.push(s[i]);}else st.push(s[i]);}return (st.size()==0);
}int main()
{cin>>n>>s;int sum = 0;for(int i=0;i<s.size();i++){for(int j=i;j<s.size();j++){sum += solve(i,j);}}cout<<sum;
}

结构体

题意:

分析:

代码:

种树

题意:

分析:

代码:

2022年CSP-S复赛真题

假期计划

题意:

分析:

代码:

暴力解
#include<bits/stdc++.h>
#define PII pair<int,int>
#define fi first
#define se second
#define pb push_back 
#define int long longusing namespace std;const int N = 2510;int n,m,k;
int va[N];
int dist[N][N];vector<int > e[N];void bfs(int A)
{for(int i=1;i<=n;i++) dist[A][i] = 1e18;queue<int > q;q.push(A);dist[A][A] = -1;while(q.size()){int now = q.front();q.pop();if(dist[A][now]>=k) continue;for(auto spot:e[now]){if(dist[A][spot]>dist[A][now]+1){dist[A][spot] = dist[A][now]+1;q.push(spot);}}}
}signed main()
{cin>>n>>m>>k;for(int i=2;i<=n;i++) cin>>va[i];while(m--){int a,b;cin>>a>>b;e[a].pb(b);e[b].pb(a);}for(int i=1;i<=n;i++) bfs(i);int maxn = 0;for(int A=1;A<=n;A++){for(int B=1;B<=n;B++){for(int C=1;C<=n;C++){for(int D=1;D<=n;D++){set<int > s;s.insert(A);s.insert(B);s.insert(C);s.insert(D);if(s.size()!=4||*s.begin()==1) continue;if(dist[1][A]==1e18||dist[A][B]==1e18||dist[B][C]==1e18||dist[C][D]==1e18||dist[D][1]==1e18) continue;maxn = max(maxn,va[A]+va[B]+va[C]+va[D]);}}}}cout<<maxn;return 0;
}正解
#include<bits/stdc++.h>
#define PII pair<int,int>
#define fi first
#define se second
#define int long long
#define IOS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);using namespace std;const int N = 2510;int n,m,k;
int va[N];
int vis[N][N];
int dist[N][N];
int maxn;vector<int> e[N];
vector<int> v[N];
priority_queue<PII > q[N];void bfs(int A)
{for(int i=1;i<=n;i++) dist[A][i] = 1e18;queue<int > q;q.push(A);vis[A][A] = 1;dist[A][A] = -1;while(q.size()){auto now = q.front();q.pop();if(dist[A][now]>=k) continue;for(auto spot:e[now]){if(vis[A][spot]==0){vis[A][spot] = 1;dist[A][spot] = dist[A][now]+1;q.push(spot);}}}	
}void get(int B,int C)
{for(auto A:v[B]){for(auto D:v[C]){if(A==B||A==C||A==D||B==C||B==D||C==D) continue;maxn = max(maxn,va[A]+va[B]+va[C]+va[D]);}}
}signed main()
{IOS;cin>>n>>m>>k;for(int i=2;i<=n;i++) cin>>va[i];for(int i=1;i<=m;i++){int a,b;cin>>a>>b;e[a].push_back(b);e[b].push_back(a);}for(int i=1;i<=n;i++) bfs(i);for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(i==1||j==1||i==j) continue;if(dist[i][j]!=1e18&&dist[1][j]!=1e18){q[i].push({va[j],j});}}}for(int i=1;i<=n;i++){while(q[i].size()&&v[i].size()<=3){v[i].push_back(q[i].top().se);q[i].pop();}}for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(dist[i][j]!=1e18) get(i,j);}}cout<<maxn<<"\n";return 0;
}

策略游戏

题意:

分析:

代码:

暴力解
#include<bits/stdc++.h>
#define int long longusing namespace std;const int N = 5e5+10;int n,m,q;
int va[N];
int vb[N];signed main()
{cin>>n>>m>>q;for(int i=1;i<=n;i++) cin>>va[i];for(int i=1;i<=m;i++) cin>>vb[i];while(q--){int l1,r1,l2,r2;cin>>l1>>r1>>l2>>r2;int maxn = -1e18;for(int i=l1;i<=r1;i++){int minn = 1e18;for(int j=l2;j<=r2;j++){minn = min(minn,va[i]*vb[j]);}maxn = max(maxn,minn);}cout<<maxn<<"\n";}return 0;
}

星战

题意:

分析:

代码:

数据传输

题意:

分析:

代码:

2021年CSP-S复赛真题

廊桥分配

题意:

分析:

代码:

暴力解
#include<bits/stdc++.h>
#define PII pair<int,int>
#define fi first
#define se second
#define int long longusing namespace std;const int N = 1e5+10;int n,m1,m2;
PII va[N],vb[N];
priority_queue<int,vector<int>,greater<int>> q1,q2;int solve(int sum1,int sum2)
{while(q1.size()) q1.pop();while(q2.size()) q2.pop();int ans = 0;for(int i=1;i<=m1;i++){while(q1.size()&&q1.top()<va[i].fi) q1.pop();if(q1.size()<sum1){ans++;q1.push(va[i].se);}}for(int i=1;i<=m2;i++){while(q2.size()&&q2.top()<vb[i].fi) q2.pop();if(q2.size()<sum2){ans++;q2.push(vb[i].se);}}return ans;
}signed main()
{cin>>n>>m1>>m2;for(int i=1;i<=m1;i++) cin>>va[i].fi>>va[i].se;for(int i=1;i<=m2;i++) cin>>vb[i].fi>>vb[i].se;sort(va+1,va+1+m1);sort(vb+1,vb+1+m2);int maxn = 0;for(int i=0;i<=n;i++){if(i*(m1+m2)>1e7) break;maxn = max(maxn,solve(i,n-i));}cout<<maxn;return 0;
}正解
#include<bits/stdc++.h>
#define PII pair<int,int>
#define fi first
#define se second
#define int long longusing namespace std;const int N = 1e6+10;int n,m1,m2;
PII va[N],vb[N];
int cnt1[N],cnt2[N];priority_queue<PII,vector<PII>,greater<PII>> q1,q2;
priority_queue<int,vector<int>,greater<int>> k1,k2;void solve1()
{for(int i=1;i<=n;i++) k1.push(i);for(int i=1;i<=m1;i++){while(q1.size()&&va[i].fi>=q1.top().fi){k1.push(q1.top().se);q1.pop();}if(k1.size()){cnt1[k1.top()]++;q1.push({va[i].se,k1.top()});k1.pop();}}for(int i=1;i<=n;i++) cnt1[i] = cnt1[i]+cnt1[i-1];
}void solve2()
{for(int i=1;i<=n;i++) k2.push(i);for(int i=1;i<=m2;i++){while(q2.size()&&vb[i].fi>=q2.top().fi){k2.push(q2.top().se);q2.pop();}if(k2.size()){cnt2[k2.top()]++;q2.push({vb[i].se,k2.top()});k2.pop();}}for(int i=1;i<=n;i++) cnt2[i] = cnt2[i]+cnt2[i-1];
}signed main()
{cin>>n>>m1>>m2;for(int i=1;i<=m1;i++) cin>>va[i].fi>>va[i].se;for(int i=1;i<=m2;i++) cin>>vb[i].fi>>vb[i].se;sort(va+1,va+1+m1);sort(vb+1,vb+1+m2);solve1();solve2();int anw = 0;for(int i=0;i<=n;i++) anw = max(anw,cnt1[i]+cnt2[n-i]);cout<<anw;return 0;
}

括号序列

题意:

分析:

代码:

回文

题意:

分析:

代码:

交通规划

题意:

分析:

代码:

2020年CSP-S复赛真题

儒略日

题意:

分析:

代码:

动物园

题意:

分析:

代码:

正解
#include<bits/stdc++.h>
#define PII pair<int,int>
#define fi first
#define se second
#define int unsigned long longusing namespace std;const int N = 1e6+10;int n,m,c,k;
int va[N];
int lim[N];
int vis[N];signed main()
{cin>>n>>m>>c>>k;for(int i=1;i<=n;i++) cin>>va[i];while(m--){int a,b;cin>>a>>b;lim[a] = b;}for(int j=0;j<=k-1;j++){if(lim[j]==0) vis[j] = 1;for(int i=1;i<=n;i++){if((va[i]>>j)&1) vis[j] = 1;}}int sum = 0;for(int j=0;j<=k-1;j++) sum += (vis[j]==1);if(sum==64&&n==0) cout<<"18446744073709551616";else cout<<(1ull<<(sum-1))-n+(1ull<<(sum-1));return 0;
}

函数调用

题意:

分析:

代码:

暴力解
#include<bits/stdc++.h>
#define int long longusing namespace std;const int N = 5e5+10;
const int mod = 998244353;int n,m,q;
int va[N];
vector<int > opt[N];void solve(int id)
{if(opt[id][0]==1){int a = opt[id][1],b = opt[id][2];va[a] = (va[a]+b)%mod;}if(opt[id][0]==2){int x = opt[id][1];for(int i=1;i<=n;i++) va[i] = va[i]*x%mod;}if(opt[id][0]==3){for(int i=1;i<opt[id].size();i++){int x = opt[id][i];solve(x);}}
}signed main()
{cin>>n;for(int i=1;i<=n;i++) cin>>va[i];cin>>m;for(int id=1;id<=m;id++){int op;cin>>op;opt[id].push_back(op);if(op==1){int a,b;cin>>a>>b;opt[id].push_back(a);opt[id].push_back(b);}if(op==2){int x;cin>>x;opt[id].push_back(x);}if(op==3){int k;cin>>k;for(int i=1;i<=k;i++){int x;cin>>x;opt[id].push_back(x);}}}cin>>q;for(int i=1;i<=q;i++){int x;cin>>x;solve(x);}for(int i=1;i<=n;i++) cout<<va[i]<<" ";return 0;
}

贪吃蛇

题意:

分析:

代码:

2019年CSP-S复赛真题

格雷码
题意:

分析:

代码:

暴力解
#include<bits/stdc++.h>using namespace std;vector<string > v;
int main()
{int n,k;cin>>n>>k;v.push_back("0");v.push_back("1");for(int i=1;i<=n-1;i++){vector<string > vt;for(int i=0;i<v.size();i++){vt.push_back("0"+v[i]);}for(int i=v.size()-1;i>=0;i--){vt.push_back("1"+v[i]);}v = vt;}cout<<v[k];
}
正解
#include<bits/stdc++.h>
#define int unsigned long longusing namespace std;signed main()
{int n,k;cin>>n>>k;__int128 sum = (__int128)1<<n;int pre = -1;while(sum!=1){if(pre==-1){if(k<sum/2){cout<<0;pre = -1;}else{cout<<1;k -= sum/2;pre = 1;}}else{if(k<sum/2){cout<<1;pre = -1;}else{cout<<0;k -= sum/2;pre = 1;}}sum /= 2;}return 0;
}

括号树

题意:

分析:

代码:

暴力解
#include<bits/stdc++.h>using namespace std;const int N = 1e6+10;int n;
char va[N];
int sum[N];vector<int > e[N];int check(string s)
{stack<char > st;for(int i=0;i<s.size();i++){if(s[i]=='(') st.push(s[i]);else{if(st.size()==0) return 0;if(st.top()==')') return 0;st.pop();}}if(st.size()==0) return 1;return 0;
}int get(string s)
{int res = 0;for(int l=0;l<s.size();l++){for(int r=l;r<s.size();r++){string t;for(int i=l;i<=r;i++) t += s[i];res += check(t);}}return res;
}void dfs(int now,string now_s)
{now_s += va[now];sum[now] = get(now_s);for(auto spot:e[now]){dfs(spot,now_s);}
}int main()
{cin>>n;for(int i=1;i<=n;i++) cin>>va[i];for(int i=2;i<=n;i++){int x;cin>>x;e[x].push_back(i);}dfs(1,"");int anw = 0;for(int i=1;i<=n;i++) anw ^= i*sum[i];cout<<anw;
}

树上的数

题意:

分析:

代码:

Emiya 家今天的饭

题意:

分析:

代码:

划分

题意:

分析:

代码:

树的重心

题意:

分析:

代码:

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

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

相关文章

最强AI绘画大模型Flux可以在SDWebUI 上使用了!超便捷的Flux模型使用教程!AI绘画零基础入门到实战教程

大家好&#xff0c;我是画画的小强 目前最强的AI绘画大模型Flux.1 横空出世有段时间了&#xff0c;模型效果也得到了广泛的认可&#xff0c;但是 Stable Diffusion WebUI 官方迟迟没有跟进&#xff0c;据说是因为要修改很多底层的处理机制&#xff0c;加之ComfyUI如火如荼&…

Nginx的基础讲解之重写conf文件

一、Nginx 1、什么是nginx&#xff1f; Nginx&#xff08;engine x&#xff09;是一个高性能的HTTP和反向代理web服务器&#xff0c;同时也提供了IMAP/POP3/SMTP服务。 2、用于什么场景 Nginx适用于各种规模的网站和应用程序&#xff0c;特别是需要高并发处理和负载均衡的场…

计算机组成原理之浮点数的表示和运算

浮点数的表示 浮点数的表示通常遵循类似科学计数法的规则&#xff0c;可以表示为N M r^E&#xff0c;其中&#xff1a; 1、N是浮点数。 2、表示符号位&#xff0c;用来表示浮点数的正负。 3、M是尾数&#xff08;有效数字&#xff09;&#xff0c;是一个纯小数&#xff0c;其…

【React】事件机制

事件机制 react 基于浏览器的事件机制自身实现了一套事件机制&#xff0c;称为合成事件。比如&#xff1a;onclick -> onClick 获取原生事件&#xff1a;e.nativeEvent onClick 并不会将事件代理函数绑定到真实的 DOM节点上&#xff0c;而是将所有的事件绑定到结构的最外层…

Pikachu-目录遍历

目录遍历&#xff0c;跟不安全文件上传下载有差不多&#xff1b; 访问 jarheads.php 、truman.php 都是通过 get 请求&#xff0c;往title 参数传参&#xff1b; 在后台&#xff0c;可以看到 jarheads.php 、truman.php所在目录&#xff1a; /var/www/html/vul/dir/soup 图片…

master节点k8s部署]33.ceph分布式存储(四)

总结ceph分布式存储&#xff08;三&#xff09;中提到的三种方法&#xff1a; 1.创建rbda&#xff0c;并且在创建pv的时候配置该rbda,以下代码仅展示关键信息。 [rootxianchaomaster1 ~]# cat pv.yaml apiVersion: v1 kind: PersistentVolume metadata: name: ceph-pv ...…

【每日一题 | 24.10.7】Fizz Buzz 经典问题

1. 题目2. 解题思路3. 代码实现&#xff08;AC_Code&#xff09; 个人主页&#xff1a;C_GUIQU 归属专栏&#xff1a;每日一题 1. 题目 Fizz Buzz 经典问题 2. 解题思路 【法1】逻辑硬解&#xff1a;按照题目逻辑分四种情况&#xff0c;用if else 判断即可。 【法2】switc…

Win10鼠标总是频繁自动失去焦点-非常有效-重启之后立竿见影

针对Win10鼠标频繁自动失去焦点的问题&#xff0c;可以尝试以下解决方案&#xff1a; 一、修改注册表&#xff08;最有效的方法-重启之后立竿见影&#xff09; 打开注册表编辑器&#xff1a; 按下WindowsR组合键&#xff0c;打开运行窗口。在运行窗口中输入“regedit”&#x…

Python中的Enum

Python中的Enum Enum&#xff08;枚举&#xff09;在很多应用场景中都会出现&#xff0c;因此绝大部分编程语言都实现了Enum类型&#xff0c;Python也不列外&#xff0c;但列外的是Enum在Python3.4中才被正式支持&#xff0c;我们先来看看Python3中的Enum是怎么使用的。 枚举的…

uniapp微信小程序巧用跳转封装鉴权路由

1.这是封装的跳转方法&#xff1a; import store from "../stores/store";function Router(type, url, params) {const NoLoginPage [。。。。。];var queryString Object.keys(params).map((key) > ${key}${params[key]}).join("&");if (!NoLog…

在 Windows 环境中配置 virtualenvwrapper

在 Windows 环境中配置 virtualenvwrapper 需要使用 virtualenvwrapper-win。以下是具体步骤&#xff1a; 安装步骤 安装 Python 确保你已经安装了 Python&#xff0c;并且 python 和 pip 已添加到系统的 PATH 中。 安装 virtualenv 和 virtualenvwrapper-win 使用以下命令安…

VMware ESXi 7.0U3q macOS Unlocker OEM BIOS 2.7 Dell HPE 联想定制版 9 月更新发布

VMware ESXi 7.0U3q macOS Unlocker & OEM BIOS 2.7 Dell HPE 联想定制版 9 月更新发布 VMware ESXi 7.0U3q macOS Unlocker & OEM BIOS 2.7 标准版和厂商定制版 ESXi 7.0U3 标准版&#xff0c;Dell (戴尔)、HPE (慧与)、Lenovo (联想)、Inspur (浪潮)、Cisco (思科)…

探索二叉树的奇幻世界:解密二叉树的结构与遍历

文章目录 目录 一、二叉树的基本操作 1.1 获取树中节点的个数 1.2 获取叶子节点的个数 1.3 获取第K层节点的个数 1.4 获取二叉树的高度 二、二叉树相关习题 2.1 检查两颗树是否相同 2.2 另一颗树的子树 2.3 翻转二叉树 2.4 判断一颗二叉树是否是平衡二叉树 一、二…

设计模式-创建型-常用:单例模式、工厂模式、建造者模式

单例模式 概念 一个类只允许创建一个对象&#xff08;或实例&#xff09;&#xff0c;那这个类就是单例类&#xff0c;这种设计模式就叫做单例模式。对于一些类&#xff0c;创建和销毁比较复杂&#xff0c;如果每次使用都创建一个对象会很耗费性能&#xff0c;因此可以把它设…

封装el-upload组件,用于上传图片和视频

使用环境 vue3element-ui plus 需要根据后端返回结构修改的函数&#xff1a;onPreview onRemove onSuccess 组件使用 基本使用 源代码&#xff1a; <script setup> import AutoUploadFile from /components/auto-upload-file/index.vue function change(urls){console.…

Html批量转word工具2.1

2024年10月7日记录&#xff1a; 有客户反馈&#xff0c;2.0刚运行就提示转换完成 有问题就解决。正好国庆假期这几天有空&#xff0c;2.1版就出炉了。 2.1 更新记录&#xff1a; 修复了1个bug&#xff1a;刚运行就提示转换完成 下载地址&#xff1a;Html 转 word 批量处理工具…

一、Python(介绍、环境搭建)

一、介绍 Python 是一种高级编程语言&#xff0c;具有简洁易读的语法、丰富的库和强大的功能。Python是解释型语言&#xff0c;运行代码必须依赖安装好的解释器。Python目前存在两个版本&#xff1a;Python2、Python3&#xff08;主流使用&#xff09; 二、环境搭建 1.安装P…

前端的全栈混合之路Meteor篇(二):RPC方法注册及调用

在Meteor 3.0中&#xff0c;RPC&#xff08;远程过程调用&#xff09;机制是实现前后端数据交互的重要特性。通过RPC&#xff0c;前端可以轻松调用后端方法&#xff08;Methods&#xff09;并获取数据&#xff0c;而后端的逻辑也可以同步或异步执行并返回结果。本文将详细介绍M…

智能家居有哪些产品?生活中常见的人工智能有哪些?

智能家居有哪些产品? 1、智能照明设备类&#xff1a;智能开关、智能插座、灯控模块、智能空开、智能灯、无线开关。 2、家庭安防类&#xff1a;智能门锁、智能摄像机、智能猫眼、智能门铃。 3、智能传感器类&#xff1a;烟雾传感器、可燃气体传感器、水浸传感器、声光报警器…

小程序-全局数据共享

目录 1.什么是全局数据共享 2. 小程序中的全局数据共享方案 MboX 1. 安装 MobX 相关的包 2. 创建 MobX 的 Store 实例 3. 将 Store 中的成员绑定到页面中 4. 在页面上使用 Store 中的成员 5. 将 Store 中的成员绑定到组件中 6. 在组件中使用 Store 中的成员 1.什么是全…