UPC 6358 庭師的利刃

2021-08-22 05:55:14 字數 910 閱讀 5464

時間限制: 1 sec  記憶體限制: 128 mb

題目描述

作為白玉樓的庭師,妖夢雖然不會n刀流,但是卻領悟了生命二刀流。然而我也是個劍的收藏者,家裡屯著n把劍,每一把劍都有乙個靈魂值a[i],由於一些劍之間可能有共鳴,所以我需要兩把契合度最高的劍。據妖夢所說,兩把編號為i,j劍的契合度為a[i] and a[j]。如何深得劍的靈魂呢?(即求最大值)

輸入第一行乙個整數n,代表藏劍數。

第二行n個整數,第i個整數表示a[i]。

輸出輸出包含乙個正整數,最好的兩把劍的契合度。

樣例輸入

12 5 6 3 1

樣例輸出

提示對於40%的資料 n ≤ 1,000

對於100%的資料 n ≤ 1,000,000,0 ≤ a[i] < 2^31

從i = 31開始遍歷,記錄二進位制每一位1的個數,如果大於二則加到結果裡面

#include typedef long long int ll;

ll arr[1000005], ans;

int main ()

printf("%d\n", ans);

return 0;

}

還有另一種做法:

首先求出最大值二進位制位數長度,掃瞄區間,如果當前位有兩個以上的數為1,那麼縮小下一次掃瞄的區間

#includeusing namespace std;

typedef long long ll;

ll cmp(ll a,ll b)

int main()

}if(td != tu) /// 表示至少有兩個

}printf("%lld\n", ans);

return 0;

}

UPC6358 庭師的利刃

時間限制 1 sec 記憶體限制 128 mb 提交 651 解決 117 提交 狀態 討論版 命題人 admin 題目描述 作為白玉樓的庭師,妖夢雖然不會n刀流,但是卻領悟了生命二刀流。然而我也是個劍的收藏者,家裡屯著n把劍,每一把劍都有乙個靈魂值a i 由於一些劍之間可能有共鳴,所以我需要兩把契...

upc 6358庭師的利刃

時間限制 1 sec 記憶體限制 128 mb 提交 729 解決 145 提交 狀態 討論版 命題人 admin 題目描述 作為白玉樓的庭師,妖夢雖然不會n刀流,但是卻領悟了生命二刀流。然而我也是個劍的收藏者,家裡屯著n把劍,每一把劍都有乙個靈魂值a i 由於一些劍之間可能有共鳴,所以我需要兩把契...

庭師的利刃(暴力)

意思很明白,就是給你一堆數字給你。讓你求出 ai aj 的最大值。提供兩種方法,或者說是想法吧。首先先排一下序。第一種網上方法 ans只要加上某一位1匹配數 2 不斷更新o 31 n 第二種自己方法 不斷更新上限和下限不斷壓縮來找出答案。o n log n 差不多吧 includeusing nam...