首页 > 其他分享 >【CF1527C】Sequence Pair Weight

【CF1527C】Sequence Pair Weight

时间:2023-09-09 09:23:27浏览次数:43  
标签:begin le end Weight CF1527C sum Pair dct ll

题目大意:

给出一个长度为\(n(1\le n\le 10^{5})\)的序列\(a_1,a_2,...,a_n\),计算\(\sum_{1\le l<r\le n}\sum_{l\le i<j\le r}[a_i=a_j]\)


\(\sum_{1\le l<r\le n}\sum_{l\le i<j\le r}[a_i=a_j]=\)

\(\sum_{1\le i<j\le n}[a_i=a_j]\times i\times(n-j+1)=\)

\(\sum_{j=1}^{n}\{(n-j+1)\times \sum_{1\le i<j}[a_i=a_j]\times i\}=\)

\(\sum_{x}\sum_{a_j=x}\{(n-j+1)\times \sum_{1\le i<j,a_i=x}i\}\)

对于每种不同的数开一个vector,将其位置从小到大储存在其对应的vector中。\(\sum_{1\le i<j,a_i=x}i\)的值可以通过前缀和求得。枚举\(x\)和\(j\)的值,即可计算出题目的答案。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,a[100000+10];
vector<ll> dct,pos[100000+10];
ll query(ll x){
	return lower_bound(dct.begin(),dct.end(),x)-dct.begin()+1;
}
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	int T;
	cin >> T;
	while(T--){
		ll ans=0;
		cin >> n;
		dct.clear();
		for(ll i=1;i<=n;i++)pos[i].clear();
		for(ll i=1;i<=n;i++)cin >> a[i],dct.push_back(a[i]);
		sort(dct.begin(),dct.end());
		dct.erase(unique(dct.begin(),dct.end()),dct.end());
		for(ll i=1;i<=n;i++)pos[query(a[i])].push_back(i);
		for(ll i=1;i<=dct.size();i++){
			ll pre=0;
			for(ll j=0;j<pos[i].size();j++){
				ans+=pre*(n-pos[i][j]+1);
				pre+=pos[i][j];
			}
		}
		cout << ans << endl;
	}
	return 0;
}

标签:begin,le,end,Weight,CF1527C,sum,Pair,dct,ll
From: https://www.cnblogs.com/ningziang/p/17688907.html

相关文章

  • All Pairs Maximum Flow题解
    前置知识:1.P3376【模板】网络最大流2.P4897【模板】最小割树(Gomory-HuTree)Ebola有一句很著名的话如果你乱搞过了我请你抽烟那么这道题肯定不能普通的dinic直接水过去,不然就不是紫题了,那么直接祭出最小割树,复杂度\(O(Tn^3m)\),但是因为dinic跑不满,所以是可以过的。......
  • 享元模式(flyweight)
    享元模式(flyweight)1、作用一些对象在使用一次后就可以销毁了,比如画一个圈,这个对象调用draw()函数后,这个对象就没有作用,除非再次画相同的圈。但是在应用中需要画很多圈,如果每次画一次圈都构造一个对象,这样内存消耗很多,构造销毁也很费时,这个时候就可以考虑一下享元模式,这样可以节......
  • 1360C - Similar Pairs
    C.SimilarPairshttps://codeforces.com/problemset/problem/1360/C"""思路:1.因为n为偶数,所以偶数如果有偶数个的话,那么奇数也有偶数个,正好可以两两配对2.如果偶数为奇数个,那么奇数也是有奇数个,内部消化后多一个奇数和偶数3.剩下的奇数和偶数按相差是1计算,如......
  • Flyweight Pattern —— Creational Class
    享元模式在主流的标准里是放到结构大类下的,但是我感觉这个模式的最终作用也是为了获取一个类,所以我将其划分到创建大类下。WhatisFlyweightPatternFlyweight是指轻量级的。享元模式旨在支持大量细粒度的对象共享,以减少内存消耗。该模式通过共享相似对象的部分状态,来减少对......
  • Minimum Edge Weight Equilibrium Queries in a Tree
    MinimumEdgeWeightEquilibriumQueriesinaTreeThereisanundirectedtreewith n nodeslabeledfrom 0 to n-1.Youaregiventheinteger n anda2Dintegerarrayedgesoflength n-1,where edges[i]=[ui,vi,wi] indicatesthatthereisaned......
  • [CF1599A] Weights
    题目描述Youaregivenanarray$A$oflength$N$weightsofmasses$A_1$,$A_2$...$A_N$.Notwoweightshavethesamemass.Youcanputeveryweightononesideofthebalance(leftorright).Youdon'thavetoputweightsinorder$A_1$......
  • [ABC318D] General Weighted Max Matching 题解
    [ABC318D]GeneralWeightedMaxMatching题解题意  给定无向有权完全图,求最大权匹配。思路分析  注意到\(n\le16\),我考虑状压DP。  设当前点集\(S\)中最大权匹配的答案是\(f_S\),我们考虑\(S\)中“最后”一个点\(p\)(这里的“最后”一个点是指,在状压表示状态......
  • MySQL 主从自动修复工具"pt-slave-repair"
    工具下载:https://github.com/hcymysql/pt-slave-repairpt-slave-repair工具简介:MySQL主从复制作为一种常见的数据同步方式,有时候会出现同步错误导致同步中断的情况。手动修复这些同步错误通常需要耗费不少时间和精力,并且对于不熟悉MySQL复制的人来说比较困难。pt-slave-rep......
  • 论文解读(IW-Fit)《Better Fine-Tuning via Instance Weighting for Text Classificatio
    Note:[wechat:Y466551|可加勿骚扰,付费咨询]论文信息论文标题:BetterFine-TuningviaInstanceWeightingforTextClassification论文作者:论文来源:2021ACL论文地址:download 论文代码:download视屏讲解:click1介绍出发点:域适应一类方法是对预先训练好的模型参数进行微......
  • 【刷题笔记】24. Swap Nodes in Pairs
    题目Givenalinkedlist,swapeverytwoadjacentnodesandreturnitshead.Youmaynotmodifythevaluesinthelist'snodes,onlynodesitselfmaybechanged.Example:Given1->2->3->4,youshouldreturnthelistas2->1->4->3.题目......