時/空限制: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 ...