coduck CSP-J 模拟赛五补题报告

coduck CSP-J 模拟赛五补题报告

2023年10月6日

S08572

1.比赛分数

T1T2 AC,T3T4爆零,共二百分

2.比赛过程

T1T2共用两个半小时,之后没做出来T3和T4

3.题解报告

1.重复判断(repeat)

一道非常水的水题,直接做就行

 AC代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
using namespace std ;
string ans = "" ;
int main (){
//	freopen ( "repeat.in" , "r" , stdin ) ;
//	freopen ( "repeat.out" , "w" , stdout ) ;
	long long t ;
	cin >> t ;
	for ( int  i = 1 ; i <= t ; ++ i ) {
		string a , b ;
		cin >> a >> b ;
		long long lena = a.length();
		long long lenb = b.length();//求字符串长度
		if(lena % lenb != 0) {
			cout << "NO" << endl ;//这种情况肯定不行,就直接输出NO就行
		}
		else{
			long long len = lena / lenb ;
			for ( long long j = 1 ; j <= len ; ++ j){
				ans += b ;//累加器累加看看是不是
			}
			if ( ans == a ){
				cout << "YES" << endl ;//判断
			}
			else {
				cout << "NO" << endl ;
			}
		}
		ans = "" ;
	}
//	fclose ( stdin ) ;
//	fclose ( stdout ) ;
	return 0;
}
2.歪果仁学乘法(multiplication)

一道看起来非常难实际上想清楚思路就很简单的题

话不多说,上代码

#include <iostream>
#include <cstdio>
using namespace std ;
int main (){
//	freopen ( "multiplication.in" , "r" , stdin );
//	freopen ( "multiplication.out" , "w" , stdout );
	int a , b , ans , cnt1 = 0 , cnt2 = 0 ;
	cin >> a >> b ;
	while ( a != 0 ) {
		cnt1 += a % 10 ;        
		a /= 10 ;
	}
	while ( b != 0 ) {
		cnt2 += b % 10 ;
		b /= 10 ;
	}
	ans = cnt1 * cnt2 ;
	if ( b==10 || b==20 || b==30 || b==40 || b==50 || b==60 || b==70 || b==80 || b==90 || a==10 || a==20 || a==30 || a==40 || a==50 || a==60 || a==70 || a==80 || a==90) {
		cout << a * b ;
	}
	else {
		cout << ans ;
	}
//	fclose ( stdin ) ;
//	fclose ( stdout ) ;
	return 0 ;
}
3.去重求和(summation)

一道只需要找规律的题(我连这都没看出来还是太蒟蒻了

#include<bits/stdc++.h>
using namespace std;
const int N = 5e5 + 10;
typedef long long ll;
const int mod = 1e9 + 7;
int n, a[N];
map<int,int>mp;
int l[N], r[N];
int main() {
	cin >> n;
	for(int i = 1; i <= n; ++i) {
		cin >> a[i];
		mp[a[i]] = 1;
	}
	mp.clear();
	for(int i = 1; i <= n; ++i) {
		l[i] = mp[a[i]] + 1;//求每个点的pi
		mp[a[i]] = i;
	}
	ll ans = 0;
	for(int i = 1; i <= n; ++i) {
		ans += 1ll * a[i] * (i - l[i] + 1) % mod * (n - i + 1) % mod;
		ans %= mod;
	}
	cout << ans << endl;
	return 0;
} 
4.点集操作(point) 

代码:

说实话当我看到图论那两个字的时候就已经摆烂了

4.比赛总结

主要还有一部分心态问题在里面的,我应该调整一下心态

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

s08572

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值