給出定義i
<
j<
ki< j< k
i<
ji a_ai 的子串行為三元組,求問序列中有多少個三元組。直接樹狀陣列維護以每個點為中心的前後各有多少,一遍統計答案。 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; } 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三元上公升子串行 提交 討論 題解 最新討論更多討論 題目描述 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...#includeusing namespace std;
三元上公升子串行 洛谷p1637
洛谷P1637 三元上公升子串行
三元上公升子串行