一本通1587 例 3 Windy 數

2022-05-08 02:00:12 字數 1204 閱讀 8591

時間限制: 1000 ms         記憶體限制: 524288 kb

題目描述

原題來自:scoi 2009

windy 定義了一種 windy 數:不含前導零且相鄰兩個數字之差至少為 2 的正整數被稱為 windy 數。

windy 想知道,在 a 和 b 之間,包括 a和 b,總共有多少個 windy 數?

輸入格式

一行兩個數,分別為 a,b。

輸出格式

輸出乙個整數,表示答案。

樣例樣例輸入 1

1 10
樣例輸出 1

9
樣例輸入 2

25 50
樣例輸出 2

20
資料範圍與提示

20% 的資料,滿足 1≤a≤b≤10^6;

100% 的資料,滿足 1≤a≤b≤2×10^9。

sol:windy數,也是很友好的數字dp,也像數字遊戲一樣搞一搞,dp[i][j][bo1][bo2]第i位,填的數字為j,是否是上界,是否是前導0就over了

#include using

namespace

std;

int num[20],dp[20][10][2][2

];inline

int dfs(int weiz,int shuz,bool shangj,bool

qiand0)

return

dp[weiz][shuz][shangj][qiand0];

}inline

int solve(int

n)

int i,ans=0

; ans+=dfs(*num,0,0,1

);//

printf("beg ans=%d\n",ans);

for(i=1;i)

ans+=dfs(*num,num[*num],1,0

);

return

ans;

}int

main()

/*input

1 10

output

9input

25 50

output

20*/

view code

一本通 1633 例 3 Sumdiv

今天早上考試考了這道題 題意 求 a 所有約數之和 9901的結果。思路 暴力 快速冪 線性判約數再求和,30分。正解 看到求約數之和,很自然想到唯一分解定理,對於正整數n,n a 1a 2 dots a n 而言,它的約數之和為 1 a 1 a 1 2 dots a 1 1 a 2 a 22 do...

10020 一本通 1 3 例 3 小木棍

題目描述 原題來自 cerc 1995 喬治有一些同樣長的小木棍,他把這些木棍隨意砍成幾段,直到每段的長都不超過 50 現在,他想把小木棍拼接成原來的樣子,但是卻忘記了自己開始時有多少根木棍和它們的長度。給出每段小木棍的長度,程式設計幫他找出原始木棍的最小可能長度。輸入格式 第一行為乙個單獨的整數 ...

一本通 1 2 例 3 曲線

題目link 經典的三分裸題。三分主要是用來求乙個滿足單峰性的函式的最大 最小值的一種演算法,其原理和二分基本一樣。假設求最小值,首先把選擇區域分為三段,然後比較這兩個三等分點的函式值誰更小一些,大的那一邊就不要了 如果大的是靠左的,那就連著左邊不要了,靠右同理 容易證明這樣做是正確的,然後像二分那...