CSP-J复赛 模拟题5补题报告

CSP-J复赛模拟题5补题报告

2023.10.5 Thu
S10473吴启瀚

1. 比赛报告

共4题, 第1题20分, 第2题30分, 第3题20分, 第4题0分, 共70分

2. 比赛过程

第一题 重复判断, 挺简单, 15分钟直接出代码
第二题 歪果仁学乘法, 更简单, 5分钟编完
第三题 去重求和, 20分钟想不出思路, 直接暴力, 放上大数据, 5分钟没运算完
第四题 点集操作, 没有思路, 暴力不出来

3. 题解

3.1 重复判断 repeat

3.1.1 题目大意:

判断字符串a是否是b重复得到

3.1.2 当时思路:

从0每次向后找b.size()位置搜索b, 搜索不到输出NO

3.1.3 题目解析:

用两个指针同时遍历, iii遍历a, jjj遍历b, 如果j到头, 调到开头继续比较
如果ai!=bja_i != b_jai!=bj, 不是b重复得到的, 遍历完没有多余字符才是重复字符串

3.1.4 AC代码:

#include <iostream>
#include <cstdio>
#include <string>
using namespace std;
int l1, l2;
bool f;
string a, b;
int main(){
   
   
	int t;
	scanf("%d", &t);
	while(t--){
   
   
		cin >> a >> b;
		f = 0;
		l1 = a.size();
		l2 = b.size();
		for(int i = 0, j = 0;i < l1;i++){
   
   
			if(a[i] != b[j]){
   
   
				f = 1;
				break;
			}
			j = (j + 1) % l2;
		}
		if(!f)	printf("YES\n");
		else	printf("NO\n");
	}
	return 0;
}

3.2 歪果仁学乘法 multiplication

3.2.1 题目大意:

有一种不用乘法表也能计算乘法的方式, 对于a×ba \times ba×b;

  1. 将a和b的每一位上的数码画成线, 不同位之间分隔开

  2. a和b的方向垂直画出

  3. 数出每个方向上交点的个数, 即是c对应位置上的数码

3.2.2 当时思路:

a×ba \times ba×b各位分离, 累计求和

3.2.3 题目解析:

将a和b各位分离, 将两个分离数组每位加起来, 超过十进位, 累计求和

3.2.4 AC代码:

#include <iostream>
#include <cstdio>
using namespace std;
int a[10], b
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值