CSP-J模拟赛四补题报告

前言

T1: 100 p t s \color{green}100pts 100pts

T2: 100 p t s \color{green}100pts 100pts

T3: 20 p t s → 5 p t s \color{red}20pts\rightarrow5pts 20pts5pts

T4: 20 p t s \color{red}20pts 20pts

T1,2秒了,T3,4死了

T1 三个(three)

题面

时间限制:1秒 内存限制:256M

1.1 问题描述

现在科学家在培养
A , B , C A,B,C A,B,C 三种微生物,这三种微生物每一秒都会繁殖出新的微生物,具体规则为:

A 类微生物每一秒会繁殖出 1 个 A A A 类微生物,1 个 B B B 类微生物,1 个 C C C 类微生物。

B B B 类微生物每一秒会繁殖出 2 个 A A A 类微生物, 2 2 2 C C C 类微生物。

C 类微生物每一秒会繁殖出 1 个 A A A 类微生物,1 个 B B B 类微生物。

假设所有的微生物都不会死亡,一开始培养皿中有 A , B , C A,B,C A,B,C 三种微生物各 1个,现在问你 n n n 秒后 A , B , C A,B,C A,B,C 三种微生物分别有奇数个还是偶数个。

1.2 输入格式

从文件 three.in 中读取数据。

一行一个整数 n n n

1.3 输出格式

输出到文件 three.out 中。

输出总共三行:

第一行:若 n n n 秒后 A A A 类微生物有奇数个,输出 odd,否则输出 even。
第二行:若 n n n 秒后 B B B 类微生物有奇数个,输出 odd,否则输出 even。
第三行:若 n n n 秒后 C C C 类微生物有奇数个,输出 odd,否则输出 even。

1.4 输入样例1

3

1.5 输出样例1

odd
odd
odd

1.6 输入样例2

4

1.7 输出样例2

odd
odd
even

1.8 输入样例3

233

1.9 输出样例3

even
even
odd

1.10 数据描述

总共 20 个测试点:

对于测试点 1∼4: 1 ≤ n ≤ 3 1≤n≤3 1n3
对于测试点 5∼8: 1 ≤ n ≤ 100 1≤n≤100 1n100
对于测试点 9∼20: 1 ≤ n ≤ 1 0 6 1≤n≤10^6 1n106
​​

思路

秒了

AC Code:

#include<bits/stdc++.h>
using namespace std;
int main()
{freopen("three.in","r",stdin);freopen("three.out","w",stdout);long long a=1,b=1,c=1,n;scanf("%lld",&n);for(int i=1;i<=n;++i){int A=a+a+2*b+c;int B=b+a+c;int C=c+a+2*b;a=A;b=B;c=C;}if(a%2==0){printf("even\n"); }else{printf("odd\n");}if(b%2==0){printf("even\n");}else{printf("odd\n");}if(c%2==0){printf("even\n");}else{printf("odd\n");}return 0;
} 

T2 合体(fit)

题面

时间限制:1秒 内存限制:256M

2.1 问题描述

现在有 n n n 个大小范围在 1 ∼ m 1∼m 1m 中的整数 a 1 ​​ ∼ a n a_1​​ ∼a_n a1​​an,并且你获得了一项魔法能力。

施加一次魔法能力后,可以将两个相同的数字合并成一个数字,并且这个数字为原来的数字 +1,例如:

有 2,2 这两个数字,施加一次魔法能力后可以将这两个数字合并成一个数字 3。

现在有 q q q 次询问,每次询问给你一个整数 x x x,你可以施加任意次数魔法能力,问你这 n n n 个整数最多能得到多少个整数 x x x

2.2 输入格式

从文件 fit.in 中读取数据。

第一行两个整数 n , m n,m n,m

第二行 n n n 个整数 a 1 ∼ a ​ n a_1∼a​_n a1an

第三行一个整数 q q q

接下来 q q q 行,每行一个整数 x x x

2.3 输出格式

输出到文件 fit.out 中。

输出 q q q 行,对于每个询问,输出对应的答案。

2.4 输入样例

10 4
1 1 1 2 1 3 4 1 2 3
5
1
2
3
4
4

2.5 输出样例

5
4
4
3
3

2.6 数据描述

总共 20 个测试点:

对于测试点 1∼4: 1 ≤ n ≤ 10 , 1 ≤ m ≤ 10 , 1 ≤ a ​ i ≤ m , 1 ≤ q ≤ 10 , 1 ≤ x ≤ m 1≤n≤10,1≤m≤10,1≤a_​i≤m,1≤q≤10,1≤x≤m 1n10,1m10,1aim,1q10,1xm

对于测试点 5∼6: 1 ≤ n ≤ 1 0 6 , m = 1 , a i = 1 , q = 1 , x = 1 1≤n≤10^6,m=1,a_i=1,q=1,x=1 1n106,m=1,ai=1,q=1,x=1

对于测试点7∼8: 1 ≤ n ≤ 1 0 6 , m = 5 , 1 ≤ a ​ i ≤ m , 1 ≤ x ≤ m 1≤n≤10^6,m=5,1≤a​_i ≤m,1≤x≤m 1n106,m=5,1aim,1xm

对于测试点 9∼20: 1 ≤ n ≤ 1 0 6 , 1 ≤ m ≤ 1 0 6 , 1 ≤ a ​ i ≤ m , 1 ≤ x ≤ m 1≤n≤10^6,1≤m≤10^6 ,1≤a​_i ≤m,1≤x≤m 1n106,1m106,1aim,1xm

思路

离线,秒了

AC Code:

#include<bits/stdc++.h>
using namespace std;
int a[1000005],ans[1000005],n,m; 
int main()
{freopen("fit.in","r",stdin);freopen("fit.out","w",stdout);int n,m,q,x;scanf("%d%d",&n,&m);for(int i=1;i<=n;++i){int t; scanf("%d",&t);a[t]++;}for(int i=1;i<=m;i++){ans[i]=a[i];a[i+1]+=a[i]/2;}scanf("%d",&q);while(q--){scanf("%d",&x);printf("%d\n",ans[x]);}return 0;
}

矩阵(matrix)

思路

时间限制:2秒 内存限制:256M

3.1 问题描述

现在给你一个 n n n m m m 列的矩阵,矩阵上每个格子有一个整数,其中第 i i i 行第 j j j 列对应的格子上的整数为 g i , j g_{i,j} gi,j

现在定义该矩阵的一个子矩阵的快乐值为该子矩阵上的所有数字的异或和。

现在问你,该矩阵的所有子矩阵的快乐值之和为多少?

3.2 输入格式

从文件 matrix.in 中读取数据。

第一行两个整数 n , m n,m n,m
接下来 n n n 行,每行 m m m 个整数,表示该矩阵。

3.3 输出格式

输出到文件 matrix.out 中。

一行一个整数,表示答案。

3.4 输入样例

5 4
3 2 1 2
3 3 5 5
8 7 3 6
1 1 1 1
2 3 9 9

3.5 输出样例

822

3.6 数据描述

总共 20 个测试点:
对于测试点 1∼4: 1 ≤ n , m ≤ 10 , 0 ≤ g ​ i , j < 2 ​ 10 1≤n,m≤10,0≤g_{​i,j}<2^{​10} 1n,m10,0gi,j<2​10

对于测试点 5∼6: 1 ≤ n , m ≤ 300 , g ​ i , j = 1 1≤n,m≤300,g_{​i,j} =1 1n,m300,gi,j=1

对于测试点 7∼12: 1 ≤ n , m ≤ 300 , 0 ≤ g ​ i , j ​​ ≤ 1 1≤n,m≤300,0≤g_{​i,j}​​ ≤1 1n,m300,0gi,j​​1

对于测试点 13∼20: 1 ≤ n , m ≤ 300 , 0 ≤ g ​ i , j ​​ < 2 10 1≤n,m≤300,0≤g_{​i,j}​​ <2^{10} 1n,m300,0gi,j​​<210
​​

思路

AC Code

#include<bits/stdc++.h>
using namespace std;
const int N=305;
int n,m,a[N][N],b[N],sum[N];
long long ans;
int main()
{scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){scanf("%d",&a[i][j]);}}for(int u=1;u<=n;u++){memset(b,0,sizeof(b));for(int d=u;d<=n;d++){for(int j=1;j<=m;j++){b[j]^=a[d][j];sum[j]=sum[j-1]^b[j];}for(int p=0;p<10;p++){long long cnt[2]={1,0};for(int j=1;j<=m;j++){int t=(sum[j]>>p)&1;ans+=(1<<p)*cnt[t^1];cnt[t]++; }}}}printf("%lld",ans);return 0;
} 

数对(pair)

时间限制:2秒 内存限制:256M

4.1 问题描述

给你一个长度为 n n n 的数列 a ​ 1 , a ​ 2 ​​ , . . . , a n a​_1 ,a​_2​​ ,...,a_n a1,a2​​,...,an​​ 。

再给你一个长度为 m m m 的数列 b 1 , b 2 , . . . , b m b_1,b_2 ,...,b_m b1,b2,...,bm

现在再再再给你一个正整数 p p p,让你生成一个长度为 n × m n×m n×m 的数列 c 1 ​​ , c ​ 2 , . . . , c ​ n × m c_1​​ ,c​_2,...,c​_{n×m} c1​​,c2,...,cn×m

其中满足 c ( i − 1 ) × m + j = ( a i + b j ) m o d p c(i−1)×m+j=(a_i+b_j)\mod p c(i1)×m+j=(ai+bj)modp

现在问你数列 c c c 中有多少个数对 ( i , j ) (i,j) (i,j)满足 i < j i<j i<j c i > c j c_i>c_j ci>cj

4.2 输入格式

从文件 pair.in 中读取数据。

第一行两个整数 n , m , p n,m,p n,m,p

第二行 n n n 个整数,表示 a ​ 1 ∼ a ​ n a​_1 ∼a​_n a1an

第三行 m 个整数,表示 b ​ 1 ∼ b ​ m b​_1∼b​_m b1bm

4.3 输出格式

输出到文件 pair.out 中。

一行一个整数,表示答案。

4.4 输入样例

6 7 10
1 1 4 5 1 4
1 9 1 9 8 1 0

4.5 输出样例

294

4.6 数据描述

总共 20 个测试点:

对于测试点 1∼4: 1 ≤ n , m ≤ 100 , 1 ≤ p ≤ 10 , 0 ≤ a i , b i < p 1≤n,m≤100,1≤p≤10,0≤a_i,b_i<p 1n,m100,1p10,0ai,bi<p

对于测试点 5∼6: 1 ≤ n , m ≤ 1000 , 1 ≤ p ≤ 10 , 0 ≤ a i , b ​ i ​​ < p 1≤n,m≤1000,1≤p≤10,0≤a_i,b​_i​​ <p 1n,m1000,1p10,0ai,bi​​<p

对于测试点 7∼8: 1 ≤ n , m ≤ 1000000 , p = 2 , 0 ≤ a i ​​ , b ​ i < p 1≤n,m≤1000000,p=2,0≤a_i​​ ,b​_i<p 1n,m1000000,p=2,0ai​​,bi<p

对于测试点 9∼20: 1 ≤ n , m ≤ 1000000 , 1 ≤ p ≤ 10 , 0 ≤ a ​ i , b ​ i < p 1≤n,m≤1000000,1≤p≤10,0≤a​_i,b​_i<p 1n,m1000000,1p10,0ai,bi<p

AC Code

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+5;
int n,m,p,a[N],b[N];
long long cntb[15],res[15],vis[15];
void write(__int128 x)
{if(x>9){write(x/10);}putchar(char(x%10+'0'));
}
int main()
{scanf("%d%d%d",&n,&m,&p);for(int i=1;i<=n;i++){scanf("%d",&a[i]);}for(int i=1;i<=m;i++){scanf("%d",&b[i]);cntb[b[i]]++;}for(int k=0;k<p;k++){memset(vis,0,sizeof(vis));for(int i=1;i<=m;i++){for(int j=b[i]+1;j<p;j++){res[k]+=vis[j];}vis[b[i]]++;b[i]=(b[i]+1)%p;}}__int128 ans=0;memset(vis,0,sizeof(vis));for(int i=1;i<=n;i++){ans+=res[a[i]];for(int k=0;k<p;k++){for(int j=(a[i]+k)%p+1;j<p;j++){ans+=cntb[k]*vis[j];}}for(int k=0;k<p;k++){vis[(a[i]+k)%p]+=cntb[k];}}write(ans);return 0;
}

在这里插入图片描述

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

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

相关文章

数据集-目标检测系列- 货船 检测数据集 freighter>> DataBall

数据集-目标检测系列- 货船 检测数据集 freighter>> DataBall 数据集-目标检测系列- 货船 检测数据集 freighter>> DataBall 数据量&#xff1a;3k 想要进一步了解&#xff0c;请联系。 DataBall 助力快速掌握数据集的信息和使用方式&#xff0c;会员享有 百种…

SQL优化 - 排序

文章目录 排序和索引降序索引 FilesortORDER BY 顺序问题ORDER BY LIMIT 排序和索引 如果ORDER BY操作使用了索引&#xff0c;那么就可以避免排序操作&#xff0c;因为索引本身就是按索引 key 排好序的。那什么情况下&#xff0c;ORDER BY会走索引呢&#xff1f; 例如&#…

阿里云域名注册购买和备案

文章目录 1、阿里云首页搜索 域名注册2、点击 控制台3、域名控制台 1、阿里云首页搜索 域名注册 2、点击 控制台 3、域名控制台

【08】纯血鸿蒙HarmonyOS NEXT星河版开发0基础学习笔记-Scroll容器与Tabs组件

序言&#xff1a; 本文详细讲解了关于我们在页面上经常看到的可滚动页面和导航栏在鸿蒙开发中如何用Scroll和Tabs组件实现&#xff0c;介绍了Scroll和Tabs的基本用法与属性。 笔者也是跟着B站黑马的课程一步步学习&#xff0c;学习的过程中添加部分自己的想法整理为笔记分享出…

【漏洞复现】泛微OA E-Office do_excel.php 任意文件写入漏洞

》》》产品描述《《《 泛微0-0fice是一款标准化的协同 OA办公软件&#xff0c;泛微协同办公产品系列成员之一,实行通用化产品设计&#xff0c;充分贴合企业管理需求&#xff0c;本着简洁易用、高效智能的原则&#xff0c;为企业快速打造移动化、无纸化、数字化的办公平台。 》》…

深度学习:基于MindSpore实现CycleGAN壁画修复

关于CycleGAN的基础知识可参考&#xff1a; 深度学习&#xff1a;CycleGAN图像风格迁移转换-CSDN博客 以及MindSpore官方的教学视频&#xff1a; CycleGAN图像风格迁移转换_哔哩哔哩_bilibili 本案例将基于CycleGAN实现破损草图到线稿图的转换 数据集 本案例使用的数据集里…

【含文档】基于Springboot+Vue的护肤品推荐系统(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定…

企望制造ERP系统存在RCE漏洞

漏洞描述 企望制造纸箱业erp系统由深知纸箱行业特点和业务流程的多位IT专家打造&#xff0c;具有国际先进的管理方式&#xff0c;将现代化的管理方式融入erp软件中&#xff0c;让企业分分钟就拥有科学的管理经验。erp的功能包括成本核算、报价定价、订单下达、生产下单、现场管…

五子棋双人对战项目(3)——匹配模块

目录 一、分析需求 二、约定前后端交互接口 匹配请求&#xff1a; 匹配响应&#xff1a; 三、实现游戏大厅页面&#xff08;前端代码&#xff09; game_hall.html&#xff1a; common.css&#xff1a; game_hall.css&#xff1a; 四、实现后端代码 WebSocketConfig …

vue3 环境配置vue-i8n国际化

一.依赖和插件的安装 主要是vue-i18n和 vscode的自动化插件i18n Ally https://vue-i18n.intlify.dev/ npm install vue-i18n10 pnpm add vue-i18n10 yarn add vue-i18n10 vscode在应用商城中搜索i18n Ally&#xff1a;如图 二.实操 安装完以后在对应项目中的跟package.jso…

计算机毕业设计 基于协同过滤算法的个性化音乐推荐系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

Charles+socksdroid手机抓包配置

证书配置 保存一个证书 使用abd将证书推送到手机 找手机的加密与凭据 点击从存储设备安装 选择刚刚导入手机的证书 证书按照成功 手机安装socksdroid 端口对应 ip对应 开启 点击allow 成功手机抓包 将用户证书移动到系统证书 系统证书路径&#xff1a;/etc/security/cacerts…

【springboot】整合LoadBalancer

目录 问题产生背景解决方案&#xff1a;实现LoadBalancer1. 添加依赖2. 配置文件3. 使用LoadBalancer4. 使用 RestTemplate 进行服务调用5. 测试 问题产生背景 以下是一个购物车项目&#xff0c;通过调用外部接口获取商品信息&#xff0c;并添加到购物车中&#xff0c;这段代码…

【Android 14源码分析】WMS-窗口显示-第二步:relayoutWindow -1

忽然有一天&#xff0c;我想要做一件事&#xff1a;去代码中去验证那些曾经被“灌输”的理论。                                                                                  – 服装…

【JAVA开源】基于Vue和SpringBoot的宠物咖啡馆平台

本文项目编号 T 064 &#xff0c;文末自助获取源码 \color{red}{T064&#xff0c;文末自助获取源码} T064&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

使用CSS实现酷炫加载

使用CSS实现酷炫加载 效果展示 整体页面布局 <div class"container"></div>使用JavaScript添加loading加载动画的元素 document.addEventListener("DOMContentLoaded", () > {let container document.querySelector(".container&q…

初识Linux · 自主Shell编写

目录 前言&#xff1a; 1 命令行解释器部分 2 获取用户命令行参数 3 命令行参数进行分割 4 执行命令 5 判断命令是否为内建命令 前言&#xff1a; 本文介绍是自主Shell编写&#xff0c;对于shell&#xff0c;即外壳解释程序&#xff0c;我们目前接触到的命令行解释器&am…

数据提取之JSON与JsonPATH

第一章 json 一、json简介 json简单说就是javascript中的对象和数组&#xff0c;所以这两种结构就是对象和数组两种结构&#xff0c;通过这两种结构可以表示各种复杂的结构 > 1. 对象&#xff1a;对象在js中表示为{ }括起来的内容&#xff0c;数据结构为 { key&#xff1…

区块链+Web3学习笔记(METAMASHK、密码学知识)

学习资料来源于B站&#xff1a; 17小时最全Web3教程&#xff1a;ERC20&#xff0c;NFT&#xff0c;Hardhat&#xff0c;CCIP跨链_哔哩哔哩_bilibili 该课程提供的Github代码地址&#xff0c;相关资料详见README.md&#xff1a; Web3_tutorial_Chinese/README.md at main sm…

银河麒麟系统内存清理

银河麒麟系统内存清理 1、操作步骤2、注意事项 &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; 当银河麒麟系统运行较长时间&#xff0c;内存中的缓存可能会积累过多&#xff0c;影响系统性能。此时&#xff0c;你可以通过简单的命令来清理这…