牛客練習賽41 B 666RPG(計數dp)

2021-09-11 18:39:28 字數 374 閱讀 4379

思路:我們可以用

則可以得狀態轉移方程為

但是

#include using namespace std;

#define ll long long

const int n = 1e6+7;

const int base = 301*666;

const int mod = 1e8+7;

int a[305];

ll dp[2][n];

int main()

dp[cnt][666+base] = 0;

}printf("%lld\n",dp[n%2][-666+base]);

}

牛客練習賽41 B 666RPG

題目傳送門 這裡呢,用的方法是dp,俗話說的好 神用dp,人用暴力 但是呢,我都不會 白嫖大佬的 方法簡介 首先,先const 乙個maxn 666 300 5 這裡加5嘛,就只有防 的作用,重要的是這個666 300,為什麼要定義乙個maxn呢,因為,我們要開乙個4 maxn大的二維陣列ans 2...

牛客練習賽41 B 666RPG

題意 有n個回合,每個回合給1個數,每個回合你有兩種選擇 1.加上第i個數 2.將當前數乘 1 想知道有多少種不同的方案使得 n個回合後分數變為 666,且在任何乙個回合之後分數都不為666 n 666 666 答案模1e8 7 n 666 666 分析 n 666 666 我們可以用dp i j ...

牛客練習賽41 B 666RPG

題目大意就是給n個數,然後有n個回合,在第i個回合操作有2種,一種是對當前數 1,第二種是對當前數 ai,問你n回合後數變成 666的操作方案數是多少?另外數的初始值是0,還有在乙個合法的方案裡,不能有某個回合結束後數變成了666 這題用的是計數dp,定義dp i j 表示第i個回合結束之後,數變成...