jsoi2017 day1t3 code解題報告
via. hbfs-
觀察語法規則可以發現
1、每個迴圈結束後暫存器的值是0
2、若當前暫存器值為0,則在後面新增乙個迴圈,在迴圈內部新增任意能通過編譯的程式,新程式都不會死迴圈
我們可以用動態規劃求解這個問題hi
表示長度為
i 能通過編譯的程式數量fi
,j表示長度為
i ,暫存器初始值為0,執行結束暫存器值為
x的程式數量 若j
≠0 f
i,j=
fi−1
,j−1
+fi−
1,j+
1+∑i
k=2d
k−1f
i−k+
∑ik=
2(gk
−2,j
+fk−
2,j)
fi−k
,0否則: fi
,j=f
i−1,
j−1+
fi−1
,j+1
+∑ik
=2dk
−1fi
−k+∑
ik=2
hk−2
fi−k
,0其中gi
,j表示長度為
i ,執行結果為
j的約數的無迴圈程式數量fi
,j表示
長度為i
,暫存器
初始值為
0,執行
結果為j
的程式數
量 若j
=0 f
i,j=
fi−1
,j−1
+fi−
1,j+
1+∑i
k=2d
k−1f
i−k,
j+∑i
k=2∑
l≠0(
gk−2
,j+f
k−2,
j)fi
−k,j
+∑ik
=2hk
−2fi
−k,0
否則 fi
,j=f
i−1,
j−1+
fi−1
,j+1
+∑ik
=2dk
−1fi
−k,j
ans=∑i
fn,i
濟南學習 Day 3 T1 pm
巧克力棒 chocolate time limit 1000ms memory limit 64mb 題目描述 lyk 找到了一根巧克力棒,但是這根巧克力棒太長了,lyk 無法一口吞進去。具體地,這根巧克力棒長為 n,它想將這根巧克力棒折成 n 段長為 1 的巧克力棒,然後 慢慢享用。它打算每次將一...
濟南學習 Day 3 T1 pm
巧克力棒 chocolate time limit 1000ms memory limit 64mb 題目描述 lyk 找到了一根巧克力棒,但是這根巧克力棒太長了,lyk 無法一口吞進去。具體地,這根巧克力棒長為 n,它想將這根巧克力棒折成 n 段長為 1 的巧克力棒,然後 慢慢享用。它打算每次將一...
濟南學習 Day 3 T1 am
np np time limit 1000ms memory limit 64mb 題目描述 lyk 喜歡研究一些比較困難的問題,比如 np 問題。這次它又遇到乙個棘手的 np 問題。問題是這個樣子的 有兩個數 n 和 p,求 n 的階乘 對 p 取模後的結果。lyk 覺得所有 np 問題都是沒有多...