【演算法 in python | DP】紙幣面額拼湊
給你六種面額1、5、10、20、50、100元的紙幣,假設每種幣值的數量都足夠多,編寫程式求組成N元(N為0-10000的非負整數)的不同組合的個數。
def fun(n): money = [1,5,10,20,50,100] dp = [0 for i in range(n+1)] # dp[i]指n為i時的拼湊方法數 dp[0] = 1 #當n為0是,方法數為1 for item in money: for i in range(1,n+1): if i >= item: dp[i] += dp[i-item] return dp[n]
相關推薦
【演算法 in python | DP】紙幣面額拼湊
給你六種面額1、5、10、20、50、100元的紙幣,假設每種幣值的數量都足夠多,編寫程式求組成N元(N為0-10000的非負整數)的不同組合的個數。 def fun(n): money = [1,5,10,20,50,100] dp = [0 for i in range(n+
【演算法 in python | DP】斐波那契數列vs卡塔蘭數列
1. 斐波那契數列 公式: 應用:爬樓梯 假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? class Solution: def climbStairs(self, n):
【演算法 in python | DP】子串和(乘積)最大
1. 最大子序和 給定一個整數陣列 nums ,找到一個具有最大和的連續子陣列(子陣列最少包含一個元素),返回其最大和。nums中有正有負。 class Solution: def maxSubArray(self, nums): res = [0
【演算法 in python | DP】LCS最長公共子串
1. LCS,最長公共子串 動態規劃,狀態轉移方程: #該版本是返回最長公共子串和其長度,若只返回長度,則可以簡化 def lcs(s1, s2): l1 = len(s1) l2 = len(s2) # res[i][j]儲存子串s1[0:i] 和 子串s2[
【演算法 in python | 樹】其他試題
1. 對稱二叉樹 判斷一個樹是否是對稱的。(遞迴) def sym(head): if head is None: return True else: return cmp(head.left, head.right) def cmp(left
【演算法 in python | 樹】二叉樹遍歷
二叉樹深度優先遍歷:先序遍歷,中序遍歷,後序遍歷的遞迴與非遞迴。 二叉樹廣度優先遍歷:層次遍歷。 class TreeNode: def __init__(self, x): self.val = x self.left = None
【演算法 in python】匹配括號
一個合法的括號匹配序列有以下定義: 1、空串""是一個合法的括號匹配序列 2、如果"X"和"Y"都是合法的括號匹配序列,"XY"也是一個合法的括號匹配序列 3、如果"X"是一個合法的括號匹配序列,那麼"(X)"也是一個合法的括號匹配序列 4、每個合法的括號序列都可以由以上規則生成。 例如: "","
【演算法 in python】排序演算法
1. 氣泡排序 def bubbleSort(arr): for i in range(len(arr)-1): for j in range(len(arr)-1-i): if arr[j] > a
【演算法 in python】查詢演算法
1. 順序查詢 無序序列or順序序列 時間複雜度:O(n) ASL = (n+1)/2 def search(arr, a): for i in range(len(arr)): if arr[i] == a: return i
【演算法 in python】全排列
1.全排列 給定一個沒有重複數字的序列,返回其所有可能的全排列 #遞迴,取一個數放在第一個位置,然後求剩下資料的全排列,以此類推 class Solution: def permute(self, nums): """ :type nums: List
POJ 1742 Coins 【多重背包DP】
數量 printf can 硬幣 ring editable urn content std 題意:有n種面額的硬幣。面額、個數分別為A_i、C_i,求最多能搭配出幾種不超過m的金額? 思路:dp[j]就是總數為j的價值是否已經有了這種方法,如果現在沒有,那麽我們就一個個硬
FZU 2234 牧場物語【多線程dp】
tle 定義 math type play inf 一加 i++ data Problem 2234 牧場物語 Problem Description 小茗同學正在玩牧場物語。該遊戲的地圖可看成一個邊長為n的正方形。 小茗同學突然心血來潮要去砍樹,然而,斧頭在小茗的
【最短路】【二分圖匹配】【樹形背包DP】Day 10.8
void second eof 最小 span har mes find names T1 最短路 1 #include <cstdio> 2 #include <queue> 3 #include <iostream>
poj 2229 【完全背包dp】【遞推dp】
cin microsoft cow pro different 偶數 http family sam poj 2229 Sumsets Time Limit: 2000MS Memory Limit: 200000K Total Submissions: 2
BZOJ1563/洛谷P1912 詩人小G 【四邊形不等式優化dp】
set har 方案 zoj #define 證明 isp 現在 fine 題目鏈接 洛谷P1912【原題,需輸出方案】 BZOJ1563【無SPJ,只需輸出結果】 題解 四邊形不等式 什麽是四邊形不等式? 一個定義域在整數上的函數\(val(i,j)\),滿足對\(\fo
【Mac系統 + Python + Django】之搭建第一個Demo
versions 打開 配置 onf demo -s 進入 127.0.0.1 seq 一、首先,用pip安裝Django # 安裝命令 pip install django==1.10.3 安裝路徑為: /Users/zhan/.pyenv/versi
bzoj 4903: [Ctsc2017]吉夫特【lucas+狀壓dp】
二進制 clu 根據 main namespace ios ctsc ace 狀壓dp 首先根據lucas, \[ C_n^m\%2=C_{n\%2}^{m\%2}*C_{n/2}^{m/2} \] 讓這個式子的結果為計數的情況只有n&m==m,因為m的每一個為1
【10.31校內測試】【組合數學】【記憶化搜尋/DP】【多起點多終點二進位制拆位Spfa】
Solution 注意取模!!! Code #include<bits/stdc++.h> #define mod 1000000007 #define LL long long using namespace std; int n, a, b;
【演算法與資料結構】連結串列
1.如何分別用連結串列和陣列實現LRU緩衝淘汰策略? 1)什麼是快取? 快取是一種提高資料讀取效能的技術,在硬體設計、軟體開發中都有著非廣泛的應用,比如常見的CPU快取、資料庫快取、瀏覽器快取等等。 2)為什麼使用快取?即快取的特點 快取的大小是有限的,當快取被用滿時,哪些資料應該被清理出去,哪
【演算法與資料結構】陣列
陣列看起來簡單基礎,但是很多人沒有理解這個資料結構的精髓。帶著為什麼陣列要從0開始編號,而不是從1開始的問題,進入主題。 1. 陣列如何實現隨機訪問 1) 陣列是一種線性資料結構,用連續的儲存空間儲存相同型別資料 I) 線性表:陣列、連結串列、佇列、棧 非線性表:樹 圖 II) 連續的記憶體空間