牛客練習賽27 計數

2021-08-28 08:52:21 字數 1073 閱讀 6848

題意:n個數字乙個環,每個數字只能是3或7,要求所有相鄰的m個數中,7的個數大於等於3的個數,求方案數。

題解:由於m<=5,用乙個數字表示最後m個數的狀態,轉移方程很好寫:

dp[i]->dp[j](j和i都合法,並且二進位制下i的後m-1位和j的前m-1位相同)

然後構造轉移矩陣,求快速冪

如何保證是環的情況下依據合法?

我們列舉初始狀態,2^m種,然後計數時只統計最後狀態和初始狀態合法的。

教訓:

位運算中 & 和  << 不是乙個優先順序!!

**:

#include#define n 32

#define inf 0x3f3f3f3f

#define eps 1e-10

#define pi 3.141592653589793

#define mod 998244353

#define ll long long

#define pb push_back

#define cl clear

#define si size

#define lb lower_bound

#define mem(x) memset(x,0,sizeof x)

#define sc(x) scanf("%d",&x)

#define scc(x,y) scanf("%d%d",&x,&y)

#define sccc(x,y,z) scanf("%d%d%d",&x,&y,&z)

using namespace std;

ll n,m,lim;

bool check(int x)

struct matrix

matrix operator *(const matrix x) const

return ans;

}}x;int main()

}cout<

牛客練習賽27遊記

有兩張紙牌,兩張紙牌上有相同的正整數 n n le10 9 每一輪一張紙牌上的數都可以減去小於等於另外一張紙牌上的數的非負數。每一輪只能操作和上輪不同的紙牌。求三輪之後兩張紙牌上數字之和的最小值。答案就是 lceil frac n2 rceil include includeinline int g...

牛客練習賽9

時間限制 c c 1秒,其他語言2秒 空間限制 c c 32768k,其他語言65536k 64bit io format lld 珂朵莉想每天都給威廉送禮物,於是她準備了n個自己的本子 她想送最多的天數,使得每天至少送乙個本子,但是相鄰兩天送的本子個數不能相同 珂朵莉最多送幾天禮物呢 第一行乙個整...

牛客練習賽15

時間限制 c c 2秒,其他語言4秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 第一次期中考終於結束啦!沃老師是個語文老師,他在評學生的作文成績時,給每位學生的分數都是乙個小於10的非負小數。amy 8.99999999999999999999...