e 牛牛的隨機數
題解:思路就是算二進位制每個位置的貢獻,然後再將每個位置的貢獻加起來就是總貢獻。
關鍵是數字dp咋寫;我看了半天就是唯一想不通的地方就是為啥要
lim == 0 時才能記憶化轉移,同樣才能給dp賦值。因為當lim==1時說明這個位置有限制所以你列舉的那個數字的數字可能就不是1,就可能多加貢獻。所以需要沒有限制的時候那麼你列舉的數字必然可以達到1,所以可以無腦轉移。
#include
#define ll long long
using
namespace std;
const
int mod =
1e9+7;
ll dp[
100]
[100][
2];int a[
100]
;ll dfs
(int pos,
int k,
int lim,
int f)
ll div
(ll x,
int k)
return
dfs(pos,k,1,
0);}
ll inv
(ll x)
return ans;
}int
main()
// ans %= mod ; ans += mod ;
ans %
= mod;
ans = ans *
inv(
(r2-l2+1)
%mod *
((r1-l1+1)
%mod )
% mod)
% mod;
ans %
= mod;
printf
("%lld\n"
,ans);}
}
牛客網 牛客假日團隊賽5 隨機數 數字dp
時間限制 c c 1秒,其他語言2秒 空間限制 c c 32768k,其他語言65536k 64bit io format lld 正如你所知,奶牛們沒有手指以至於不能玩 石頭剪刀布 來任意地決定例如誰先 的順序。她們甚至也不能通過仍硬幣的方式。所以她們通過 round number 競賽的方式。第...
ccf 有趣的數(數字dp)
問題描述 我們把乙個數稱為有趣的,當且僅當 1.它的數字只包含0,1,2,3,且這四個數字都出現過至少一次。2.所有的0都出現在所有的1之前,而所有的2都出現在所有的3之前。3.最高位數字不為0。因此,符合我們定義的最小的有趣的數是2013。除此以外,4位的有趣的數還有兩個 2031和2301。請計...
linux下隨機數字的生成
方法一 命令大致如下 echo 16 dd if dev urandom bs 1 count 4 2 dev null od a n t x4 sed s 1 9a fa f g 分開來看 echo 16 abc 意思是將十六進製制數abc轉換成十進位制數 command 意思是兩個 中間的命令執...