
算法题
noyyh
这个作者很懒,什么都没留下…
展开
-
概率算法
概率算法概率算法允许算法在执行过程中随机地选择下一个计算步骤。在很多情况下,算法在执行过程中面临选择时,随机性选择比最优选择省时,因此概率算法可以在很大程度上降低算法的复杂度。题目在 n×n格的棋盘上放置彼此不受攻击的车。按照国际象棋的规则,车可以攻击与之处在同一行或同一列上的棋子。在棋盘上的若干个格中设置了堡垒,战车无法穿越堡垒攻击别的战车。对于给定的设置了堡垒的 n×n格棋盘,设计一个概率算法,在棋盘上放置尽可能多彼此不受攻击的车。【输入描述】 第1行有1个正整数n。接下来n行中,每行有1个由字原创 2020-12-28 15:54:56 · 447 阅读 · 0 评论 -
动态规划
题目描述:有N堆石子排成一排,每堆石子有一定的数量。现要将N堆石子并成为一堆。合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价为这两堆石子的和,经过N-1次合并后成为一堆。求出总的代价最小值。样例输入713 7 8 16 21 4 1831 2 3样例输出2399分析:(1)状态转移方程:dp[i][j]=min( dp[i][j] , dp[i][k]+dp[k+1][j]+w[j]-w[i-1] )(2) 算法设计思想及描述:dp[i][j]表示从位置 i 到转载 2020-12-12 10:13:36 · 383 阅读 · 1 评论 -
九宫BFS
九宫重排问题参考博客https://www.cnblogs.com/soTired/p/5528099.html这位博主采用c++实现,思路很好。但是采用bfs又递归的方式没有必要。#include <stdio.h>#include <string.h>long int fac[10]={1,1,2,6,24,120,720,5040,40320,362880};//阶乘表unsigned char step[363880]={0}; // 9!转载 2020-12-02 19:35:09 · 139 阅读 · 0 评论 -
菜单中的递归函数
http://localhost:8080/login?username=admin&password=admin返回token在Authorization字段加上token 访问localhost:8080/menu/findNavTree?userName=admin接口返回的json对象如下:{ "status": 200, "msg": "success", "data": [ { "id": 1,原创 2020-11-12 15:32:54 · 240 阅读 · 3 评论 -
二分法红包
采用二分法划分红包 public static List<Integer> divideRedPackage(Integer totalAmount,Integer totalPeopleNum){ int restAmount=totalAmount; //剩余金额 int restPeopleNum=totalPeopleNum; //剩余人数 ArrayList<Integer>amountList= new A原创 2020-10-06 10:48:47 · 257 阅读 · 0 评论 -
迪杰斯特拉最短路径
例题Dijkstra求最短路 I给定一个n个点m条边的有向图,图中可能存在重边和自环,所有边权均为正值。请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出-1。输入格式第一行包含整数n和m。接下来m行每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。输出格式输出一个整数,表示1号点到n号点的最短距离。如果路径不存在,则输出-1。数据范围1≤n≤50,1≤m≤10^5,图中涉及边长均不超过10000。输入样例:3 31 2 22 3 1转载 2020-11-12 10:03:29 · 108 阅读 · 0 评论 -
hihocoder1364背包问题
描述小Hi在游乐园中获得了M张奖券,这些奖券可以用来兑换奖品。可供兑换的奖品一共有N件。第i件奖品需要Wi张奖券才能兑换到,其价值是Pi。小Hi使用不超过M张奖券所能兑换到的最大奖品总价值是多少?输入第一行两个整数N,M。接下来N行,每行两个整数Wi,Pi。对于 50%的数据: 1≤N,M≤1000对于 100%的数据: 1≤N,M≤100000, 1≤Pi,Wi≤10。输出一行一个整数,表示最大的价值。样例输入3 102 38 810 10样例输出11#include转载 2020-10-04 09:13:24 · 192 阅读 · 0 评论