区间DP
原理:余数相加
题解:有点像背包问题,对于每个数字要么选要么不选,用dp全部枚举出来,计算可以被3整除的个数。
#include<iostream>
#include<queue>
#include<algorithm>
#include<stack>
#include<cstring>
#include<string>
#include<cstdio>
#include<set>
#include<vector>
#include<cmath>
using namespace std;
const int N=2e6+10;
typedef long long ll;
char vis[20000];
char a[20000];
ll dp[20000][5];//保存从0到i上,余数为0,1,2的子序列数目
int ans;
ll mod=1e9+7