![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法练习
YMY6666
这个作者很懒,什么都没留下…
展开
-
LeetCode 1575. 统计所有可行路径 深搜和动态规划解法
给你一个 互不相同的整数数组,其中locations[i]表示第i个城市的位置。同时给你start,finish和fuel分别表示出发城市、目的地城市和你初始拥有的汽油总量每一步中,如果你在城市 i,你可以选择任意一个城市 j,满足 j != i且0 <= j < locations.length,并移动到城市j。从城市i移动到j消耗的汽油量为|locations[i] - locations[j]|,|x|表示x的绝对值。请注意,fu...原创 2020-09-08 13:13:24 · 476 阅读 · 0 评论 -
有序数组生成高度平衡二叉搜索树
将有序数组转换为二叉搜索树 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1。 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9/ /-10 ...原创 2020-08-12 16:43:24 · 305 阅读 · 0 评论 -
leetcode 101题,判断对称二叉树
对称二叉树给定一个二叉树,检查它是否是镜像对称的。例如,二叉树[1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2/ \ / \3 4 4 3但是下面这个[1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3 public static boolean isSymmetric(TreeNode root) { //如果根节点为空则直接返回true...原创 2020-08-12 12:41:30 · 150 阅读 · 0 评论 -
多重部分和
题目描述有n中不同大小的数字ai,每种各mi个。判断是否可以从这些数字之中选出若干使他们的大小恰好为K.限制条件111输入多组数据。第一行n。第二行不同的数字ai.第三行对应数字拥有的个数输出能挑选若干恰好和为K则输出“Yes”,反之输出“No”.#include#includestruct node{in原创 2016-09-10 16:00:16 · 348 阅读 · 0 评论 -
完全背包
描述直接说题意,完全背包定义有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的体积是c,价值是w。求解将哪些物品装入背包可使这些物品的体积总和不超过背包容量,且价值总和最大。本题要求是背包恰好装满背包时,求出最大价值总和是多少。如果不能恰好装满背包,输出NO输入第一行: N 表示有多少组测试数据(N接下来每组测试数据的第一行有两个整数M,V。 M表示物原创 2016-09-10 16:02:49 · 275 阅读 · 0 评论 -
数塔问题(区间dp)
输入一个n层的三角形,第i层有i个数,求从第1层到第n层的所有路线中,权值之和最大的路线。规定:第i层的某个数只能连线走到第i+1层中与它位置相邻的两个数中的一个。#include#includeint main(){int n,dp[400][400],i,j,a[400][400],max;scanf("%d",&n);max=0;memset(原创 2016-09-10 17:20:00 · 459 阅读 · 0 评论 -
小希的迷宫
小希的迷宫Problem Description上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和B,那么既可以通过它从房间A走到房间B,也可以通过它从房间B走到房间A,为了提高难度,小希希望任意两个房间有且仅有一条路径可原创 2016-11-22 16:30:02 · 283 阅读 · 0 评论 -
快速线性查找素数
#include<stdio.h>#include<string.h>#define max 2000005int a[max],b[max];int main() { int n,i,j,k; while(scanf("%d",&n)!=EOF&&n!=0) { k=0; memset(a,0,sizeof(a)...原创 2018-07-26 16:23:07 · 232 阅读 · 0 评论 -
单调递增子序列(DP+二分)
描述给定一整型数列{a1,a2...,an}(0<n<=100000),找出单调递增最长子序列,并求出其长度。如:1 9 10 5 11 2 13的最长单调递增子序列是1 9 10 11 13,长度为5。输入有多组测试数据(<=7)每组测试数据的第一行是一个整数n表示序列中共有n个整数,随后的下一行里有n个整数,表示数列中的所有元素.每个整形数中间用空格间隔开(...原创 2020-08-12 12:29:22 · 313 阅读 · 0 评论 -
多重部分和二进制优化
多重部分和问题题目描述有n中不同大小的数字ai,每种各mi个。判断是否可以从这些数字之中选出若干使他们的大小恰好为K.限制条件111输入多组数据。第一行n。第二行不同的数字ai.第三行对应数字拥有的个数输出能挑选若干恰好和为K则输出“Yes”,反之输出“No”.样例输入133 5 83 2 217样例输出Yes原创 2016-09-10 15:59:34 · 335 阅读 · 0 评论 -
采药
题目描述辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。”原创 2016-09-10 15:51:28 · 702 阅读 · 0 评论 -
表达式求值
描述ACM队的mdd想做一个计算器,但是,他要做的不仅仅是一计算一个A+B的计算器,他想实现随便输入一个表达式都能求出它的值的计算器,现在请你帮助他来实现这个计算器吧。比如输入:“1+2/4=”,程序就输出1.50(结果保留两位小数)输入第一行输入一个整数n,共有n组测试数据(n每组测试数据只有一行,是一个长度不超过1000的字符串,表示这个运算式,每个运算式都是以原创 2016-09-10 15:49:34 · 256 阅读 · 0 评论 -
八皇后
八皇后问题是一个以国际象棋为背景的问题:如何能够在 8×8 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。 对于八皇后问题,每次放置皇后时都要找到一个合适的位置,我们可以先放第一行,然后从第一列到最后一列每个位置都去尝试,判断在此位置的同一横行,竖行,斜线(有两条)上是否放有其他皇后,若有其原创 2016-07-26 09:14:42 · 466 阅读 · 0 评论 -
NYOJ迷宫寻宝(一)
描述一个叫ACM的寻宝者找到了一个藏宝图,它根据藏宝图找到了一个迷宫,这是一个很特别的迷宫,迷宫里有N个编过号的门(N 输入输入可能会有多组测试数据(不超过10组)。每组测试数据的第一行包含了两个整数M,N(1.表示可以走的路S:表示ACM的出发点G表示宝藏的位置X表示这里有墙,ACM无法进入或者穿过。A,B,C,D,E表示这里是门,a,原创 2016-07-29 20:55:51 · 1023 阅读 · 0 评论 -
巴什博奕类型取石子
只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。 如果n=m+1,那么无论先手拿走多少个,后手都可以把石子全部拿完,n又可以用一个公式表示:n=(m+1)*k+T,T 若 T=0,则 n 刚好是 m+1 的整数倍,则无论先手每次拿多少个都会剩余a*(m+1)+(m+1-X) 【X为拿走的个数】,a为正原创 2016-07-10 08:23:35 · 381 阅读 · 0 评论 -
ACM找点问题
描述上数学课时,老师给了LYH一些闭区间,让他取尽量少的点,使得每个闭区间内至少有一个点。但是这几天LYH太忙了,你们帮帮他吗?输入多组测试数据。每组数据先输入一个N,表示有N个闭区间(N≤100)。接下来N行,每行输入两个数a,b(0≤a≤b≤100),表示区间的两个端点。输出输出一个整数,表示最少需要找几个点。 解:此原创 2016-07-21 09:15:51 · 655 阅读 · 0 评论 -
DP背包问题
描述现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w<=10);如果给你一个背包它能容纳的重量为m(10<=m<=20),你所要做的就是把物品装到背包里,使背包里的物品的价值总和最大。输入第一行输入一个正整数n(1随后有n测试数据,每组测试数据的第一行有两个正整数s,m(1输出输出每组测试数据中背包内的物品的价值和原创 2016-09-10 15:30:44 · 262 阅读 · 0 评论 -
单调递增最长子序列
描述给定一整型数列{a1,a2...,an}(0如:1 9 10 5 11 2 13的最长单调递增子序列是1 9 10 11 13,长度为5。输入有多组测试数据(每组测试数据的第一行是一个整数n表示序列中共有n个整数,随后的下一行里有n个整数,表示数列中的所有元素.每个整形数中间用空格间隔开(0数据以EOF结束 。输入数据保证合法(全为int型整数)!输原创 2020-08-12 12:43:11 · 522 阅读 · 0 评论 -
dp背包问题
描述现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w<=10);如果给你一个背包它能容纳的重量为m(10<=m<=20),你所要做的就是把物品装到背包里,使背包里的物品的价值总和最大。输入第一行输入一个正整数n(1随后有n测试数据,每组测试数据的第一行有两个正整数s,m(1输出输出每组测试数据中背包内的物品的价值和原创 2016-09-10 15:47:05 · 279 阅读 · 0 评论 -
动态规划:从新手到专家(关于动态规划算法最精彩的中文描述,没有之一)
March 26, 2013作者:Hawstein出处:http://hawstein.com/posts/dp-novice-to-advanced.html声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 ,转载请注明作者及出处。前言本文翻译自TopCoder上的一篇文章: Dy转载 2016-07-15 10:01:13 · 401 阅读 · 0 评论