朗格拉日計數 counter

2021-09-10 22:34:26 字數 904 閱讀 9489

在平面上以圓周等分排列著n個帶標號(標號為1~n)的點,你需要計算有多少個三元組(a,b,c),滿足a

分布順序為順時針的意思是,從標號為a的點出發,順時針在圓上遍歷一圈,標號為b的點先遍歷到,標號為c的點後遍歷到(a

第一行乙個整數n表示點數。

第二行n個整數表示乙個1~n的排列,按順時針順序描述圓上點的標號。

僅一行乙個整數表示答案

約定 20%的資料:n≤100n≤100

60%的資料:n≤5000n≤5000

100%的資料:3≤n≤2∗1053≤n≤2∗105

solution

好題,xiaoyao巨

顯然點的大小關係應為123 231 312

123很好統計

231=**1-321 這兩個也很好統計

312=3**-321  這也很好統計

就結束了

#include#include#include#include#include#include#define maxn 200005

using namespace std;

int n,s[maxn],a1[maxn],a2[maxn],b1[maxn],b2[maxn];

int tr[maxn];

void add(int i)

int ask(int i)

int main()

memset(tr,0,sizeof tr);

for(int i=n;i>=1;i--)

long long ans=0,tmp;

for(int i=1;i<=n;i++)

cout<

posted @

2019-01-11 19:03

liankewei 閱讀(

...)

編輯收藏

朗格拉日計數 counter

在平面上以圓周等分排列著n個帶標號 標號為1 n 的點,你需要計算有多少個三元組 a,b,c 滿足a 分布順序為順時針的意思是,從標號為a的點出發,順時針在圓上遍歷一圈,標號為b的點先遍歷到,標號為c的點後遍歷到 a 第一行乙個整數n表示點數。第二行n個整數表示乙個1 n的排列,按順時針順序描述圓上...

Foreign 朗格拉日計數 暴力

僅一行乙個整數表示答案。將乙個排列圍成乙個環,每個點有乙個值a i 若順時針三個點a b c 滿足 a a 我們不考慮環,從序列考慮,顯然可以統計的就是類似這種 123 231 312這個樣子的。我們考慮容斥,顯然123這種是可以直接計算的,231就是xx1 321,312就是3xx 321。顯然我...

Python學習 Counter 計數工具

counter是實現的dict的乙個子類,可以用來方便地計數。舉個計數的例子,需要統計乙個檔案中,每個單詞出現的次數。實現方法如下 普通青年 d with open etc passwd as f for line in f for word in line.strip split if word ...