专栏文章

题解:B4185 [中山市赛 2024] 倍数子串

B4185题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miq47m8u
此快照首次捕获于
2025/12/03 22:41
3 个月前
此快照最后确认于
2025/12/03 22:41
3 个月前
查看原文

B4185 [中山市赛 2024] 倍数子串

思路:

看样例:04320
先看04:以04或4为结尾的连续子串有
04,4
再看43:以43或3为结尾的连续子串有
43?
实际上什么也没有
接着看32:以32或2为结尾的连续子串有
32,432,0432
最后再看20:以20或0为结尾的连续子串有
0,20,320,4320,04320
好的就是十个直接上代码
别忘了开头的0
别忘了开头的0
别忘了开头的0
重要的事说三遍
大家应该有个思路了

代码

CPP
#include <bits/stdc++.h>
using namespace std;
#define int long long
string s;
int n,ans=0;
signed main()
{
    ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin>>s;
	n=s.size();
	int s0=s[0]-'0';
	if(s0%4==0||s0%5==0) ans++;
	for(int i=0;i<=n-2;i++)
	{
		int t=s[i]-'0',o=s[i+1]-'0',sum;
		sum=t*10+o;
		if(o%4==0||o%5==0) ans++;
		if(sum%4==0||sum%5==0) ans+=i+1;
	}
	cout<<ans;
	return 0;
}

OK🆗就这样了
第一次写题解 还不太会 不喜勿喷

评论

0 条评论,欢迎与作者交流。

正在加载评论...