其他分享
首页 > 其他分享> > 暑假集训7月19日(距离结训赛27天)

暑假集训7月19日(距离结训赛27天)

作者:互联网

CF补题:
B题:只想到相隔偶数就算,但是没想好用什么方法计算,每一个都遍历肯定超啊
原来可以和滚动优化一样,只记录上一次的位置
#include <bits/stdc++.h> using namespace std; const int N=1e5+10; int a[N],pre[N],ans[N]; signed main() { int t; scanf("%d",&t); while (t--) { int n; scanf("%d",&n); memset(pre,0,sizeof pre); memset(ans,0,sizeof ans); for (int i=1;i<=n;i++) scanf("%d",&a[i]); for (int i=1;i<=n;i++) if (!pre[a[i]]||(i-pre[a[i]])%2==1) pre[a[i]]=i,ans[a[i]]++; for (int i=1;i<=n;i++) printf("%d ",ans[i]); printf("\n"); } return 0; }

 

标签:pre,27,19,scanf,memset,int,结训,ans,sizeof
来源: https://www.cnblogs.com/Mercury1988/p/16492763.html