2021.8.14提高B组模拟6T3 + P7527 [USACO21OPEN] United Cows of Farmer John (树状数组)
Posted SSL_LKJ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021.8.14提高B组模拟6T3 + P7527 [USACO21OPEN] United Cows of Farmer John (树状数组)相关的知识,希望对你有一定的参考价值。
United Cows of Farmer John
解题思路
树状数组乱糊
AC代码
#include<cstdio>
#include<cstring>
using namespace std;
long long n,ans,a[200005],f[200005],t[200005];//答案要long long
long long lowbit(long long x)//处理
return x&(-x);
void update(long long x,long long y)//修改
for(long long i=x;i<=n;i+=lowbit(i))t[i]+=y;
long long query(long long x)//查询
long long sum=0;
for(long long i=x;i;i-=lowbit(i))sum+=t[i];
return sum;
int main()
scanf("%lld",&n);
for(long long i=1;i<=n;i++)
scanf("%lld",&a[i]);
f[i]=n+1;//初值
for(long long i=n;i>=1;i--)//枚举起点
ans+=query(f[a[i]]-1);
update(f[a[i]],-1);//修改区间的数的种类数
update(i,1);
f[a[i]]=i; //修改位置
printf("%lld",ans);
return 0;
谢谢
以上是关于2021.8.14提高B组模拟6T3 + P7527 [USACO21OPEN] United Cows of Farmer John (树状数组)的主要内容,如果未能解决你的问题,请参考以下文章
2021.8.14提高B组模拟6T2 + P7557 [USACO21OPEN] Acowdemia (二分)
2021.8.14提高B组模拟6T4 + P7555 [USACO21OPEN] Maze Tac Toe (dfs)
2021.8.14提高B组模拟6T4 + P7555 [USACO21OPEN] Maze Tac Toe (dfs)