@2345安全卫士 那正解思路是什么?
我认为,由于 c_i 只有 100 种可能,那么就分别模拟一下存在的 c_i 就好
1 个赞
毕竟你的代码才 O(n)
1 个赞
yes
1 个赞
o我知道了
1 个赞
能不能给解决方案
1 个赞
等一下现在还是RE:
#include<bits/stdc++.h>
#define I using
#define AK namespace
#define IOI std
#define i_ak return
#define ioi 0
I AK IOI;
int t,n,k;
int main(){
//freopen("","r",stdin);
//freopen("","w",stdout);
cin>>t;
while(t--){
int a[10005],sum[10005],s=INT_MAX,id,l,r,ans,num;
bool flag[105];
memset(flag,0,sizeof flag);
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>a[i];
if(!flag[a[i]])sum[++num]=a[i],flag[a[i]]=1;
}
for(int j=1;j<=num;j++){
ans=0,l=0,r=0;
for(int i=1;i<=n;i++){
if(!l&&a[i]!=sum[j])l=i;
if(l&&a[i]==sum[j])r=i;
if(l&&r){
int cnt=r-l;
ans+=ceil(cnt*1.0/k);
l=0,r=0;
}
}
if(l&&!r)ans+=ceil((n-l+1)*1.0/k);
s=min(s,ans);
}
cout<<s<<endl;
}
i_ak ioi;
}
ok【等一下我去【数据删除】一下】
? 你去干什么?
好了
为什么RE?
num没初始化
o谢谢
因为我在帮你的时候,发了一句
我看看