face
首先看1e9<230
1e9 < 2^
1e9<23
0, 想到二進位制拆分構造乙個橫座標為30的矩陣, 對角線是2的k次方的方案數, 如果n在二進位制表示的第i位上是1, 就要貢獻到答案裡:
#include
#include
using
namespace std;
#define _rep(n, a, b) for (ll n = (a); n <= (b); ++n)
#define _rev(n, a, b) for (ll n = (a); n >= (b); --n)
#define _for(n, a, b) for (ll n = (a); n < (b); ++n)
#define _rof(n, a, b) for (ll n = (a); n > (b); --n)
#define oo 0x3f3f3f3f3f3f
#define ll long long
#define db double
#define eps 1e-8
#define bin(x) cout << bitset<10>(x) << endl;
#define what_is(x) cerr << #x << " is " << x << endl
#define met(a, b) memset(a, b, sizeof(a))
#define all(x) x.begin(), x.end()
#define pii pair
#define pdd pair
const ll mod =
1e9+7;
const ll maxn =
100;
char mat[35]
[35];
signed
main()
_rep
(i,2,32
) mat[i]
[i -2]
=((val >>
(i -2)
)&1)
?'b'
:'r'
;_rep
(j, i-1,
min(i, m)
)_rep
(j, i +
1, m)
} cout << n +
1<<
" "<< m+
1<< endl;
_rep
(i,1
, n)
_rep
(i,1,31
)}
牛客寒假訓練營3 A 牛牛的DRB迷宮I
題目描述 牛牛有乙個n m的迷宮,對於迷宮中的每個格仔都為 r d b 三種型別之一,r 表示處於當前的格仔時只能往右邊走 d 表示處於當前的格仔時只能往下邊走,而 b 表示向右向下均可以走。我們認為迷宮最左上角的座標為 1,1 迷宮右下角的座標為 n,m 除了每個格仔有向右移動以及向下移動的限制之...
基於建立型模式的「迷宮」構造
本文在gof 設計模式 一書 建立型模式 一章的例子和模式的基礎上,將各個建立型模式有機的結合在一起。實現了 迷宮 構造過程的封裝,增強了構造不同迷宮的可擴充套件性。建立型模式 抽象工廠 工廠方法 生成器原型 單件其中,抽象工廠是由工廠方法組成的,是一組相互關聯的工廠方法的集合。迷宮 構造類圖 以下...
lintcode 439 線段樹的構造 II
線段樹是一棵二叉樹,他的每個節點包含了兩個額外的屬性start和end用於表示該節點所代表的區間。start和end都是整數,並按照如下的方式賦值 對於給定陣列設計乙個build方法,構造出線段樹 說明wiki segment tree interval tree 樣例給出 3,2,1,4 線段樹將...