| 比赛 |
csp2025模拟练习1 |
评测结果 |
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT |
| 题目名称 |
轻重数字 |
最终得分 |
0 |
| 用户昵称 |
梦那边的美好ME |
运行时间 |
199.935 s |
| 代码语言 |
C++ |
内存使用 |
6.46 MiB |
| 提交时间 |
2025-10-28 10:25:34 |
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const ll MOD=1000003;
ll n;
ll a[510000],dp[510000];
bool solve(ll a[],ll l,ll r){
unordered_map<ll,ll> m;
for (int i=l;i<=r;i++){
m[a[i]]++;
}
for (int i=l;i<r;i++){
ll t1=(m[a[i]]>1)?1:0;
ll t2=(m[a[i+1]]>1)?1:0;
if (t1==t2){
return 0;
}
}
return 1;
}
int main(){
freopen("digit.in","r",stdin);
freopen("digit.out","w",stdout);
ios_base::sync_with_stdio(0);cin.tie(0);
cin>>n;
for (int i=1;i<=n;i++){
cin>>a[i];
}
dp[0]=1;
for (int i=1;i<=n;i++){
for (int j=1;j<=i;j++){
if (solve(a,j,i)){
dp[i]=(dp[i]+dp[j-1])%MOD;
}
}
}
cout<<dp[n]<<endl;
return 0;
}