題意:給定n個數(1<=n<=1e5)ai(1<=ai<=1e9),現在在原陣列種新增最多3個數(範圍為1到1e18),使得新陣列滿足∑i=
1mai
=2∗(
a1⨁a
2⨁..
.⨁am
)\sum_^a_i=2*(a_1\bigoplus a_2\bigoplus...\bigoplus a_m)
∑i=1m
ai=
2∗(a
1⨁a
2⨁.
..⨁a
m)題解:
定義原陣列的累加和為s
ss,異或和為x
xx,那麼當x∗2
>=s
x*2>=s
x∗2>=s
時,我們可以在兩邊新增2個數(x∗
2−s)
/2
(x*2-s)/2
(x∗2−s
)/2即可;
(偷看了官方題解)為了保證最後得到的新陣列的x1∗
2>=s
1x1*2>=s1
x1∗2
>=s
1,我們可以在陣列加上數2
502^
250,其正確性易證。
#include
using namespace std;
#define ll long long
const
int maxn=
200010
;int n;
intmain()
a=(1ll
<<50)
+(s%2)
; s+
=a;x^
=a; ll ans=
(x*2
-s)/2;
printf
("3\n%i64d %i64d %i64d\n"
,a,ans,ans);}
return0;
}
HDU Permutation 構造,思維
題目傳送 題意 給你乙個排列n 也就是元素從1到n 現在讓你構造一下這個陣列,使得a i a i a i 2 0 a i a i 2 的絕對值,i 3 思路 如果我使得a i a i 2 1,那麼不就萬能啦?ac include inline long long read while c 0 c 9...
C Palindromifier 思維 構造
思路 看到30次的時候以為有特殊的方法構造,但是看到每次的長度都會是變的,沒能覺得什麼演算法能o n 解決下來吧 畢竟我才疏學淺 最開始的時候構造wa1了。因為沒看到不能用取到第乙個數。如果能用就可以比較方便的2次就能迴轉了。但是這時候可以發現其實只要幾次就能轉變的端倪了。通過abcdef這個串去構...
cf Engineer Artem 思維 構造
題意先給你乙個理想的矩陣定義 每個位置的數跟它四周 上下左右 的數都不相同 然後給你乙個矩陣,問是否可以通過一些操作來達到這個理想矩陣,然後輸出這個理想的矩陣 答案不唯一 操作就是你可以對任意位置的數進行 1 操作,但是每個位置只能進行一次 思路將 每個位置的 橫座標跟縱座標的和 i j 進行奇偶判...