![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
新时代农民工~
嗯哼
展开
-
连续子数组的最大和并返回下标
动态规划sum= max(sum+dp[i],dp[i])max = max(sum,max)public static int FindGreatestSumOfSubArray(int[] array) { int sum = 0;//包含a[i int max = 0;//不包括 int begin = 0; int end = 0; // 动态规划 sum= max = for(int i =原创 2022-03-16 21:48:10 · 482 阅读 · 0 评论 -
自然数拆分(回溯法)
一个整数N(N > 1)可以拆分成若干个大于等于1的自然数之和,请你输出所有不重复的拆分方式。若满足集合A=B,则称这两种拆分方式是重复的。例如 6 = 3 + 2 和 6 = 2 + 3, 就是重复的拆分方式。输入格式:一个正整数N(1≤N≤52)。注意:本题N的上限52,是经过PTA平台服务器测试后得到的上限,能够保证较好的搜索策略在PTA提交,在1s内求解。本地PC机上,即使较好方法运行时间也可能大于1s,如果觉得方法没问题,可以先提交试试。输出格式:按照拆分方案的字典序由小大到大原创 2020-05-12 18:02:14 · 4069 阅读 · 2 评论 -
自然数的拆分(完全背包)
给定一个自然数N,要求把N拆分成若干个正整数相加的形式,参与加法运算的数可以重复。与“自然数拆分问题”类似,同样需要满足方案的不重复。所谓拆分方式的重复性判定如下:给定N=a1 +a2 +…am1 和 N=b1 +b2 +…bm2 表示整数N的两种拆分方式。对于∀ai ,bj ≥1,令集合A={ai ∣1≤i≤m1 },B={bj ∣1≤j≤m2 }。若满足集合A=B,则称这两种拆分原创 2020-05-12 17:38:07 · 2521 阅读 · 7 评论 -
算法之最大子矩阵问题(压缩矩阵)
最大子矩阵和问题。给定m行n列的整数矩阵A,求矩阵A的一个子矩阵,使其元素之和最大。输入格式:第一行输入矩阵行数m和列数n(1≤m≤100,1≤n≤100),再依次输入m×n个整数。输出格式:输出第一行为最大子矩阵各元素之和,第二行为子矩阵在整个矩阵中行序号范围与列序号范围。输入样例5 660 3 -65 -92 32 -70-41 14 -38 54 2 2969 88 5...原创 2020-03-25 22:28:45 · 845 阅读 · 0 评论 -
线性选择算法和快速排序
线性选择也就是类似于快排得方式,每次确定一个位置,左边的数都比选择这个小(大)右边都比它大(小)。当选择第k小的数字,当在右边部分,就去递归右边部分舍去左边,(在左边舍去右边)里面的sort是快速排序select是线性选择#include<iostream>using namespace std;#include<time.h>#include<std...原创 2020-03-20 14:14:07 · 816 阅读 · 0 评论 -
输油管道问题(分治法)
某石油公司计划建造一条由东向西的主输油管道。该管道要穿过一个有n 口油井的油田。从每口油井都要有一条输油管道沿最短路经(或南或北)与主管道相连。如果给定n口油井的位置,即它们的x 坐标(东西向)和y 坐标(南北向),应如何确定主管道的最优位置,即使各油井到主管道之间的输油管道长度总和最小的位置? 证明可在线性时间内确定主管道的最优位置。给定n口油井的位置, 计算各油井到主管道之间的输油管道最小长...原创 2020-03-01 12:33:36 · 1714 阅读 · 0 评论 -
士兵排队(分治法)
在一个划分成网格的操场上,n个士兵散乱地站在网格点上。网格点用整数坐标(x,y)表示。士兵们可以沿网格边往上、下、左、右移动一步,但在同一时刻任一网格点上只能有一名士兵。按照军官的命令,士兵们要整齐地列成一个水平队列,即排列成(x,y),(x+1,y),…,(x+n-1,y)。如何选择x和y的值才能使士兵们以最少的总移动步数排成一行。编程计算使所有士兵排成一行需要的最少移动步数。题目引自POJ...原创 2020-03-01 12:29:14 · 4193 阅读 · 6 评论 -
北大oj 2018 best cow
给定一个长度为 n 的非负整数序列 A ,求一个平均数最大的,长度不小于 L 的子段。输入格式第一行用空格分隔的两个整数 n 和 L;第二行为 n 个用空格隔开的非负整数,表示 Ai输出格式输出一个整数,表示答案的 1000 倍。不用四舍五入,直接输出。样例样例输入10 66 4 2 10 3 8 5 9 4 1样例输出6500数据范围与提示1≤n≤10^5,0≤Ai...原创 2020-03-01 12:09:25 · 820 阅读 · 0 评论