給出定義i
<
j<
ki< j< k
i<
ji
a_ai
的子串行為三元組,求問序列中有多少個三元組。直接樹狀陣列維護以每個點為中心的前後各有多少,一遍統計答案。
#includeusing namespace std;
typedef long long ll;
const int inf=0x3f3f3f3f;
const ll inf=long_long_max;
const int n=3e4+7;
int a[n],b[n],tot;
int t[n];
int l[n],r[n];
int lowbit(int x)
void add(int x,int k)
int query(int x)
int main()
sort(b+1,b+1+n);
tot=unique(b+1,b+1+n)-(b+1);
for(int i=1;i<=n;i++)
a[i]=lower_bound(b+1,b+1+tot,a[i])-b;
for(int i=1;i<=n;i++)
memset(t,0,sizeof(t));
for(int i=n;i>=1;i--)
ll ans=0;
for(int i=1;i<=n;i++)
ans+=l[i]*r[i];
printf("%lld\n",ans);
return 0;
}
三元上公升子串行 洛谷p1637
erwin最近對一種叫 thair 的東西巨感興趣。在含有n個整數的序列a1,a2.an中,三個數被稱作 thair 當且僅當i求乙個序列中 thair 的個數。輸入格式 開始乙個正整數n,以後n個數a1 an。輸出格式 thair 的個數 輸入樣例 1 4 50 18 3 4 6 8 1415 1...
洛谷P1637 三元上公升子串行
p1637三元上公升子串行 提交 討論 題解 最新討論更多討論 題目描述 erwin最近對一種叫 thair 的東西巨感興趣。在含有n個整數的序列a1,a2.an中,三個數被稱作 thair 當且僅當i求乙個序列中 thair 的個數。輸入輸出格式 輸入格式 開始乙個正整數n,以後n個數a1 an。...
三元上公升子串行
首先,對於任意乙個選定的數aj而言 要求的是1 j 1中比aj小的數的個數 乘以j 1 n中比aj大的數的個數 求出數的個數可以直接使用樹狀陣列 最後直接統計結果就行了 但是,考慮到n的範圍很小 但是ai因此,如果不使用離散化的話,可能會炸空間 include include include inc...