【洛谷 2774】方格取數問題 | 狀壓DP
題目描述
在一個有 m*n 個方格的棋盤中,每個方格中有一個正整數。現要從方格中取數,使任意 2 個數所在方格沒有公共邊,且取出的數的總和最大。試設計一個滿足要求的取數算法。對於給定的方格棋盤,按照取數要求編程找出總和最大的數。
數據範圍
m,n<=100
題解
除了第一行外,所有行都滿足:
1.無相鄰的1
2.適應上一行(上一行是1,這一行必須是0)
枚舉第一行的狀態,即從 0 到 1《 n 中的合法狀態。
然後枚舉後面的行的狀態,找出合法的即可。
【洛谷 2774】方格取數問題 | 狀壓DP
相關推薦
【洛谷 2774】方格取數問題 | 狀壓DP
題解 範圍 題目 算法 所在 最大的 狀態 bsp 棋盤 題目描述 在一個有 m*n 個方格的棋盤中,每個方格中有一個正整數。現要從方格中取數,使任意 2 個數所在方格沒有公共邊,且取出的數的總和最大。試設計一個滿足要求的取數算法。對於給定的方格棋盤,按照取數要求編程找出總
【洛谷2774】 方格取數問題(網絡流24題,最小割)
define line sin 方格取數 inline getch string.h 一個 最小割 前言 為什麽他們能夠切的那麽快啊。 Solution 雖然我不會怎麽區分最大流和最小費用最大流,但是最大流可以看成最小割,這樣子就好區分一些。 考慮這個東西相當於是二分圖求一
2018.11.06【SCOI2005】【BZOJ1087】【洛谷P1896】互不侵犯(狀壓DP)
BZOJ傳送門 洛谷傳送門 解析: 範圍只有9,顯然是狀壓DP。 考慮處理出每個可能的狀態來減小常數。 然後列舉行,列舉當前行狀態,列舉前一行狀態,更新即可。 注意要預處理第一行的情況。 程式碼: #include<bits/stdc++
【題解】洛谷P1879 [USACO06NOV] Corn Fields(狀壓DP)
洛谷P1879:https://www.luogu.org/problemnew/show/P1879 思路 把題目翻譯成人話 在n*m的棋盤 每個格子不是0就是1 1表示可以種 0表示不能種 相鄰的格子不能同時種 求總方案數 把每行看成一個n位的2進位制數 預處理出每行的狀態後 進行DP
【題解】洛谷P1896 [SCOI2005] 互不侵犯(狀壓DP)
洛谷P1896:https://www.luogu.org/problemnew/show/P1896 前言 這是一道狀壓DP的經典題 原來已經做過了 但是快要NOIP 複習一波 關於一些位運算的知識點參考: https://blog.csdn.net/fox641941
【洛谷2577】[ZJOI2005] 午餐(較水DP)
點此看題面 大致題意: 有NNN個學生去食堂打飯,每個學生有兩個屬性:打飯時間aia_iai和吃飯時間bib_ibi。現要求將這些學生分成兩隊分別打飯,求最早何時所有人吃完飯。 貪心 首先,依據貪
2018.11.02【HNOI2008】【BZOJ1010】【洛谷P3195】玩具裝箱(斜率優化DP)
洛谷傳送門 解析: 看到平方項多半就是兩種套路,決策單調性和斜率優化,這道題斜率優化可以O(n)O(n)O(n)。 首先還是推DP式子,這個很好想(sumsumsum表示字首和)。fi=minj=
【題解】洛谷P2831[NOIP2016]憤怒的小鳥 狀壓DP
題目連結 dp[i]表示i狀態時所需要的最少的小鳥數,state[i]表示第i條拋物線所打掉的小豬狀態, dp[i|state[j]]=min(dp[i|state[j]],dp[i]+1) #include<cstdio> #inclu
【洛谷P1417】烹調方案 貪心+背包dp
void urn 設計 pri n) clu can 產生 space 題目大意:一共有 n 件食材,每件食材有三個屬性,ai,bi和ci,如果在t時刻完成第i樣食材則得到ai-t*bi的美味指數,用第i件食材做飯要花去ci的時間。眾所周知,gw的廚藝不怎麽樣,所以他需要你
bzoj1559/洛谷P4045 [JSOI2009]密碼 AC自動機+狀壓DP+搜尋
我差點沒死在這道題上… 首先建出AC自動機,然後在每一個字串的末尾節點用二進位制狀態記錄該字串已經完整地出現過了,然後設f(i,x,zt)f(i,x,zt)f(i,x,zt)表示長度為iii的密碼,對應AC自動機上的xxx節點,當前每個串有沒有出現的狀態為ztz
【洛谷P3368】【模板】樹狀數組 2
cstring int 一個數 pri getc 0ms 分享 width 區間 題目描述 如題,已知一個數列,你需要進行下面兩種操作: 1.將某區間每一個數數加上x 2.求出某一個數的和 輸入輸出格式 輸入格式: 第一行包含兩個整數N、M,分別表示該數列數字的個數和操
【網絡流24題9】方格取數問題
gpo ace 輸出格式 二分圖 程序 while 個數 edge div 題面戳我 題目描述 在一個有 m*n 個方格的棋盤中,每個方格中有一個正整數。現要從方格中取數,使任意 2 個數所在方格沒有公共邊,且取出的數的總和最大。試設計一個滿足要求的取數算法。對於給定的方格
【網絡流24題】方格取數問題(最大流)
ace nic 最小 stdin getch esp mar memset pty 【網絡流24題】方格取數問題(最大流) 題面 Cogs 題解 首先,相鄰的只能出現一個,每個點要麽選,要麽不選。 所以不難想到最小割 所以,將棋盤黑白染色後 將某種顏色的格子從源點連過去,容
【洛谷P4706】取石子
include int rip code cpp esp 一次 res lse Description ? 現在 Yopilla 和 yww 要開始玩遊戲! ? 他們在一條直線上標記了 \(n\) 個點,從左往右依次標號為 \(1, 2, ..., n\
樹狀數組 二維偏序【洛谷P3431】 [POI2005]AUT-The Bus
stream 關系 iostream printf bus ret block 二維 一個 P3431 [POI2005]AUT-The Bus Byte City 的街道形成了一個標準的棋盤網絡 – 他們要麽是北南走向要麽就是西東走向. 北南走向的路口從 1 到 n編號
樹狀數組【洛谷P3586】 [POI2015]LOG
sig str sin 但是 scanf add char scan ons P3586 [POI2015]LOG 維護一個長度為n的序列,一開始都是0,支持以下兩種操作:1.U k a 將序列中第k個數修改為a。2.Z c s 在這個序列上,每次選出c個正數,並將它們都
【洛谷P2252】取石子游戲
題面 題解 威佐夫博弈 程式碼 #include<cstdio> #include<algorithm> #include<cmath> #define RG register const double Phi((sqrt(5) + 1.) / 2.); int
【洛谷P1025】【JZOJ5195】數的劃分
題目大意: 題目連結: 洛谷:https://www.luogu.org/problemnew/show/P1025 JZOJ:https://jzoj.net/senior/#main/show/5195 將
2018.09.29【洛谷P2106】Sam數(數位DP)(矩陣快速冪)
傳送門 解析: 其實這種只用位數轉移的數位DPDPDP,大概都可以用矩陣快速冪推。本質原因是每層的轉移方程與這是第幾層無關,比如這道題。 思路: 可以發現一個很顯然的情況,就是上面說的,這道題可以矩陣
【動態規劃】方格取數 (ssl 1010)
方 格 取 數