SMU Spring 2023 Contest Round 3(2023年湘潭大学新生赛)
Problem A. 签到啦
从大到小排序,累加大于行李w时输出下标即可

int ans;
void solve()
{
cin >> n >> m;
int ans = 0;
vector<int> a(n);
for(int i = 0;i < n;i ++){
cin >> a[i];
}
sort(a.begin(), a.end());
reverse(a.begin(),a.end());
for(int i = 0;i < n; i++ ){
ans += a[i];
if(ans >= m){
cout << i + 1 << endl;
return;
}
}
}
Problem B. 熙巨打票
冷却时间小于操作时间时,实际上就等于操作时间乘以票数,大于操作时间时,假设操作时间4分钟,冷却时间10分钟,在两台上操作完后还需要等6分钟才能进行操作,6分钟后加上第一台操作完毕的时间刚好10分钟这时第二台又可以操作了,如此往复,票数是奇数时除以2就是要等待的次数,偶数时需减一次,因为最后一次出完后不需要再等待了.

void solve() {
int a,b,n;
cin >> a >> b >> n;
if(a <= b){
cout << b * n << endl;
return ;
}
else{
if(n & 1){
cout << b * n + (n>>1) * (a - b) << endl;
}
else{
cout << b * n + ((n >> 1) - 1) * (a - b) << endl;
}
}
}
Problem C. 三元分配
按题意我们可以先分成四种情况,即(以下奇数简称奇,偶数简称偶)奇奇奇,奇奇偶,奇偶偶,偶偶偶,其中奇奇奇和奇偶偶一定是不能配对的,偶偶偶是一定可以配对,所以我们要对奇奇偶这种情况再讨论,因为两个部门要凑成质数才可以进行配对,而两个奇数加起来是质数只能是两个1,且两个1加一个偶数是一定可以配对的,另外再讨论两个奇数与偶数配对成质数的情况即可,当偶数是0时,这时就变成了两个奇数配对了,此时要特判一下


bool f(int x){
if(x < 2)
return false;
if(x == 2)
return true;
for(int i = 2;i <= sqrt(x);i ++)
if(x % i == 0)
return false;
return true;
}
void solve()
{
cin >> n >> m >> k;
if((n + m + k) & 1){
cout << 'P' << endl;
return ;
}
if(n % 2 == 0 && m % 2 == 0 && k % 2 == 0){
cout << 'R' << endl;
return ;
}
if(n == 1 && m == 1 || n == 1 && k == 1 || m == 1 && k == 1){
cout << 'R' << endl;
return ;
}
if(f(n + m) && f(n + k) &&n != 0 || f(m + n) && f(m + k) && m != 0 || f(k + n) && f(k + m) && k != 0){
cout << 'R' << endl;
return ;
}
cout << 'P' << endl;
return ;
}
Problem D. "逆"天求和
哎,还特意查了一下逆元的公式啥的,最后发现这道题要做的话感觉又和逆元没啥关系
感兴趣的可以自己推到一下,就是说当p为质数时,其1到p-1的逆元都在1到p-1中且互不重复
所以我们直接1到p-1累加即可

void solve()
{
cin >> n;
int sum = 0;
for(int i = 1;i < n;i ++){
sum += i;
}
cout << sum << endl;
}
Problem E. 读中国数字
纯模拟,不想多说(


#include <bits/stdc++.h>
#define inf 0x3f3f3f3f
#define endl '\n'
#define int long long using namespace std; const int N = 1e5 + 10, mod = 1e9 +7; //typedef long long ll;
typedef pair<int,int> PII;
//queue<PII> q1;
//priority_queue <int,vector<int>,greater<int> > q2;
int n,m,t,k;
/*
*/
int ans;
void solve()
{
string num;
cin >> num;
if(num == "0"){
cout << num << endl;
return ;
}
string chinese = "";
string unit[] = {"", "T", "B", "K", "W", "Y"};
string digit[] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
int len = num.length();
int i = 0;
while (i < len) {
int j = len - i - 1;
int k = j % 4;
bool fw = false,fy = false;
if (num[i] == '0') {
int zeroCount = 0;
bool f = false;
while (i < len && num[i] == '0') {
i++;
if((len - i) == 8 && !fy){
chinese += "Y";
f = true;
fy = true;
}
if((len - i) == 4 && !f && !fw && chinese.back() != 'Y'){
chinese += "W";
f = true;
fw = true;
}
zeroCount++;
}
if (j == 4 && !f && !fw) {
chinese += "W";
} else if (j == 8 && !f && !fy) {
chinese += "Y";
}
if(zeroCount >= 1 && i != len && (len - i) != 4 && (len - i) != 8)
chinese += '0';
} else {
chinese += digit[num[i] - '0'] + unit[k];
if (j == 4 && !fw) {
chinese += "W";
fw = true;
} else if (j == 8 && !fy) {
chinese += "Y";
fy = true;
}
i++;
}
}
cout << chinese << endl;
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
int Ke_scholar = 1;
cin >> Ke_scholar ;
while(Ke_scholar--)
solve();
return 0;
}
Problem H. 我爱XTU
可以每次计算x,t,u的数量,用pair对其中两个的差进行一个存储,如果这个pair前面出现过,说明从前面到现在有加了x,t,u数量相同的子串,需要注意的当x,t,u数量相等的时候需要加一次,或者在最开始就往pair对里放一组{0,0}.


#include <bits/stdc++.h>
#define inf 0x3f3f3f3f
#define endl '\n'
#define int long long using namespace std; const int N = 1e5 + 10, mod = 1e9 +7; //typedef long long ll;
typedef pair<int,int> PII;
//queue<PII> q1;
//priority_queue <int,vector<int>,greater<int> > q2;
int n,m,t,k;
/*
*/
int ans;
void solve()
{
string s;
cin >> s;
ans = 0;
int x = 0, t = 0, u = 0;
map<PII, int> mp;
for(int i = 0;i < s.size();i ++){
if(s[i] == 'X')
x ++;
else if(s[i] == 'T')
t ++;
else
u ++;
int divx = x - t;
int divu = u - t;
if(x == t && t == u)
ans ++;
if(mp.count({divx,divu})){
ans += mp[{divx, divu}];
// cout << x << ' ' << t << ' ' << u << endl;
}
mp[{divx,divu}]++;
}
cout << ans << endl;
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
int Ke_scholar = 1;
cin >> Ke_scholar ;
while(Ke_scholar--)
solve();
return 0;
}
SMU Spring 2023 Contest Round 3(2023年湘潭大学新生赛)的更多相关文章
- contesthunter CH Round #64 - MFOI杯水题欢乐赛day1 solve
http://www.contesthunter.org/contest/CH Round %2364 - MFOI杯水题欢乐赛 day1/Solve Solve CH Round #64 - MFO ...
- 2015 Astar Contest - Round 3 题解
1001 数长方形 题目大意 平面内有N条平行于坐标轴的线段,且不会在端点处相交 问共形成多少个矩形 算法思路 枚举4条线段的全部组合.分别作为矩形四条边.推断是否合法 时间复杂度: O(N4) 代码 ...
- Contest Round #451 (Div. 2)F/Problemset 898F Restoring the Expression
题意: 有一个a+b=c的等式,去掉两个符号,把三个数连在一起得到一个数 给出这个数,要求还原等式,length <= 1e6 三个数不能含有前导0,保证有解 解法: 铁头过题法,分类然后各种判 ...
- CH Round #55 - Streaming #6 (NOIP模拟赛day2)解题报告
T1九九归一 描述 萌蛋在练习模n意义下的乘法时发现,总有一些数,在自乘若干次以后,会变成1.例如n=7,那么5×5 mod 7=4,4×5 mod 7=6,6×5 mod 7=2,2×5 mod 7 ...
- CH Round #54 - Streaming #5 (NOIP模拟赛Day1)解题报告
最近参加了很多CH上的比赛呢~Rating--了..题目各种跪烂.各种膜拜大神OTZZZ T1珠 描述 萌蛋有n颗珠子,每一颗珠子都写有一个数字.萌蛋把它们用线串成了环.我们称一个数字串是有趣的,当且 ...
- 队爷的讲学计划 CH Round #59 - OrzCC杯NOIP模拟赛day1
题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的讲学计划 题解:刚开始理解题意理解了好半天,然后发 ...
- 队爷的Au Plan CH Round #59 - OrzCC杯NOIP模拟赛day1
题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的Au%20Plan 题解:看了题之后觉得肯定是DP ...
- 队爷的新书 CH Round #59 - OrzCC杯NOIP模拟赛day1
题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的新书 题解:看到这题就想到了 poetize 的封 ...
- CH Round #58 - OrzCC杯noip模拟赛day2
A:颜色问题 题目:http://ch.ezoj.tk/contest/CH%20Round%20%2358%20-%20OrzCC杯noip模拟赛day2/颜色问题 题解:算一下每个仆人到它的目的地 ...
- CH Round #49 - Streaming #4 (NOIP模拟赛Day2)
A.二叉树的的根 题目:http://www.contesthunter.org/contest/CH%20Round%20%2349%20-%20Streaming%20%234%20(NOIP 模 ...
随机推荐
- 基恩士PLC数据 转 Modbus RTU TCP项目案例
1 案例说明 1. 设置网关采集基恩士PLC数据 2. 把采集的数据转成Modbus协议转发给其他系统. var code = "244226f8-1eed-48e4 ...
- 云服务器通过内网穿透的方式ssh访问内网服务器
云服务器通过内网穿透的方式ssh访问内网服务器 背景 买了一台云服务器,了解到可以通过外部服务器连接到公司内部服务器. 为了加快办公的效率,配置了一下. 以Ubuntu为例. 原文(有删改):http ...
- Linux Driver : i2c-gpio
# Linux Driver : i2c-gpio https://www.cnblogs.com/haoxing990/p/4718834.html https://blog.csdn.net/ji ...
- 3562-Qt工程编译说明、GPU核心使用说明
- 从 Dict 转到 Dataclass
从 dataclass 转到 dict 可以用 asdict 函数 , 反向转换的时候 就比较困难. 不用外部的包的情况下, 提供一种思路. def mask(v, d): #v 是 dict 数据, ...
- Solo 开发者周刊 (第2期):一站式解决各类办公绘图问题
这里会整合 Solo 社区每周推广内容.产品模块或活动投稿,每周五发布.在这期周刊中,我们将深入探讨开源软件产品的开发旅程,分享来自一线独立开发者的经验和见解.本杂志开源,欢迎投稿. 好文推荐 重新思 ...
- 可视化—gojs 超多超实用经验分享(三)
目录 32.go.Palette 一排放两个 33.go.Palette 基本用法 34.创建自己指向自己的连线 35.设置不同的 groupTemplate 和 linkTemplate 36.监听 ...
- django 中的collectstatic
django 中的collectstatic 在Django中,"collectstatic"是一个管理命令,用于收集和复制项目中的静态文件到一个指定的静态文件目录,以便于部署. ...
- [oeasy]python0016_在vim中直接运行python程序
回忆上次内容 上次 置换 esc 和 caps lock 任何操作 都可以在 不移动 手腕的状态下完成了 每次都要 退出vim编辑器 才能 在shell中 运行python程序 有点麻烦 想要 不退出 ...
- Django 解决跨域访问API失败问题
解决跨域访问API失败问题 By:授客 QQ:103355122 实践环境 Win 10 Python 3.5.4 Django-2.0.13.tar.gz 官方下载地址: https://w ...