挺简单的一道题。
要想使 \(\sum\limits^k_{i=1}p_i\) 最小,很明显的,前 \(k\) 个数必须为 \(1\sim k\)。设 \(c_i\) 为 \(i\) 在 \(p\) 里出现的位置,则答案为 \(\sum\limits^{k}_{i=1}[c_i>k]\)。
#include<cstdio>
int t;
int n,k;
int a[110],c[110];
int ans;
int main()
{
scanf("%d",&t);
while(t--)
{
ans=0;
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
c[a[i]]=i;
}
for(int i=1;i<=k;i++)
if(c[i]>k) ans++;
printf("%d\n",ans);
}
return 0;
}
标签:limits,CF1712A,题解,sum,int,110,ans
From: https://www.cnblogs.com/osfly/p/17657956.html