当前位置: 首页 > 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;
} 

相关文章:

  • 【NLP基础知识系列课程-Tokenizer的前世今生第四课】生物信息中的 Tokenizer 策略:如何切开一段基因?
  • 【NLP基础知识系列课程-Tokenizer的前世今生第五课】从静态到可学:Tokenizer 的自适应演化之路
  • C/C++的OpenCV的锐化
  • ojs导入显示空白页错误信息
  • Ubuntu 下搭建ESP32 ESP-IDF开发环境,并在windows下用VSCode通过SSH登录Ubuntu开发ESP32应用
  • 【android bluetooth 协议分析 02】【bluetooth hal 层详解 6】【高通蓝牙hal主要流程介绍-下】
  • Jmeter一些元件使用的详细记录
  • 详解MYSQL索引失效问题排查
  • 如何描述BUG
  • ubuntu22.04 安装 SecureCRT8.7.3
  • 5.0.7 TabControl的使用
  • Java+Playwright自动化-2-环境准备与搭建-基于Maven
  • ViewModel
  • 设计模式系列(06):抽象工厂模式(Abstract Factory)
  • Vue组件化
  • 用AxumStatusCode细化Rust Web标准格式响应
  • [Vue]浅浅了解vue3响应式的基本原理
  • Jenkins实践(9):pipeline构建历史展示包名和各阶段间传递参数
  • 使用 scikit-learn 库对乌克兰冲突事件数据集进行多维度分类分析
  • MATLAB实现音频参数均衡器(PEQ)
  • 网站不换域名换空间/seo是什么地方
  • 网站建设管理工作小结/网络营销的核心
  • 网站空间服务器供应商/青岛seo博客
  • 用dz做网站怎么设置数据库/什么是搜索引擎竞价推广
  • 宁波其它区低价企业网站搭建哪家好/站长工具ip地址
  • 烟台房产网站建设/如何在百度推广自己