骨牌問題 鋪地磚 ,所有型別模板總結。

2021-08-19 18:48:43 字數 2180 閱讀 2377

模板:**的複雜度沒有算多組輸入或t組資料

#include #include #include #include #include #include using namespace std;

#define mem(a,b) memset(a,b,sizeof(a))

typedef long long ll;

const int n=5e4+20;

const int m=(1<<7)+1;

const int mod=12357;

struct node

};int d[m][m];

int k,n;

void dfs(int x,int y,int c)

dfs(x<<1,(y<<1)+1,c+1);

dfs((x<<1)+1,y<<1,c+1);

if(c+2<=k)

dfs((x<<2)+3,(y<<2)+3,c+2);

}node a,ans;

void init()

return c;

}int pow(int x)

}

參考部落格:

(2<=n,m<=9 這種題目也是一種題型,板子在下一型別中有介紹)

對於這種磚塊型別的題,因為我實在是找不到那種m小,n非常大的題,所以只能找個資料範圍不一樣的題目,來測一下我的**(對於上面的部落格裡的這道題 我的模板只能特判一下m=8和m=9的情況了,這個板子主要是用來處理m不大,n非常大的題目)

模板:**的複雜度沒有算多組輸入或t組資料

#include #include #include #include #include #define mem(a,b) memset(a,b,sizeof(a))

#define inf 0x3f3f3f3f

using namespace std;

typedef long long ll;

const ll n=5e4+20;

const ll m=130;

const ll mod=1e9+7;

struct node

};ll d[m][m];

ll k,n;

void dfs(ll s1,ll s2,ll b1,ll b2,ll c)

if(b1==0&&b2==0)

if(b2==0)

if(b1==0)

dfs(s1<<1,s2<<1|b2,1,1,c+1);

dfs(s1<<1|(1-b1),s2<<1|b2,0,0,c+1);

}node a,ans;

void init()

return c;

}ll pow(ll x)

return ans.a[0][(1mem(d,0);

dfs(0,0,0,0,0);//這個只與k(寬度)有關,與n無關。(k變化後,執行一次dfs(0,0,0,0,0)即可)

printf("%lld\n",pow(n));

}}

參考部落格:

m=11,n=11,這樣的資料大約跑了500+ms,還算是比較快的。

模板**:

#include #include #include #include #define ll long long

using namespace std;

const int n=12;

const int m=12;

int n,m,x;

ll f[n][(1此**為gyr大神寫的:(演算法:輪廓線)

#include #include #include #include #include #include #include #include #include #include using namespace std;

#define mem(a,b) memset(a,b,sizeof(a))

#define inf 0x3f3f3f3f

typedef long long ll;

const int n=12;

ll dp[2][(1

printf("%lld\n",dp[cur][(1<}

return 0;

}

C語言鋪地磚問題

鋪地磚 time limit 1000ms memory limit 65536k total submit 711 accepted 224 description 元旦過去了,新年大酬賓活動也已經告一段落了。陳蓋歷望著堆在倉庫的瓷磚,很無聊的他把這些瓷磚裁成很多1x1 1x2 1x3的小瓷磚,然...

矩陣覆蓋 鋪地磚問題

描述 我們可以用2 1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2 1的小矩形無重疊地覆蓋乙個2 n的大矩形,總共有多少種方法?思路 target 1大矩形為2 1,只有一種擺放方法,return1 target 2 大矩形為2 2,有兩種擺放方法,return2 target n 分為兩步考...

鋪地磚(找遞推式 大數)

時間限制 1 sec 記憶體限制 128 mb 題目描述 一天,晨晨的數學老師布置了一道題目,大意如下 用1 1和2 2的磁磚不重疊地鋪滿n 3的地板,共有多少種方案?例如 n 1時 1 3的地板方法就乙個,直接由三個1 1的磁磚鋪滿。n 2時 2 3的地板可以由下面3種方案鋪滿 輸入第一行 乙個整...