CF1527C Sequence Pair Weight
CF傳送門
題目大意:給定一個長度為nnn的序列aaa,求∑1≤l<r≤n∑l≤x<y≤r[ax=ay]\sum_{1\le l\lt r\le n}\sum_{l\le x\lt y\le r}[a_x=a_y]∑1≤l<r≤n?∑l≤x<y≤r?[ax?=ay?],即求每個連續區間中相等數對個數之和。
思路:對于這種計數問題,如果直接求不好計算,一般求每個值對答案的貢獻。
首先考慮對于ai=aj(i<j)a_i=a_j(i<j)ai?=aj?(i<j),那么其對答案產生的貢獻就是i×(n?j+1)i\times(n-j+1)i×(n?j+1),那對于ai=aj=ak(i<j<k)a_i=a_j=a_k(i<j<k)ai?=aj?=ak?(i<j<k),其對答案多產生的貢獻顯然是(i+j)×(n?k+1)(i+j)\times(n-k+1)(i+j)×(n?k+1)
那么我們可以維護一個mapmapmap,
ans=∑i=1nmap[a[i]]×(n?i+1)ans=\sum_{i=1}^nmap[a[i]]\times(n-i+1)ans=∑i=1n?map[a[i]]×(n?i+1)
每次更新map[a[i]]+=imap[a[i]]+=imap[a[i]]+=i來維護前綴和
PSPSPS:記得開longlonglonglonglonglong!!!
AC代碼:
總結
以上是生活随笔為你收集整理的CF1527C Sequence Pair Weight的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一键非自锁开关电路设计
- 下一篇: cat实时监控-入门demo