寒假 9(max subsequence sum二分递归算法实现并debug,表的链表实现概念过程整理)

二分递归实现过程收获:

一个取max的函数,核心是我brute的排序函数;

递归啊,如果结果出错,检查的时候查具体步骤,递归这个指令没什么好检查的;

遍布每个得出结果的关键点的输出测试;

因为一开始把right设成了array length,后面出现了str[length],有随机错误;

声明为int的小数,编译器直接不足近似处理为整数。

某处加一个break point,左边就可以看运行信息

表的链表实现概念梳理:

用链表实现的表,没有固定的位置编号,仅可以从value上识别,寻找,一个element,一个位置

而且,在需要删除的时候,在验证value之后是回不到value的pointer所在的结构上的,但是value的delete又需要value的pointer所在的结构。

— —加一个和NULL be-counterpart的tool:header,用于hold链表;加一个find-previous function,也是个tool

经过meet both definitions和operations的要求,初步确立了通过另一种实现方法,包括definition要用到的结构,和operation要用到的工具,都是实现的内容,也就是实现的内容。

下面,我们可以,用链表模式实现表了:

header,node:structure,link,null;typedef;operating range definite?

functions:print, make null, find(value implementation and optimizing), find kth, insert, (place?), find previous, delete

另外一些琐:

We have made no effort to do this efficiently. We could have avoided using the mod routine (which is very expensive)

because n%10 = n -[ n/10 ]* 10

原文地址:https://www.cnblogs.com/guguclaire/p/8439873.html

时间: 2024-11-02 00:22:22

寒假 9(max subsequence sum二分递归算法实现并debug,表的链表实现概念过程整理)的相关文章

最大子序列和(Max Subsequence Sum)问题求解

给定(可能有负的)整数A1,A2,-,AN,求Ai,-,Aj和的最大值. 例如:输入4,-3,5,-2,-1,2,6,-2,最大子序列和为11(从A1到A7). 算法1:最直观的算法,穷举式地尝试所有可能.下标变量i表示子序列的开始位置,j表示结束位置,每次选定一个子序列Ai--Aj,再使用k遍历该子序列求子序列的和.代码如下: public static int maxSubSum1(int a[]){ ????????int maxSum=0; ???????? ????????for(in

Maxmum subsequence sum problem

We have a lot of ways to solve the maximum subsequence sum problem, but different ways take different time. 1.Brute-force algorithm int maxSubSum1(const vector<int> &a) { int maxSum=0; for(int i=0;i<a.size();i++) for(int j=i;j<a.size();j++

【BZOJ3638】Cf172 k-Maximum Subsequence Sum 线段树区间合并(模拟费用流)

[BZOJ3638]Cf172 k-Maximum Subsequence Sum Description 给一列数,要求支持操作: 1.修改某个数的值 2.读入l,r,k,询问在[l,r]内选不相交的不超过k个子段,最大的和是多少.1 ≤ n ≤ 105,1 ≤ m ≤ 105,1 ≤ l ≤ r ≤ n, 1 ≤ k ≤ 20 Sample Input 9 9 -8 9 -1 -1 -1 9 -8 9 3 1 1 9 1 1 1 9 2 1 4 6 3 Sample Output 17 25

1007 Maximum Subsequence Sum(25 分)

1007 Maximum Subsequence Sum(25 分) Given a sequence of K integers { N?1??, N?2??, ..., N?K?? }. A continuous subsequence is defined to be { N?i??, N?i+1??, ..., N?j?? } where 1≤i≤j≤K. The Maximum Subsequence is the continuous subsequence which has th

CF280D k-Maximum Subsequence Sum

CF280D k-Maximum Subsequence Sum 线段树维护贪心 要取\(k\)次,考虑贪心策略如下 先取最大的连续子段,然后有两种决策: ? 1.从原来的某一段已经被取的连续子段中取一段最小的断开那个子段 ? 2.另取一个子段 (非常有道理对吧) 接下来考虑用线段树优化这个贪心问题 其实就是每次取最大的一段,然后将这一段的正负号翻过来,以后再取时就是断开子段了 是一个简单的线段树问题 #include<bits/stdc++.h> using namespace std; #

1007 Maximum Subsequence Sum (25分) 求最大连续区间和

1007 Maximum Subsequence Sum (25分) Given a sequence of K integers { N?1??, N?2??, ..., N?K?? }. A continuous subsequence is defined to be { N?i??, N?i+1??, ..., N?j?? } where 1≤i≤j≤K. The Maximum Subsequence is the continuous subsequence which has th

Maximum Subsequence Sum - 最大子列和问题_C语言实现

第一次写这方面的blog.自己也是初次接触相关知识,写的有不妥的地方十分欢迎大家指正~ 这是浙大PAT上的一道算法题(据说是浙大04年研究生复试题),题目是这样的: Maximum Subsequence Sum Given a sequence of KK integers { N_1N?1??, N_2N?2??, ..., N_KN?K?? }. A continuous subsequence is defined to be { N_iN?i??, N_{i+1}N?i+1??, ..

Maximum Subsequence Sum (25)

升级版的最大子列和问题 没什么好说的 #include <iostream> using namespace std; int main() { int n; cin >> n; int *a = (int*)malloc(n*sizeof(int)); for (int i = 0; i < n; i++){ cin >> a[i]; } int max = -1,sum=0; int maxl = a[0], maxr = a[0]; int l = a[0]

寒假week1---二分查找(二分枚举)

寒假week1---二分查找(二分枚举)1.适用条件:要查找(枚举)的集合有序 && 查找(枚举)的"条件"具有单调性2.什么是"条件":example: 1.给定一个有序数组,从中查找数字7的下标.条件是:这个数字等于7. 2.给定一个有序数组,从中查找满足函数f(x)<99的数字的下标.条件是:f(x)<99.3.什么是"满足条件": 在上述例1中,所有等于7的数字都是满足条件的,例2中所有f(x)<99的x