zzulioj 1912 B DP (二進位制)

2021-07-17 01:08:44 字數 699 閱讀 6886

time limit: 1 sec  

memory limit: 128 mb

submit: 282  

solved: 36

submit

status

web board

給定乙個長度為n的數字序列a,從中選取乙個長為m的子串行b滿足 b[i]&b[i-1]!=0 (2<=i<=m)

求最大的m。

第一行輸入乙個整數t,代表有t組測試資料。

每組資料第一行輸入乙個整數n代表a序列的長度,接下來一行輸入n個正整數表示ai(0乙個整數表示最大的m。

1

31 1 1

3

題解:若想滿足 b [ i ] & b [ i - 1 ] ! = 0,必須使得兩數相同的二進位制位都為 1

#include#include#include#includeusing namespace std;

const int max=1e5+10;

int n;

int last[50]; // last[i] 記錄上一次 i位為 1的位置

int dp[max]; // dp[i]=k 表示前 i個數滿足條件的有 k個數

bool judge_bit(int x,int y) // 判斷 x的二進位制位 第 y位是否為 1

{ if(x&(1<

ZZULIOJ 1152 二分搜尋

在有序序列中查詢某一元素x。首先輸入乙個正整數n n 100000 表示該序列有n個整數,然後按從小到大的順序輸入n個整數 接著是乙個正整數m,表示有m次查詢 最後是m個整數,表示m個要查詢的整數x。對於每一次查詢,有一行輸出。若序列中存在要查詢的元素x,則輸出元素x在序列中的序號 序號從0開始 若...

zzulioj1152 二分搜尋

zzulioj1152 二分搜尋 在有序序列中查詢某一元素x。首先輸入乙個正整數n n 100000 表示該序列有n個整數,然後按從小到大的順序輸入n個整數 接著是乙個正整數m,表示有m次查詢 最後是m個整數,表示m個要查詢的整數x。對於每一次查詢,有一行輸出。若序列中存在要查詢的元素x,則輸出元素...

zzulioj 1918 二分最大匹配

time limit 1 sec memory limit 128 mb submit 345 solved 78 submit status web board 晴天也來尋寶啦,有乙個m層的寶塔,只能從第一層開始一層一層的往上走,每層都有乙個門,你需要用鑰匙來開啟門才能繼續走,現在晴天有n把鑰匙,...