当前位置: 首页 > news >正文

2025吉林CCPC 题解(前六题)

 

// Problem: J - Odd-Even Game
// Contest: Virtual Judge - sdccpc20250527
// URL: https://vjudge.net/contest/719585#problem/J
// Memory Limit: 1024 MB
// Time Limit: 1000 ms
//       签到题
// Powered by CP Editor (https://cpeditor.org)#include <bits/stdc++.h>
using namespace std;
#define int long long 
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define PII pair<int,int>
#define fi first
#define se secondvoid solve()
{int a,b;cin>>a>>b;if((a&1)==0) swap(a,b);if(a>b) cout<<1<<endl;else cout<<2<<endl;
}signed main()
{IOSint T=1;
//	cin>>T;while(T--) solve(); return 0;
} 

 

 

// Problem: C - SSPPSPSP
// Contest: Virtual Judge - sdccpc20250527
// URL: https://vjudge.net/contest/719585#problem/C
// Memory Limit: 1024 MB
// Time Limit: 1000 ms
// 
// Powered by CP Editor (https://cpeditor.org)#include <bits/stdc++.h>
using namespace std;
#define int long long 
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define PII pair<int,int>
#define fi first
#define se second
const int mod = 998244353;
const int N = 15;
int a[N];int power(int a,int b)//快速幂函数
{int ans=1;while(b){if(b&1){ans*=a;ans%=mod;}a*=a;a%=mod;b>>=1;}return ans%mod;
}void solve()
{int ans=0;int sums=0,sump=1;int n,k; cin>>n>>k;for(int i=0;i<n;i++){cin>>a[i];sums+=a[i]; sums%=mod;//sums中存放从a[0]到a[n-1]的和sump*=a[i]; sump%=mod;//sump中存放从a[0]到a[n-1]的积}string s; cin>>s;if(s[s.size()-1]=='p')//先确定开始的ansans = sump;elseans = sums;for(int i=s.size()-2;i>=0;i--){if(s[i]=='p')//如果是累乘操作 就相当于乘了n次sump{ans = power(ans,n);ans%=mod;}else//如果是累加操作就相当于是进行了n次累加操作{ans*=n;ans%=mod;}}cout<<ans%mod<<endl;
}
/*问题剖析:注意看公式的角标 -> (x1+x2+x3) mod n 换句话说 角标会每次都从第一个数到最后一个数当内层循环 x1 x2都为0 这时候x3不断增加 角标实际上就是遍历了一遍数组所以只需要逆向判断当前操作是加还是乘即可如果是加法就是把当前的ans累加了n次如果是乘法就是把当前的ans累乘了n次正常模拟即可
*/
signed main()
{IOSint T=1;
//	cin>>T;while(T--) solve(); return 0;
} 

// Problem: D - Coprime
// Contest: Virtual Judge - sdccpc20250527
// URL: https://vjudge.net/contest/719585#problem/D
// Memory Limit: 1024 MB
// Time Limit: 2000 ms
// 
// Powered by CP Editor (https://cpeditor.org)#include <bits/stdc++.h>
using namespace std;
#define int long long 
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define PII pair<int,int>
#define fi first
#define se second//const int mod = 998244353;void solve()
{int x,y;cin>>x>>y;for(int i=x+1;i<y;i++){if(__gcd(i,x)==1&&__gcd(i,y)==1){cout<<i<<endl;return ;}}cout<<-1<<endl;
}signed main()
{IOSint T=1;cin>>T;while(T--) solve(); return 0;
} 

 

 

// Problem: F - Ever Forever
// Contest: Virtual Judge - sdccpc20250527
// URL: https://vjudge.net/contest/719585#problem/F
// Memory Limit: 1024 MB
// Time Limit: 1000 ms
// 
// Powered by CP Editor (https://cpeditor.org)#include <bits/stdc++.h>
using namespace std;
#define int long long 
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define PII pair<int,int>
#define fi first
#define se second//const int mod = 998244353;void solve()
{vector<int> a;int ans=0;int n; cin>>n;string s;cin>>s;for(int i=0;i<s.size();i++){if(s[i]=='e'){a.push_back(i);}else{for(auto it : a){ans += (i-it);}}}cout<<ans<<endl;
}signed main()
{IOSint T=1;
//	cin>>T;while(T--) solve(); return 0;
} 

// Problem: G - Rock-Paper-Scissors
// Contest: Virtual Judge - sdccpc20250527
// URL: https://vjudge.net/contest/719585#problem/G
// Memory Limit: 1024 MB
// Time Limit: 1000 ms
// 
// Powered by CP Editor (https://cpeditor.org)#include <bits/stdc++.h>
using namespace std;
#define int long long 
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define PII pair<int,int>
#define fi first
#define se second
vector<int> v(4),a(4),vv(4),aa(4);void solve()
{int n;cin>>n;cin>>v[1]>>v[2]>>v[3]>>a[1]>>a[2]>>a[3];vv=v,aa=a;int mx=0;//假设下标 1 2 3 分别为石头剪刀布 计算mx就需要让小V尽可能的赢 首先计算小V出石头能赢的局数int x = min(v[1],a[2]);v[1]-=x;a[2]-=x;mx+=x;//小V出剪刀能赢的局数x = min(v[2],a[3]);v[2]-=x;a[3]-=x;mx+=x;//小V出布能赢的局数x = min(v[3],a[1]);v[3]-=x;a[1]-=x;mx+=x;//如果小V的石头还有剩余 那么就贪心一点 先计算能平局的局数 if(v[1]){x = min(v[1],a[1]);v[1]-=x;a[1]-=x;if(v[1])//如果小V还有剩余的石头说明已经把小A的剪刀和石头都消耗完了 那么就没办法了 再贪心也只能输了就统计输的局数{int xx=min(v[1],a[3]);mx-=xx;v[1]-=xx;a[3]-=xx;}}//如果小V的剪刀还有剩余 那么就贪心一点 先计算能平局的局数 if(v[2]){x = min(v[2],a[2]);v[2]-=x;a[2]-=x;if(v[2])//如果小V还有剩余的剪刀说明已经把小A的布和石头都消耗完了 那么就没办法了 再贪心也只能输了就统计输的局数{int xx=min(v[2],a[1]);mx-=xx;v[2]-=xx;a[1]-=xx;}}//如果小V的布还有剩余 那么就还贪心一点 先计算能平局的局数 if(v[3]){x = min(v[3],a[3]);v[3]-=x;a[3]-=x;if(v[3])//如果小V还有剩余的布说明已经把小A的布和石头都消耗完了 那么就没办法了 再贪心也只能输了就统计输的局数{int xx=min(v[3],a[2]);mx-=xx;v[3]-=xx;a[2]-=xx;}}cout<<mx<<' ';int mi=0;x = min(aa[1],vv[2]);aa[1]-=x;vv[2]-=x;mi+=x;//同上面计算一样 要计算最小值 就要让小A尽可能的赢 即让小V尽可能的输 只需要把前文中的代码复制过来 a改为vv v改为aa即可x = min(aa[2],vv[3]);aa[2]-=x;vv[3]-=x;mi+=x;//同上x = min(aa[3],vv[1]);aa[3]-=x;vv[1]-=x;mi+=x;//同上if(aa[1]){x = min(aa[1],vv[1]);aa[1]-=x;vv[1]-=x;if(aa[1])//同上{int xx=min(aa[1],vv[3]);mi-=xx;aa[1]-=xx;vv[3]-=xx;}}//同上if(aa[2]){x = min(aa[2],vv[2]);aa[2]-=x;vv[2]-=x;if(aa[2])//同上{int xx=min(aa[2],vv[1]);mi-=xx;aa[2]-=xx;vv[1]-=xx;}}//同上if(aa[3]){x = min(aa[3],vv[3]);aa[3]-=x;vv[3]-=x;if(aa[3])//同上{int xx=min(aa[3],vv[2]);mi-=xx;aa[3]-=xx;vv[2]-=xx;}}cout<<-mi<<endl;
}signed main()
{IOSint T=1;cin>>T;while(T--) solve(); return 0;
} 

 

// Problem: L - Good Matrix
// Contest: Virtual Judge - sdccpc20250527
// URL: https://vjudge.net/contest/719585#problem/L
// Memory Limit: 1024 MB
// Time Limit: 1000 ms
// 
// Powered by CP Editor (https://cpeditor.org)#include <bits/stdc++.h>
using namespace std;
#define int long long 
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define PII pair<int,int>
#define fi first
#define se second
const int mod =  998244353;
int power(int a,int b)//快速幂函数
{int ans=1;while(b){if(b&1){ans*=a;ans%=mod;}a*=a;a%=mod;b>>=1;}return ans%mod;
}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;}elseans=0;cout<<power(2,ans)<<endl;
}signed main()
{IOSint T=1;cin>>T;while(T--) solve(); return 0;
} 

http://www.xdnf.cn/news/668485.html

相关文章:

  • [图文]图6.3会计事项-Fowler分析模式的剖析和实现
  • docker 搭建php 开发环境 添加扩展redis、swoole、xdebug(1)
  • Qt不同布局添加不同控件
  • 模型评价指标介绍
  • Spark、Hadoop对比
  • Excel 操作 转图片,转pdf等
  • Go语言中的浮点数类型详解
  • Kotlin 中 Lambda 表达式的语法结构及简化推导
  • 学习黑客 Metasploit 主要组件之Encoder
  • MS1826+MS2131 1080P@60Hz 4路输入输出USB3.0采集
  • 通过ansible playbook创建azure 资源
  • 解决ubuntu服务器未使用空间的分配
  • c++复习_第一天(引用+小众考点)
  • c#,vb.net使用OleDb写入Excel异常:字段太小而不能接受所要添加的数据的数量
  • etcd:高可用,分布式的key-value存储系统
  • 鸿蒙OSUniApp 实现登录状态管理与持久化#三方框架 #Uniapp
  • 如何通过ES实现SQL风格的查询?
  • linux快速入门-VMware安装linux,配置静态ip,使用服务器连接工具连接,快照和克隆以及修改相关配置信息
  • 【机器学习基础】机器学习入门核心算法:逻辑回归(Decision Tree)
  • 第一章 LVS 负载均衡群集核心概念与体系架构
  • 计算机网络实验课(三)——直接使用数据构造以太网帧,打包并发送|使用SharpPcap库函数构造以太网帧,并发送出去
  • 哈希算法:原理、应用、安全演进与推荐
  • 学习路之PHP--easyswoole入门及文件热加载
  • 织梦dedecms arclist最新发布日期显示红色
  • Android 15 控制亮屏灭屏接口实现
  • WPF【11_2】WPF实战-重构与美化(Entity Framework)-示例
  • 数据仓库基础知识总结
  • Python-ArcGIS蒸散发组分解析与GPP估算技术
  • 数据中台(大数据平台)之数据仓库建设
  • LLM+RAG:文本分块处理策略