題目描述:有若干張郵票,要求從中選取最少的郵票張數湊成乙個給定的總值。 如,有1分,3分,3分,3分,4分五張郵票,要求湊成10分,則使用3張郵票:3分、3分、4分即可。
這題我是用dfs暴力搜尋+貪心剪枝做的,居然神奇的ac了。可能是資料量比較少,理論上時間複雜的是o(2^n),基本上是過不了的。所以,在忘記dp的情況下,大膽剪枝暴力,能得一點分得一點分啊哈哈。//dfs遞迴剪枝求法
#include "bits/stdc++.h"
using
namespace
std;
int a[21];
int fsum;
int n;
vector
fdepth;
void dfs (int i, int sum, int depth)
else
}bool cmp (const
int &a, const
int &b)
int main()
for (int i = 0; i < n; i++)
if (!fdepth.empty())
else
printf("0\n");
}}
判斷整數是否為回文數
判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 1 輸入 121 輸出 true 示例 2 輸入 121 輸出 false 解釋 從左向右讀,為 121 從右向左讀,為 121 因此它不是乙個回文數。示例 3 輸入 10 輸出 false 解釋 從右向左...
判斷是否為水仙花數
水仙花數是指乙個 n 位數 n 3 它的每個位上的數字的 n 次冪之和等於它本身。例如 111 555 333 153 獲取數字 整數 var inputnum prompt 請輸入乙個整數 獲取它是多少位 console.log inputnum.length var leng inputnum....
C 基礎 判斷字串是否為空 判斷字元是否為數字
一 判斷字串是否為空 string.empty和string 是一樣的,同樣都是需要占用記憶體空間 空字串 但優先推薦使用string.empty console.writeline equals string.empty 結果 true 還一種高效判斷方法 s.length 0 來判斷字串是否為空...