社区讨论
这个思路过了样例但是15分,求dalao举出反例~
P10262[GESP样题 六级] 亲朋数参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @m0cgg6ac
- 此快照首次捕获于
- 2024/08/27 21:20 2 年前
- 此快照最后确认于
- 2024/08/27 21:22 2 年前
CPP
#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];
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...