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