ZOJ 3802 Easy 2048 Again(狀壓DP)
一開始沒有想到加完之後的結果是可以直接加出來的,過程中的常數很高。
也完全沒有想到陣列開大會TLE,最後還是看了別人的程式碼對拍才用了滾動陣列。
總的來說 非常好的狀壓dp吧
#include <cstdio> #include <cstring> #include <algorithm> #include<iostream> #include<queue> #include<map> #include<cmath> using namespace std; const int maxn = 57; #define MAXN 100005 #define ll long long int dp[2][(1 << 14)]; int A[550]; int main() { int T; cin >> T; while (T--) { int n; cin >> n; memset(dp, -1, sizeof dp); for (int i = 1; i <= n; i++) { scanf("%d", &A[i]); } int pos = 1; int ans = 0; dp[0][0] = 0; for (int i = 1; i <= n; i++) { for (int j = 0; j<4096 * 2; j++) { if (dp[pos ^ 1][j] == -1) continue; dp[pos][j] = max(dp[pos][j], dp[pos ^ 1][j]); ans = max(ans, dp[pos][j]); int t = j; int q = A[i] - 1; int sum = A[i]; if ((t&q) == 0) { int k = A[i]; while ((t&k)) { sum += k << 1; k <<= 1; } t &= ~(k - 1); t |= k; } else t = A[i]; dp[pos][t] = max(dp[pos][t], dp[pos ^ 1][j] + sum); ans = max(ans, dp[pos][t]); } pos ^= 1; } printf("%d\n", ans); } return 0; }
相關推薦
ZOJ 3802 Easy 2048 Again(狀壓DP)
一開始沒有想到加完之後的結果是可以直接加出來的,過程中的常數很高。 也完全沒有想到陣列開大會TLE,最後還是看了別人的程式碼對拍才用了滾動陣列。 總的來說 非常好的狀壓dp吧 #include &
ZOJ----3471Most powerful(簡單狀壓dp)
題目 Most Powerful Time Limit: 2 Seconds Memory Limit: 65536 KB Recently, researchers on Mars have discovered N powerful atoms.
zoj 3471 Most Powerful 狀壓dp
lin printf sta 最大 emp gpo return sizeof eof 題目鏈接 題意 \(N\)種氣體,\(i\)氣體與\(j\)氣體碰撞會: 產生\(a[i][j]\)的威力; 導致\(j\)氣體消失。 求產生威力之和的最大值。 思路 \(dp[st
zoj 3471 Most Powerful (有向圖)最大生成樹 狀壓dp
最大值 href != 氣體 state span 生成 long logs 題目鏈接 題意 \(N\)種氣體,\(i\)氣體與\(j\)氣體碰撞會: 產生\(a[i][j]\)的威力; 導致\(j\)氣體消失。 求產生威力之和的最大值。 思路 和前幾題找圖上路徑的題不
zoj 3777 狀壓dp || 二分+搜索
oid 矩陣 vector code print 上下 span 1的個數 c++ 題意:給一個矩陣(n*n n<=14)求出選擇矩陣不同行,不同列,最後加起來和大於m的選擇數 狀壓dp做法: 由於每一行都要選擇,那麽認為就是從第一行開始順序選擇 。那麽一個
【狀壓DP】poj3254 Corn Fields
一行 cstring fields while state 條件 style 狀壓 () 題意: 一塊n*m的田,1表示這個地方可以種植,0代表這個地方不能種植。植物種植還必須滿足兩株植物不能相鄰(橫豎都不行)。問共有幾種種植方法,而且當什麽都不種時認為是一種方法。 解題思
【bzoj4145】[AMPPZ2014]The Prices 狀壓dp
return std sin highlight string span 題目 狀態壓縮dp print 原文地址:http://www.cnblogs.com/GXZlegend/p/6832200.html 題目描述 你要購買m種物品各一件,一共有n家商店,你到第i家
狀壓DP入門——鋪磚塊
ont 輸出 fin load www ret mil times set 題目描述 現有n*m的一塊地板,需要用1*2的磚塊去鋪滿,中間不能留有空隙。問這樣方案有多少種 輸入 輸入n,m(1<=n, m<=11) 有多組輸入數據,以m=n=0結束
[LightOJ 1018]Brush (IV)[狀壓DP]
邊界 lightoj 計算 const 擁有 for ostream 當前 blank 題目鏈接:http://lightoj.com/volume_showproblem.php?problem=1018 題意分析:平面上有不超過N個點,如今能夠隨意方向劃直線將它們劃
SGU 223 little kings BSOJ2772 狀壓DP
而且 進制 print 剪枝 描述 計算機 tex 範圍 blog 1896 [SCOI2005]互不侵犯King 【問題描述】在n*n(1<=n<=10)的棋盤上放k(0<=k<=n*n)個國王(可攻擊相鄰的8 個格子),求使它們無法互相攻擊的方
POJ 3254 Corn Fields (狀壓DP)
sign inline con cout ont tor const put 方式 題意:給定一個n*m的01矩陣,然後求有多少種方式,在1上並且1不相鄰。 析:一個簡單的狀壓DP,dp[i][s] 表示 第 i 行狀態為 s 時有多少種,然後只要處理不相鄰就行了,比賽進位
HDU 4906 Our happy ending (狀壓DP)
中一 article san mar break std 多少 滾動 con HDU 4906 Our happy ending pid=4906" style="">題目鏈接 題意:給定n個數字,每一個數字能夠是0-l,要選當中一些數字。然後使得和
POJ 1185 炮兵陣地 (狀壓DP)
pre int fine clu mat 狀態 print 優化 ans 題意:中文題。 析:dp[i][s][t] 表示第 i 行狀態為 s, 第 i-1 行為 t,然後就很簡單了,但是要超內存,實際上狀態最多才60個,所以後兩維開60就好, 然後又超時間,就一直加優化,
[BZOJ 1076][SCOI2008]獎勵關(期望+狀壓Dp)
方便 double spa solution bsp 所有 一個 int stream Description 你正在玩你最喜歡的電子遊戲,並且剛剛進入一個獎勵關。在這個獎勵關裏,系統將依次隨機拋出k次寶物, 每次你都可以選擇吃或者不吃(必須在拋出下一個寶物之前做出選
HDU 4856 Tunnels(BFS+狀壓DP)
pid air san void hit uil set itl pair HDU 4856 Tunnels 題目鏈接 題意:給定一些管道。然後管道之間走是不用時間的,陸地上有障礙。陸地上走一步花費時間1,求遍歷全部管道須要的最短時間。每一個管道僅僅能走一次 思
男神的約會(狀壓dp)
alt pri sof cnblogs soft 每次 div src closed 有一天男神約了學姐姐去看電影,電影院有一個活動,給你一個10*10的矩陣,每一個格子上都有一個0-9的整數,表示一共十種優惠券中的一種。 觀眾從左上角的格子開始走,走到右下角。每走到一個
【狀壓dp】CDOJ1608 暑假集訓
algo name pac 開始 技術分享 只需要 memset urn cnblogs 裸的狀壓的話,很顯然……但有一個強大的優化。 就是在枚舉決策的時候,固定第一個空位置。可以證明,這樣狀態數沒有減少,但是降低了很多重復訪問。 因為你在枚舉的時候,總是可以劃分為包含第
【狀壓dp】互不侵犯KING
git algorithm long long true 求解 格子 ble bool span 互不侵犯KING Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3866 Solved: 2264[Submit][Sta
【狀壓dp】送餐員
data etc 接下來 -s enter algorithm urn 我們 stream [odevs2800]送餐員 題目描述 Description 有一個送外賣的,他手上有n份訂單,他要把n份東西,分別送達n個不同的客戶的手上。n個不同的客戶分別在1~n
poj - 1185 炮兵陣地 狀壓DP 解題報告
其他 無法 popu mon 多少 mod tdi 遞推關系 r+ 炮兵陣地 Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 21553 Accepted: 8363