作者oin1104 (是oin的說)
看板Marginalman
標題Re: [閒聊] 每日leetcode
時間Sun May 26 13:19:50 2024
題目:
有三個英文字
A缺席
L遲到
P出席
一個學生不能缺席超過兩次
不能連續遲到三天
其他都算出席
就可以拿出席獎勵
問你學生的上學天數n裡面有幾種上學方法
可以拿到出席獎勵
思路:
跟電話號碼那種有點像
就是一直紀錄後面的狀態就好了
可以簡化成陣列去做
```cpp
class Solution {
public:
int checkRecord(int n)
{
int res = 0;
vector<int> paper1(6,0);
vector<int> paper2(6,0);
paper1[0] = 1;
paper1[1] = 1;
paper1[3] = 1;
for(int i = 1 ; i < n ; i ++)
{
paper2[0] = (((paper1[0]%1000000007+paper1[1])%1000000007+paper1[2])
%1000000007)%1000000007;
paper2[1] = (paper1[0])%1000000007;
paper2[2] = (paper1[1])%1000000007;
paper2[3] = (((((((paper1[3]%1000000007)+paper1[0])%1000000007+paper
1[1])%1000000007+paper1[2])%1000000007+paper1[4])%1000000007+paper1[5])%10000000
07)%1000000007;
paper2[4] = (paper1[3])%1000000007;
paper2[5] = (paper1[4])%1000000007;
paper1 = paper2;
}
for(int i = 0 ; i < 6 ; i ++)
{
res += paper1[i]%1000000007;
res %= 1000000007;
}
return res;
}
};
```
媽的 有點醜
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.162.54.53 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1716700793.A.D9E.html
推 JIWP: 大師 教我 05/26 13:24
推 Bill8x1229: 老兄 要對自己有信心 再醜都沒你的沙皇醜 05/26 13:26
推 JIWP: QS 05/26 13:27
→ oin1104: 幹你娘 上線阿 廢物 05/26 13:27
→ JIWP: 你先教我好不好 05/26 13:28
→ oin1104: 你哪裡不懂 05/26 13:30
→ oin1104: 六個狀態寫出來 A是0的 遲到012次三種 A是1的 遲到012次 05/26 13:30
→ oin1104: 三種 05/26 13:30
→ oin1104: 然後互相轉移 05/26 13:30
推 JIWP: 我不懂我好爛 05/26 13:30
→ oin1104: 你有年薪600萬 05/26 13:31
→ SecondRun: ALP很色 05/26 13:32
→ oin1104: ... 05/26 13:33
推 JIWP: alp讚 05/26 13:34
→ oin1104: alp是什麼 05/26 13:36