time limit: 1 sec
memory limit: 128 mb
submit: 182
solved: 8
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。
131 1 13
思路:將每個數轉化為二進位制,在進行dp。
#include#include#include#includeusing namespace std;
const int maxm=100005;
int a[maxm],dp[maxm][40],ans,l,sum[maxm],last[40];
void chuli(int x,int num);
int main()
printf("%d\n",ans);
} return 0;
}void chuli(int x,int num)
l=max(l,len);
for(i=1;i<=len;i++)
ans=max(ans,sum[num]); }}
/*234
41 1 8 8
*/
分而治之 求子序列最大和
這裡只紀錄一下函式的思想 運用遞迴的思想,先後掃瞄左邊最大值,右邊最大值,和跨中點最大值,比較.int max3 int a,int b,int c int divideandconquer int list,int left,int right 下面是 分 的過程 center left righ...
COGS82 求子序列
這是一道經典題目了,劉汝佳在紫書上講解了三種方法,複雜度從o n3 o n2 o n 記得高一我寫這道題的時候迷迷糊糊的,對於o n 的演算法並不是很理解,今天我重新寫這道題並用o nlogn 的分治方法解決,也是為寫維護數列做準備。divide and conquer 分而治之的思想可以說是oi中...
求子陣列的最大和 DP
題目 輸入乙個整形陣列,陣列裡有正數也有負數。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。求所有子陣列的和的最大值。要求時間複雜度為o n 輸入 例如輸入的陣列為1,2,3,10,4,7,2,5,和最大的子陣列為3,10,4,7,2 輸出 因此輸出為該子陣列的和18。解析 因為是...