网站开发多少钱seo引擎优化服务
暴力解答,肯定超时,因为我刚开始把所有答案,存到了ans这个vector里面了,然后进行枚举情况,后面发现因为这个阶数很高的时候,就会直接炸内存,所以我直接选择了在dfs里面进行统计答案,我是纯暴力,没有啥优化思路。
我觉得你们可以试试,这个算贡献优化一下,或者枚举这么多优化优化,或者看我暴力把所有情况观察观察,看有没有啥规律或者潜在的计数优化地方。我没看出来,我比较菜,只会暴力。
只能拿十三分,纯暴力。
#include<bits/stdc++.h>
using namespace std;
const int maxn=2e5+100;
const int mod=998244353;
vector<vector<int>>ans;
vector<int> temp;
int n,m;
int a[maxn];
int sum=0;
int get_num(vector<int> v)
{set<vector<int>>s;for(int i=0;i<v.size();i++){for(int j=i;j<v.size();j++){vector<int>te;for(int k=i;k<=j;k++){te.push_back(v[k]);}s.insert(te);}}return s.size()%mod;
}
void dfs(int x)
{if(x==n+1){sum=(sum+get_num(temp))%mod;return;}for(int i=1;i<=m;i++){temp.push_back(m*a[x]+i);dfs(x+1);temp.pop_back();}
}void solve() {cin>>n>>m;sum=0;for(int i=1;i<=n;i++) cin>>a[i];dfs(1);cout<<sum%mod<<"\n";ans.clear();
}
signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int T;T=1;cin>>T;while(T--){solve();}
}