數字dp HDU 3709 列舉對稱軸

2021-09-25 02:12:48 字數 1019 閱讀 4399

題目大意:

讓你求乙個區間的平衡數有多少個。平衡數:能找到乙個對稱軸,使兩邊的數平衡,例如:4139

以3為對稱軸,左邊:4 * 2+1 * 1=9, 右邊:9 * 1=9, 左右相等,那麼這個數平衡。

思路:直接列舉一下對稱軸,然後數字dp。在不同的對稱軸下0都是平衡數。其他數最多只能有乙個對稱軸。所以slove要減去在不同對稱軸下多計算的0的個數。

//s:左邊-右邊的值 k:對稱軸

if(pos==-1

)else}if

(!mt&&dp[k]

[pos]

[s]!=-1

)int len=mt?a[pos]:9

; ll ans=0;

for(

int i=

0;i<=len;i++)if

(pos

if(pos==k)}if

(!mt)

return ans;

}ll slove

(ll x)

ll pos=0;

while

(x) ll ans=0;

for(

int i=

0;i<=pos-

1;i++

)return ans-pos+1;

//減去多於的0

}int

main()

return0;

}

7 2列舉排列

7.2.1生成1 n 的排列 問題描述 輸入整數n,按照字典序從小到大列印出1 n的去所有排列。兩個序列的字典序大小關係等價於從頭開始第乙個不相同處的大小關係,例如 1,2,3 3,2,1 n 3時,輸出結果是 1,2,3 1,3,2 2,1,3 2,3,1 3,1,2 3,2,1 演算法思想 設集...

9 4 列舉型別

乙個變數只有幾種可能的取值,可以一一枚舉出來,變數的取值僅限於列舉的值的有限範圍內,而不適宜用整型 實型 字元型直接表示,c語言提供了這種列舉資料型別。例如,一年的四季有春夏秋冬 乙個星期有星期日 星期一到星期六等。定義列舉型別的一般形式為 enum 列舉型別名 如 enum weekday 1.列...

146 列舉型別

除了簡單的變數型別之外,c 還提供了3個複雜的變數 列舉,結構和陣列。列舉型別的定義 enum 列舉型別的宣告 列舉型別的賦值 在遊戲中我們可以定義乙個int型別來儲存狀態 0 遊戲暫停 1遊戲失敗 2遊戲勝利 3開始選單,但是這樣不容易閱讀,而且容易出錯。這個時候我們通過列舉型別來解決 enum ...