2018第九屆藍橋杯C C B組 遞增三元組

2021-10-08 05:30:00 字數 1845 閱讀 2448

時/空限制:1s / 64mb

給定三個整數陣列

a=[a1,a2,…an]a=[a1,a2,…an],

b=[b1,b2,…bn]b=[b1,b2,…bn],

c=[c1,c2,…cn]c=[c1,c2,…cn],

請你統計有多少個三元組 (i,j,k)(i,j,k) 滿足:

1≤i,j,k≤n1≤i,j,k≤n

ai輸入格式

第一行包含乙個整數 nn。

第二行包含 nn 個整數 a1,a2,…ana1,a2,…an。

第三行包含 nn 個整數 b1,b2,…bnb1,b2,…bn。

第四行包含 nn 個整數 c1,c2,…cnc1,c2,…cn。

輸出格式

乙個整數表示答案。

資料範圍

1≤n≤1051≤n≤105,

0≤ai,bi,ci≤1050≤ai,bi,ci≤105

輸入樣例:

3

1 1 1

2 2 2

3 3 3

輸出樣例:

27
思路:列舉或者二分。

二分:

#include#include#define ll long long

using namespace std;

const int n = 100000 + 10;

int a[n],b[n],c[n];

int n;

int find2(int x, int y)//大於於x最小處

if(y[r] <= x) return 0;

return n - r + 1;

}int find1(int x, int y)//小於x最大處

if(y[l] >= x) return 0;

return l;

}int main()

{ cin>>n;

for(int i=1; i<=n; i++) cin>>a[i];

for(int i=1; i<=n; i++) cin>>b[i];

for(int i=1; i<=n; i++) cin>>c[i];

sort(a+1, a+n+1);

sort(b+1, b+n+1);

sort(c+1, c+n+1);

long long ans = 0;

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

{int x = find1(b[i], a);

int y = find2(b[i], c);

// cout列舉:

#includeusing namespace std;

const int maxn=1e5+10;

typedef long long ll;

int a[maxn];

int b[maxn];

int c[maxn];

int main()

{ int n;

ll ans=0;

cin>>n;

for(int i=0;i>a[i];

for(int i=0;i>b[i];

for(int i=0;i>c[i];

sort(a,a+n);

sort(b,b+n);

sort(c,c+n);

ll cnt1=0,cnt2=0;

for(int i=0;i令人疑惑的是列舉竟然比二分快

參加第九屆藍橋杯C C B組

寫這篇部落格的目的不是要把所有題目的題意給詳細分析 點出思路 給出答案。只是為了要寫點感受。實在不行,你可以用計算機的時鐘日曆,如果自己做錯了,有沒有很驚喜 意外。2 明碼,話說是9的9次方的值 這個把結果算成是81的同志,你應該清楚明白,不管你當時是緊張,還是粗心大意,或是當推出是 9的9次方 時...

2018第九屆藍橋杯C C B組國賽題目與題解

小明買了塊高階大氣上檔次的電子手錶,他正準備調時間呢。在 m78 星雲,時間的計量單位和地球上不同,m78 星雲的乙個小時有 n 分鐘。大家都知道,手錶只有乙個按鈕可以把當前的數加一。在調分鐘的時候,如果當前顯示的數是 0 那麼按一下按鈕就會變成 1,再按一次變成 2 如果當前的數是 n 1,按一次...

第九屆藍橋杯決賽大學A組

已知三角形三個頂點在直角座標系下的座標分別為 2.3,2.5 6.4,3.1 5.1,7.2 求該三角形的面積。注意,要提交的是乙個小數形式表示的浮點數。要求精確到小數後3位,如不足3位,需要補零。答案 include include using namespace std struct dian ...