給定n
nn個數,求連續長度不小於k
kk的最大按位或和按位與值
按位或的最大值其實就是所有數或起來,因為aor
b>=a
a\ or\ b>=a
aorb
>=a
按位與的最大值其實就是k
kk個數與起來,因為aan
db
<=a
a\ and\ b<=a
aand
b<=a
所以我們只需要用位運算維護乙個動態視窗即可
#include
#include
#include
using
namespace std;
int n,k,ans2,ans1,now,a[
1000001
],v[
1000001];
signed
main()
if(now>ans2)ans2=now;
//求最大值
} ans1|
=a[i];}
printf
("%d %d"
,ans1,ans2)
;//輸出
}
2023年10月29日提高組 T1 A
n nn個球,m mm個盤,盤子不能空,求本質上不相同的方案數 首先深搜 include using namespace std int n,m,ans inline void dfs register int dep,register int sy,register int last 分完了,統計...
2023年10月30日提高組 T1 A
求樹上聯通快中最大值與最小值之差為k kk的方案數 設最大值與最小值之差為xxx x xx正好為k kk的方案數 x k x leq k x k 的方案數 x x k的方案數 於是我們就可以樹形dpdp dp啦fi fs on 1 f i prod f 1 fi fson 1 include def...
2023年10月31日提高組 T1 A
求n nn的排列了交換為公升序的最小交換次數的期望 兩種思路 暴力打表找規律 動態規劃 第一種只需要打乙個bfs bfsbf s hash hash hash include include define p 10000007 using namespace std int n,ans struct...