这次在求数组的子数组之和的最大值的条件下又增加了新的约束:  1.要求数组从文件读取.      2.如果输入的数组很大,  并且有很多大的数字,  就会产生比较大的结果 (考虑一下数的溢出), 请保证你的程序能正常输出.      3.另外, 如果输入文件的参数有错误, 这个程序应该能正常退出, 并显示相应的错误信息. 任何输入错误都不能导致你的程序崩溃. 设计思路: 1.首先就是对文件的读取,从文件中读取数组,将按行读取的数组进行分割,存储 2.接入求最大值函数,调用数组,调整类型,对于大数…
<编程之美>183页,问题2.14——求子数组的字数组之和的最大值.(整数数组) 我开始以为可以从数组中随意抽调元素组成子数组,于是就有了一种想法,把最大的元素抽出来,判断是大于0还是小于等于0,如果大于0就对除了这个最大值外剩下的数组部分进行递归: using System; using System.Collections.Generic; using System.Linq; namespace MaxSumSubArray { class Program { static void M…
新的要求:一维数组改成循环数组,只是涉及简单算法,只是拿了小数做测试 想法:从文件读取数组,然后新建数组,将文件读取的数组在新数组中做一下连接,成为二倍长度的数组,然后再遍历,将每次遍历的子数组的和存到result数组中,最后比较result数组的最大值 代码如下: 1 package test2; 2 import java.io.BufferedReader; 3 import java.io.File; 4 import java.io.FileReader; 5 import java.…
在之前的基础上又安排了二维数组的,在课上一开始是理解错要求了,简单的以为用循环数组就能解决,但是却忽视了子数组是否能构成矩形,之后课下和同学们讨论,主要是多重遍历,但是我还是没搞明白怎么构成新的二维数组,之后同学给了一段源代码,自己还在摸索: 1 package b; 2 3 import java.util.Scanner; 4 5 import javax.print.attribute.standard.PrinterLocation; 6 7 public class b 8 { 9 p…
题目:有N个整数的元素的一维数组,求子数组中元素之和中最大的一组(思想:动态规划) 分析: 设该数组为array[N], 那么对于array[i]该不该在元素之和最大的那个子数组中呢?首先,不如假设array[0..i-1]这个子数组的元素之和最大的子数组已求出,且和为Max,起始编号为start,结束编号为end, temp[i] 记录将array[i]强制加入到array[0..i-1]的元素之和最大的子数组中(比如数组:1, -3] 则temp[2] = -2, 虽然1才是最大和Max):…
Given an array with n integers, you need to find if there are triplets (i, j, k) which satisfies following conditions: 0 < i, i + 1 < j, j + 1 < k < n - 1 Sum of subarrays (0, i - 1), (i + 1, j - 1), (j + 1, k - 1) and (k + 1, n - 1) should be…
算法十分臃肿,效率捉鸡,不知用了多少循环,还有bug...任重道远,编程之美. 思想:按行遍历,找出每行的最大子数组.若行间都联通,行最大子数组相加后,再加上独立的正数.若行间不连通,找出较大子路径,再加上独立正数. 但是!有bug,写完之后想到的:每一行的最大子数组中的负数,有可能是不需要加上的.还没想好. #include<iostream> using namespace std; /*int yiwei_max(int n,int a[],int *p,int *q) //自己写的函数…
T1 题意:给你一个图,可以不花代价经过 \(K\) 条边,问从起点到终点的最短路 考试的想法:设 \(dis_{i,j}\) 表示从起点免费了 \(j\) 条边到 \(i\) 的最短路 然后直接跑 \(\text{spfa}\) 结果:\(WA\) 正解:分层图,需要考虑去到下一层就不能回来的情况 分为 \(K\) 层,同一层的 \(u,v\) 边权不变,双向边,去下一层的单向边,权值为 0 然后 \(\text{spfa}\) 超时,用 \(\text{dijkstra}\) 即可 答案:免…
T1 看起来十分复杂,打表后发现答案是 \(n*m\mod p\) 具体的证明... 原式的物理意义,就是从坐标原点(0,0),用每一种合法的斜率, 穿过坐标[1 ~ n , 1 ~ m]的方阵中的整点的个数,总数即 n*m. T2 考试时没想到 \(O(n^2)\) 的做法 \[\begin{aligned} A_{k+i-1}-B_i &=A_{k+j-1}-B_j \\ A_{k+i-1}-A_{k+j-1} &= B_i-B_j \\ A_i-A_j &= B_i-B_j…
区间 DP 专场:愉快爆炸 T1 题目大意 有 \(n\) 个有颜色的块,连续 \(k\) 个相同颜色的就可以消掉 现在可以在任意位置插入任意颜色的方块,问最少插入多少个可以全部抵消 题解 先把连续的化成一块,问题变为如何消掉一块. \(num\) 为个数, \(color\) 为颜色 设 \(F_{i,j,len}\) 表示表示 \([i,j]\) 后面有 \(len\) 个和 \(j\) 颜色一样的与 \(j\) 一起消除. 初始 \(F_{i,i,len}=\max(0,k-num_i-l…