解题思路
1、使用sums[i]表示从0开始到i的前面所有序列的和,那么sums一定是一个严格单调递增的序列。然后使用lower_bound找出第一个大于等于sums[i]+m的下标j,然后打印i+1和j。并找出当前面子序列和刚好大于m时,求最小的差。
2、如果没有正好相等的,就进行第二次遍历,用第一次遍历找出的最小值来判断输出对应的刚好大于的i+1和j下标即可。
代码
1 |
|
1、使用sums[i]表示从0开始到i的前面所有序列的和,那么sums一定是一个严格单调递增的序列。然后使用lower_bound找出第一个大于等于sums[i]+m的下标j,然后打印i+1和j。并找出当前面子序列和刚好大于m时,求最小的差。
2、如果没有正好相等的,就进行第二次遍历,用第一次遍历找出的最小值来判断输出对应的刚好大于的i+1和j下标即可。
1 | #include <cstdio> |
本文标题:PAT A1044 Shopping in Mars
文章作者:GavinYGM
发布时间:2020年08月31日 - 21:08
最后更新:2020年08月31日 - 22:08
原始链接:http://www.gavinygm.cn/2020/08/31/PAT-A1044-Shopping-in-Mars/
许可协议: 转载请保留原文链接及作者。