悬赏5元代码求调,思路就是数位dp
查看原帖
悬赏5元代码求调,思路就是数位dp
449051
cccyyyxxx楼主2023/1/15 16:50
#include<bits/stdc++.h>
#define Mod 1000000007
using namespace std;
long long n,dp[100005][2];
char s[100005];
int main()
{
	scanf("%s",&s+1);
	n=strlen(s+1);
	dp[0][1]=1;
	for(int i=1;i<=n;i++)
	{
		if(s[i]=='1')
		{
			dp[i][0]=(dp[i-1][1]+dp[i-1][0]*3)%Mod;
			dp[i][1]=(dp[i-1][1]*2)%Mod;
		}
		else
		{
			dp[i][0]=(dp[i-1][0]*3)%Mod;
			dp[i][1]=dp[i-1][1]%Mod;
		}
	}
	cout<<(dp[n][0]+dp[n][1])%Mod;
	return 0;
}
2023/1/15 16:50
加载中...