这个思路过了样例但是15分,求dalao举出反例~
查看原帖
这个思路过了样例但是15分,求dalao举出反例~
956316
77Glorious楼主2024/8/27 21:19
#include <bits/stdc++.h>
using namespace std;
char c[1000010];
long long f[1000010];

int main()
{
	//f[i]表示前i个字符一共有多少个子串满足条件
	ios::sync_with_stdio(0);
	int n=0,p;
	cin>>p;
	while(cin>>c[++n]); n--;
	for(int i=1;i<=n;i++)
	{
		int t=c[i]-'0';//提取个位
		if(t%p!=0) f[i]=f[i-1];//除不尽就继承上一个 
		else f[i]=f[i-1]+i;//能除尽就是f[i-1]加上包含第i个数的连续子串
        /*
        如:
        1 
        2 2,1-2
        3 2,1-2
        4 2,1-2, 4,3-4,2-3-4,1-2-3-4
        2 2,1-2, 4,3-4,2-3-4,1-2-3-4, 4-2,3-4-2,2-3-4-2,1-2-3-4-2, 一共11个子串符合要求
        */
	}
	cout<<f[n];
}
2024/8/27 21:19
加载中...