1 / 7

求区间和 an_easy_problem4

求区间和 an_easy_problem4. 报告人学号:031302427 姓名:阮芳健 报告时间:9月9日. 问题描述. 给你一个序列的数,求某一段区间的和。 输入:两个正整数n 和m 。(n 表示这个序列的数的个数。m 表示几次询问。) 范围:(1<=n,m<=100000). 对问题的理解和分析. 明确要求:求某一段区间[a,b]的和; 分析: 法一:用数组存数列中的元素,给出区间时,再一个一个累加; 法二:用数组存前 i 项的和,给出指定区间就可以直接用对应的两个元素值相减,就是所得结果。. 算法与数据结构的选取.

Download Presentation

求区间和 an_easy_problem4

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 求区间和an_easy_problem4 报告人学号:031302427 姓名:阮芳健 报告时间:9月9日

  2. 问题描述 • 给你一个序列的数,求某一段区间的和。 • 输入:两个正整数n 和m 。(n 表示这个序列的数的个数。m 表示几次询问。) • 范围:(1<=n,m<=100000)

  3. 对问题的理解和分析 • 明确要求:求某一段区间[a,b]的和; • 分析: 法一:用数组存数列中的元素,给出区间时,再一个一个累加; 法二:用数组存前 i 项的和,给出指定区间就可以直接用对应的两个元素值相减,就是所得结果。

  4. 算法与数据结构的选取 • n 的值最大可以达到100000,数据值n比较大时,方法一用时上较多会超时,方法二相对用时少一些。 算法复杂度分析: 法一时间复杂度为T(n)=O(n^2), 法二时间复杂度为T(n)=O(n) 所以,法二更优!

  5. 核心代码 • for(i=1;i<=n;i++) • { • scanf("%d",&k); • t[i]=t[i-1]+k; //用数组 t [ i ] 存前 i 项的和。 • }

  6. 算法的优缺点分析和改进 • 优点: 方法简单易懂,条理清晰 • 改进: 还有一部分人用树状数组,时间复杂度为O(nlgn) • 总结: 拿到题目,先分析,各种情况都要考虑到位,可以简单化的问题尽量简单化。

  7. 谢谢观看!

More Related