記憶體限制:64mb
時間限制:1000ms
特判: no
通過數:14
提交數:50
難度:4
alpha 小鎮風景美麗,道路整齊,乾淨,到此旅遊的遊客特別多。cba 鎮長準備在一條道路南 面 4*n 的牆上做一系列的宣傳。為了統一規劃,cba 鎮長要求每個宣傳欄只能佔相鄰的兩個方格 位置。但這條道路被另一條道路分割成左右兩段。cba 鎮長想知道,若每個位置都貼上宣傳欄, 左右兩段各有有多少種不同的張貼方案。 例如: n=6,m=3, k=2, 左,右邊各有 5 種不同的張貼方案
第一行: t 表示以下有 t 組測試資料 ( 1≤t ≤8 )接下來有t行, 每行三個正整數 n m k 分別表示道路的長度,另一條道路的起點和寬度
(1≤ n ,m ≤ 1 000 000, 1≤ k ≤ 100000)
每組測試資料,輸出佔一行:兩個整數,分別表示左右兩段不同的張貼方案數。由於方案總數複製可能很大,請輸出對 997 取模後的結果。
26 3 2
5 3 2
5 5ac:** 0ms5 1
#include #include #include #include using namespace std;
typedef long long ll;
typedef long long int lli;
typedef unsigned long long llu;
const int maxn = 1<<4;
const int mod = 997;
struct matrixx;
int n,m,k;
int s1,s2;
matrix mulmatrix(matrix a,matrix b,int c,int d,int e)
return res;
}void dfs(int i,int j,int k,int u)//i 行 j 這一列的狀態 k 下一列 u (ii)
if((j&(1在網上找到了一種簡單一點的**貼一下
#include #include #include const int col = 4;
int row;
int dp[900000][1<<4];
void dfs(int r,int c,int pre,int now)
if(c+1<=col)
if(c+2<=col)
} int main()
else
{ memset(dp,0,sizeof(dp));
dp[0][(1<
狀壓dp 玉公尺田 狀壓dp
相關 強相關 327.玉公尺田 狀壓dp 小國王 狀壓dp 是井字形,本題是十字形。思路 狀態計算 時間複雜度 n 2 n 2n o n 22n 12 2 24n 2 n 2 n o n2 12 2 n 2n 2 n o n22n 12 224 看著妥妥超時,但是裡面合法狀態很少 依舊可以過 在此,...
狀壓dp小記
鋪磚 題意 現有nm的一塊地板,需要用12的磚塊去鋪滿,中間不能留有空隙。問這樣方案有多少種 include using namespace std typedef long long ll const int maxn 1 11 int n,m,state ll dp 15 maxn s1表示本行...
狀壓dp學習
p2704 炮兵陣地 1038 裁玻璃 狀壓dp是一種非常暴力的做法,列舉所有可能的狀態,找到要求的最佳狀態,與一般dp不同,前一項與後一項有一些複雜的狀態關係。dp的引數 物品個數 行數等 當前狀態 上乙個狀態 將abc的有無表示成乙個8個狀態,列舉所有組,列舉上乙個狀態,得到當前狀態的最優解 i...