![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
kaka_d
这个作者很懒,什么都没留下…
展开
-
动态规划
最少硬币问题【题目描述】使用3枚币值分别为 1、3、5的硬币兑换11,最少需要几枚硬币。【思路】确定状态 : -最后一步:最优策略中使用的最后一枚硬币ak -化成子问题:用最少的硬币依次从小面值拼到大面值 -状态:tmp[x]=最少用多少枚硬币拼出x 转移方程:tmp[i]=min{tmp[i-1]+1,tmp[i-3]+1,tmp[i-5]+1} 初始条件和边界情况:设初始值:tmp[0]=0因为转移方程无法求出tmp[0];若不能拼出来i,则tmp[i]为无穷大;.原创 2021-03-31 17:13:11 · 169 阅读 · 0 评论 -
Fence Repair-哈夫曼树
#include<iostream>#include<algorithm>#define MAX_N 1000using namespace std;int N, L[MAX_N];void init(){ cin>>N; for(int i=0;i<N;i++){ cin>>L[i]; }}bool complare(int a,int b){ return a>b;}void solve(){ /...转载 2021-03-26 19:53:04 · 118 阅读 · 0 评论 -
贪心算法
求硬币个数有1元、5元、10元、50元、100元、500元的硬币各C1,C5,C10,C50,C100,C500枚。现在要用这些硬币来支付A元,最少需要多少枚硬币?假设本题至少存在一种支付方案。限制条件:0<=C1,C5,C10,C50,C100,C500<=10的9次方0<= A <= 10的9次方l例如:输入:C1 = 3 ,C2 = 2, C10 = 1 , C50 = 3, C100 = 0 ,C500 = 2 ,A = 620输出:6(5...原创 2021-03-19 17:31:01 · 54 阅读 · 0 评论 -
宽度优先遍历-迷宫的最短路径
迷宫的最短路径输出:22#include<bits/stdc++.h>#define INF 10000000using namespace std;typedef pair<int,int> P;char c[105][105];//表示迷宫的字符串的数组int N,M;int sx,sy;//起点坐标int gx,gy;//终点坐标int d[105][105];//到各个位置的最短距离的数组int dx[4]={1,0,-1,0},dy[4]={原创 2021-03-19 15:15:06 · 148 阅读 · 0 评论 -
lake counting -深度优先遍历
Lake CountingLake counting 问题思路:深度优先遍历举例:输入:10 12W........WW..WWW.....WWW....WW...WW..........WW..........W....W......W...W.W.....WW.W.W.W.....W..W.W......W...W.......W.输出:3#include <bits/stdc++.h>using namespace std;char .原创 2021-03-15 18:03:56 · 135 阅读 · 0 评论 -
统计二叉树中度为1,2的结点个数c++
#include<iostream> using namespace std;//字符类型#define TElemType char //二叉树的二叉链表的表示与实现typedef struct BiTNode{ TElemType data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;//先序创建二叉树 BiTree CreateBiTree(){ char ch; BiTree T; cin>原创 2020-10-24 20:26:17 · 1877 阅读 · 0 评论