2025吉林ccpc【部分题解】

news2025/6/2 16:37:07

文章目录

  • C - SSPPSPSP
  • ProblemD.互互互质质质
  • ProblemF. Ever Forever
  • ProblemG.石石石头头头剪剪剪刀刀刀布布布
  • Problem J.奇偶游戏
  • Problem L.好矩阵

C - SSPPSPSP

题目来源:C - SSPPSPSP
在这里插入图片描述

在这里插入图片描述
!](https://i-blog.csdnimg.cn/direct/26fc1492b1724446be61cf39b718cf9b.png)
在这里插入图片描述
解题思路
题目很长但读懂题意就很简单,是一个根据字符顺序不断累加或累乘的过程。可以先算出一开始的加和以及乘积之和,然后从后往前依次累算。如果是s就累加加和,如果是p就累乘乘积之和。记得每次都要取模。

#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
using namespace std;
const int mod=998244353;
int n,k,a[20];
string s;
void solve()
{
	cin>>n>>k;
	int s1=0,s2=1,sum,ans;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		s1=(s1+a[i])%mod;//算出初始的和 
		s2=(s2*a[i])%mod;// 积 
	}
	cin>>s;
	if(s[s.size()-1]=='s')//从后往前算,先将第一个值赋值在sum上 
	sum=s1%mod;
	else
	sum=s2%mod;
	for(int i=s.size()-2;i>=0;i--)//依次遍历 
	{
		if(s[i]=='s')//如果是加和可以直接乘n 
			sum=(sum*n)%mod;
		else//乘积之积 
		{
			ans=sum%mod;
			for(int i=0;i<n-1;i++)
				sum=(sum*ans)%mod;
		}
	}
	cout<<sum%mod;
}
signed main()
{
	IOS;
	int _=1;
//	cin>>_;
	while(_--)solve(); 
	return 0;
}

ProblemD.互互互质质质

题目来源:ProblemD.互互互质质质

在这里插入图片描述
解题思路
虽然x,y的范围很大,但依然可以遍历x,y之间的数来找符合条件的z,因为质数出现的次数还是很频繁的,质数一定分别和他们两个互质,因此它们要么就是相差很小没有互质的数,要么就一定在没超限的条件下能找到和他们都互质的数。
代码实现

#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
using namespace std;
void solve()
{
	int x,y;
	cin>>x>>y;
	for(int i=x+1;i<y;i++)
	{
		if(__gcd(x,i)==1&&__gcd(i,y)==1)
		{
			cout<<i<<endl;
			return ;
		}
	}
	cout<<-1<<endl;
}
signed main()
{
	IOS;
	int _=1;
	cin>>_;
	while(_--)solve(); 
	return 0;
}

ProblemF. Ever Forever

题目来源:ProblemF. Ever Forever
在这里插入图片描述
解题思路
签到题,题目范围很小,不用想太复杂,直接遍历,每遇到一个e就遍历从当前位置到最后的每个f的位置,将其每个距离加起来即可。
代码实现

#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
using namespace std;
const int N=1e5+5;
void solve()
{
	int n,ans=0;
	cin>>n;
	string s;
	cin>>s;
	for(int i=0;i<s.size();i++)
	{
		if(s[i]=='e')
		{
			for(int j=i+1;j<n;j++)
			{
				if(s[j]=='f')
				ans+=(j-i);
			}
		}
	}
	cout<<ans;
}
signed main()
{
	IOS;
	int _=1;
//	cin>>_;
	while(_--)solve(); 
	return 0;
}

ProblemG.石石石头头头剪剪剪刀刀刀布布布

题目来源:ProblemG.石头剪刀布
在这里插入图片描述
解题思路
又臭又烂的模拟题,我没有优化的方法,就是纯模拟,先模拟最大值,让石头1找剪刀2,如果有剩余再找石头2,如果还有剩余就只能找布2,最小值相反。

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pii pair<int, int>
#define fi first
#define se second
const int N = 1e5+1;
int a[N];
string s,s1;
vector<int> v;
int ans;
int n;
int x,y,z;
void solve()
{
 	int n,a1,b1,c1,a2,b2,c2,ans=0,res=0;
    cin>>n>>a1>>b1>>c1>>a2>>b2>>c2;
    int x1=a1,y1=b1,z1=c1,x2=a2,y2=b2,z2=c2;
    if(a1<b2)
    {
        b2-=a1;
        ans+=a1;
        a1=0;
    }
    else
    {
        a1-=b2;
        ans+=b2;
        b2=0;
        if(a1>=a2)
        {
            a1-=a2;
            a2=0;
        }
        else
        {
            a2-=a1;
            a1=0;
        }
        c2-=a1;
        ans-=a1;
        a1=0;
    }
    if(b1<c2)
    {
        c2-=b1;
        ans+=b1;
        b1=0;
    }
    else
    {
        b1-=c2;
        ans+=c2;
        c2=0;
        if(b1>=b2)
        {
            b1-=b2;
            b2=0;
        }
        else
        {
            b2-=b1;
            b1=0;
        }
        a2-=b1;
        ans-=b1;
        b1=0;
    }
    if(c1<a2)
    {
        a2-=c1;
        ans+=c1;
        c1=0;
    }
    else
    {
        c1-=a2;
        ans+=a2;
        a2=0;
        if(c1>=c2)
        {
            c1-=c2;
            c2=0;
        }
        else
        {
            c2-=c1;
            c1=0;
        }
        b2-=c1;
        ans-=c1;
        c1=0;
    }
    cout<<ans<<" ";
    if(x1<z2)
    {
        z2-=x1;
        res+=x1;
        x1=0;
    }
    else
    {
        x1-=z2;
        res+=z2;
        z2=0;
        if(x1>=x2)
        {
            x1-=x2;
            x2=0;
        }
        else
        {
            x2-=x1;
            x1=0;
        }
        y2-=x1;
        res-=x1;
        x1=0;
    }
    if(y1<x2)
    {
        x2-=y1;
        res+=y1;
        y1=0;
    }
    else
    {
        y1-=x2;
        res+=x2;
        x2=0;
        if(y1>=y2)
        {
            y1-=y2;
            y2=0;
        }
        else
        {
            y2-=y1;
            y1=0;
        }
        z2-=y1;
        res-=y1;
        y1=0;
    }
    if(z1<y2)
    {
        y2-=z1;
        res+=z1;
        z1=0;
    }
    else
    {
        z1-=y2;
        res+=y2;
        y2=0;
        if(z1>=z2)
        {
            z1-=z2;
            z2=0;
        }
        else
        {
            z2-=z1;
            z1=0;
        }
        x2-=z1;
        res-=z1;
        z1=0;
    }
    cout<<-1*res<<endl;
}
signed main()
{
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int t=1;
    cin>>t;
    while(t--) solve();
    return 0;
}

Problem J.奇偶游戏

题目来源:ProblemJ.奇奇奇偶偶偶游游游戏戏戏
在这里插入图片描述
解题思路
超级无敌签到题,先找出二者最大值,再判断奇偶,如果是奇数输出1,否则输出0;
代码实现

#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
using namespace std;
const int N=1e5+5;
void solve()
{
	int a,b;
	cin>>a>>b;
	int mx=max(a,b);
	if(mx%2==1)
	cout<<1;
	else
	cout<<2;
}
signed main()
{
	IOS;
	int _=1;
//	cin>>_;
	while(_--)solve(); 
	return 0;
}

Problem L.好矩阵

题目来源:ProblemL.好好好矩矩矩阵阵阵
在这里插入图片描述
解题思路
找规律的一道题,题目意思是,矩阵的每行每列的异或和等于他本身,这样的01矩阵有多少个。通过给的样例就不难看出,如果两个数一奇一偶,输出2的奇数减1次幂,如果两个都是奇数则输出 2 的 二者之和减2 次幂,记得用快速幂取模!.
代码实现

#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
using namespace std;
const int mod= 998244353;
int Qmi(int a,int b)
{
	int ans=1;
	while(b)
	{
		if(b&1)
		ans=ans*a%mod;
		a=a*a%mod;
		b>>=1;
	}
	return ans;
}
void solve()
{
	int x,y;
	cin>>x>>y;
	int ans=0;
	if(x%2==0||y%2==0)
	{
		if(x&1)
		ans=y-1;
		if(y&1)
		ans=x-1;
	 } 
	 else if(x&1&&y&1)
	 ans=x+y-2;
	 cout<<Qmi(2,ans)<<endl;
}
signed main()
{
	IOS;
	int _=1;
	cin>>_;
	while(_--)solve(); 
	return 0;
}
完结撒花~

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

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

相关文章

PowerDesigner通过SQL反向生成类图

PowerDesigner通过SQL反向生成类图 背景操作步骤步骤1: 选择这个步骤2: 目前我是选择的这个步骤3: 选择这个 其他 背景 工作学习 操作步骤 步骤1: 选择这个 步骤2: 目前我是选择的这个 步骤3: 选择这个 其他 其他同事告诉我的, 我还没有亲自尝试, 应该问题不大. 尝试后再反…

【bug排查记录】由Redission配置引发的Satoken血案

背景 在今天服务更改服务配置的redis的database后&#xff0c;本地测试通过&#xff0c;发布到线上。出现所有用户登录状态失效&#xff0c;并且重新登录后也是失效的问题&#xff0c;由于鉴权登录框架使用的是satoken&#xff0c;线上database配置的是1&#xff0c;然后去red…

MAC程序签名遇到的问题

整体步骤 需要一个apple开发者账号&#xff0c;个人账户注册需要按年付费 申请证书 申请证书链接 command 空格打开聚焦搜索 输入钥匙串访问打开 默认情况下是没有要的证书的 点击左上角的证书助理&#xff0c;选择请求证书 根据输入创建请求文件并保存到本地 点开申请…

华为OD机试真题——宜居星球改造计划(2025A卷:200分)Java/python/JavaScript/C++/C语言/GO六种最佳实现

2025 A卷 200分 题型 本文涵盖详细的问题分析、解题思路、代码实现、代码详解、测试用例以及综合分析; 并提供Java、python、JavaScript、C++、C语言、GO六种语言的最佳实现方式! 本文收录于专栏:《2025华为OD真题目录+全流程解析/备考攻略/经验分享》 华为OD机试真题《宜居…

Linux下基本指令的介绍

目录 1.目标 2.快速认识指令 1.pwd 2.clear 3.ls 4.mkdir 5.cd 6.touch 3.细化每一条指令 1.ls指令 2.pwd指令 注&#xff1a; 3.cd指令 4.touch和mkdir指令 6.删除文件 4.总结 1.目标 上一篇博客中&#xff0c;我们了解了Linux的起源和发展&#xff0c;也知道…

零基础开始的网工之路第十四天------Linux程序管理

目录 一、Linux程序与进程 1、程序,进程,线程的概念 2、程序和进程的区别 3、进程和线程的区别 二、Linux进程基础(生命周期) 1、进程生命周期 2、父子进程的关系 三、程序管理 1、常见的软件包类型 四、Linux操作系统启动流程详解 1、概述 2、启动流程核心阶段 1…

SIGGRAPH 2025 | 快手可灵团队提出3D感知的电影级文本到视频生成框架CineMaster

Sora、可灵等视频生成模型令人惊艳的性能表现使得创作者仅依靠文本输入就能够创作出高质量的视频内容。然而&#xff0c;我们常见的电影片段通常是由导演在一个场景中精心布置多个目标的运动、摄像机拍摄角度后再剪辑而成的。例如&#xff0c;在拍摄赛车追逐的场景时&#xff0…

历年西安电子科技大学计算机保研上机真题

2025西安电子科技大学计算机保研上机真题 2024西安电子科技大学计算机保研上机真题 2023西安电子科技大学计算机保研上机真题 在线测评链接&#xff1a;https://pgcode.cn/school 查找不同的连续数字串个数 题目描述 给定一个数字串&#xff0c;查找其中不同的连续数字串的个…

利用openwrt路由器和随身WIFI搭建CPE

背景&#xff1a; 最近5GCPE挺火&#xff0c;各种硬件层出不穷&#xff0c;包括DY上很多商家在推的AX3000叠加展锐RM500 5G模块&#xff0c;自己组装CPE&#xff0c;成本也在300 看了下开源硬件&#xff0c;其实就是一个开源的openwrt系统&#xff0c;硬件上5G模块通过usb协议…

科学智能赋能空间科学研究(2):AI4S 范式下空间科学实验的核心挑战

中国科学院空间应用工程与技术中心在空间科学实验领域的研究覆盖了多模态空间科学实验数据模式挖掘、领域知识抽取、跨学科知识融合与认知智能等研究内容&#xff0c;有效促进了空间科学实验领域的数据应用生态的体系化建设&#xff0c;相关研究成果已正式发表于权威学术期刊《…

Axure设计案例——科技感渐变线性图

想让数据变化趋势展示告别枯燥乏味&#xff0c;成为吸引观众目光的亮点吗&#xff1f;快来看看这个Axure设计的科技感渐变线性图案例&#xff01;科技感设计风格凭借炫酷的渐变色彩打破传统线性图的单调&#xff0c;营造出一种令人过目难忘的视觉体验。每一条线条都仿佛是流动的…

【Opencv+Yolo】Day2_图像处理

目录 一、图像梯度计算 图像梯度-sobal算子&#xff1a; Scharr&#xff1a;权重变化更大&#xff08;线条更加丰富&#xff0c;比Sobel更加细致捕捉更多梯度信息&#xff09; Laplacian算子&#xff1a;对噪音点敏感&#xff08;可以和其他一起结合使用&#xff09; 二、边…

STUSB4500 PPS(PD3.0)快充SINK模块——应用 解析

0 前言 朋友参加车展&#xff0c;收获一枚很漂亮的倍思65W氮化镓快充头&#xff0c;送给我了。 我看了手中只支持33W快充的三星陷入了沉思… 快充头支持PPS协议&#xff0c;我心思这玩意适合做可调电源啊&#xff01; 上网随便一查没查到&#xff0c;都是转换成5V、9V、12V等…

从认识AI开始-----解密门控循环单元(GRU):对LSTM的再优化

前言 在此之前&#xff0c;我已经详细介绍了RNN和LSTM&#xff0c;RNN虽然在处理序列数据中发挥了重要的作用&#xff0c;但它在实际使用中存在长期依赖问题&#xff0c;处理不了长序列&#xff0c;因为RNN对信息的保存只依赖一个隐藏状态&#xff0c;当序列过长&#xff0c;隐…

Docker系列(五):ROS容器化三叉戟 --- 从X11、Wayland到DockerFile实战全解析

引言 随着机器人操作系统&#xff08;ROS&#xff09;在机器人领域的广泛应用&#xff0c;容器化技术成为提高开发效率和简化部署的关键。在多种容器化方案中&#xff0c;基于X11、Wayland和标准Dockerfile的ROS容器化方式各有特点&#xff0c;它们在容器内安装ROS1和ROS2的实…

【位运算】常见位运算总结

位运算 常见位运算总结位1的个数比特位计数汉明距离只出现一次的数字只出现一次的数字 III 常见位运算总结 位1的个数 191. 位1的个数 给定一个正整数 n&#xff0c;编写一个函数&#xff0c;获取一个正整数的二进制形式并返回其二进制表达式中 设置位 的个数&#xff08;也被…

5G RedCap是什么-与标准5G的区别及支持路由器推荐

技术背景与重要性 从智能穿戴到工业传感器&#xff0c;物联网设备种类繁多&#xff0c;但并非所有设备都需要标准5G的全部功能。为满足这些中端应用的需求&#xff0c;3GPP在Release 17中引入了5G RedCap&#xff08;Reduced Capability&#xff09;&#xff0c;也称为5G NR-L…

纯html,js创建一个类似excel的表格

后台是php,表中数据可编辑,可删除,可提交到数据库 <!DOCTYPE html> <html> <head><meta charset="utf-8"><style>body {font-family: Arial, sans-serif;margin: 20px;background-color: #fff;}.toolbar {margin-bottom: 10px;disp…

如何使用windows下的vscode连接到本地虚拟机的linux

1.打开windows下的vscode 下载下图所示插件 下载完以后打开首选项选择设置搜索ssh 搜索ssh往下滑对下图打上勾 点击下图或者按ctrl shift P 搜索ssh 选择第一个&#xff0c;双击后 进入这个界面 好的window基本配置差不多 2.打开虚拟机 在终端中输入 sudo apt-get install…

Vue开发系列——零基础HTML引入 Vue.js 实现页面之间传参

目录 一、实现页面之间传参 二、使用 URL 查询参数实现传参(不需要额外引入vue-router) 一、实现页面之间传参 实现从a.html 向b.html传参param1value1, param2value2 二、使用 URL 查询参数实现传参(不需要额外引入vue-router) a.html页面 a.html代码&#xff1a; <!…