站外题求助
  • 板块题目总版
  • 楼主UT_MC_wuming
  • 当前回复4
  • 已保存回复4
  • 发布时间2023/8/4 08:35
  • 上次更新2023/11/3 06:02:02
查看原帖
站外题求助
383781
UT_MC_wuming楼主2023/8/4 08:35

题目: 求长度为n的01序列,且其中不含111或者101这样串的个数对10007取模的值。

正解范围: 100%的数据,n<=10^18

下面是自己写的+拿Claude调的代码 但是无论怎么改输入12345678输出总是8102,正解是8766

#include <bits/stdc++.h>
using namespace std;
long long n, dp[100000005];//暂定范围,反正这个范围肯定不够,等到转移方程写好了再改
const int mod = 10007;
int main() {
	cin >> n;
	dp[0] = 1, dp[1] = 2, dp[2] = 4,dp[3]=6;//4->8,5->14,6->24,7->40
	//dp[0]=1(可以从dp[4]推过来)
	for (int i=4; i <10006;i++) {
		dp[i] = (dp[i - 1] + dp[i - 3] + dp[i - 4])%mod;
	}cout << dp[n%10006];
	//for (int i = 0; i <= n; i++)cout << dp[i] << " ";
	return 0;
}
2023/8/4 08:35
加载中...