月之謎 (mystery.pas/c/cpp)
【題目描述】
打敗了 lord lsp 之後,由於 lqr 是乙個心地善良的女孩子,她想淨化 lord lsp 黑化的心,使他變回到原來那個天然呆的 lsp……
具體地來說是這樣的,定義月之數為能夠被其十進位制表示下各個數字的和整除的數。
給定整數 l,r,你需要計算出區間[l, r]中有多少個月之數。
lqr 發覺這不是數學競賽能夠解決的問題,於是她又找到了你……所以說你需要幫助她解決這個問題。
【輸入格式】
輸入檔案包含多個測試資料。
每組測試資料佔一行,含有兩個整數 l 和 r。
輸入檔案以 eof 結束。
【輸出格式】
對於每組測試資料,在單獨的一行內輸出結果。
【樣例輸入】
1 100
101 200
【樣例輸出】
【資料範圍與約定】
對於 20% 的資料,1≤l,r≤1000。
對於 100% 的資料,1≤l,r≤2 31 -1。
每個輸入檔案的測試資料不超過 3000 組。
——————————————我是分割線————————————————————
好題,數字統計dp
這就是著名的數字統計dp,首先把問題轉化為calc(1,r)-calc(1,l-1)
一般解題思路是:先dp預處理、再從高到低按位填數
一旦填了乙個比上限小的數字,就可以立即通過dp預處理出的值累加答案
f[模][剩餘數字數目][剩餘數字的和][剩餘位的模]=合法方案數
f[s][i][j][k]=∑(f[s][i-1][j-r][(k-pwr[i-1]*r)%s], 0≤r≤9)
邊界條件:f[s][0][0][0]=1
【**】
1 #include2 #include3 #include4 #include5 #include6 #include7 #include8 #include9 #include10 #include11nescafé2 月之謎#define maxn 1000001
12#define f(i,j,k) for(int i=j;i<=k;i++)
13#define m(a,b) memset(a,b,sizeof(a))
14#define ff(i,j,k) for(int i=j;i>=k;i--)
15#define inf 0x7fffffff
16using
namespace
std;
17int
read()
20while(ch>='
0'&&ch<='9')
21return x*f;22}
23int
n,m;
24int f[82][10][82][82],pwr[82][10
];;25
intsum,l,r;
26int num[10
];27 inline int modabs (int a, int
mod)
2831
int run(int p,int sum,int mod,int s,bool
e)32
41else
4248
return
res;49}
50}51int fcount(int
t)52
60int res=0
;61 f(i,1,81) res+=run(maxx-1,0,0,i,true
);62
return
res;63}
64int
main()
6581}82
while(cin>>l>>r)
8386
return0;
87 }
2月讀書活動之《如果高效學習》
前言 又是乙個無眠夜,在加班中,插上耳機,開啟 靜靜地來iteye,看看這本 如果高效學習 周圍的圈子也有很多 異常聰明 人,懷著好奇來看看這本書。正文 下面內容開始的是一些讀書筆記 整體學習和機械記憶的差異 比如公式,有的人知道公式中每乙個符號的含義,用在什麼地方,了解規則。因為我們大腦是通過數十...
2月2號總結
這個周天真的是就這麼浪費過去了,可能是上週太累了,週六比賽結束後倒頭就睡,然後就到了第二天10點,起床洗漱好就開始洗衣服,洗頭髮,整來整去就到了吃中午飯的時間。下午到了實驗室,收到一封郵件,然後就開始為 的備案開始各種忙,最後去東門寄了個郵件,就和隊友去超市買了這週的早餐。這樣一天就過去了。今天就做...
2023年2月28 3月2日訓練總結
在宿舍最大的敵人是網速。啥都打不開的絕望感 英語題還是沒適應,大多都得靠翻譯一點點的往下做,今天的一道題完全就是因為題目沒讀懂,用的知識是剛學的,得盡快把英語補起來,不能因為這些東西吃虧。近期的學習任務還是在stl上,主要是簡化自己的 二分又回去看了一下,有點忘記了,感覺還挺重要的,最近沒學什麼乾貨...