1044. Shopping in Mars (25)
来源:互联网 发布:chan算法 matlab代码 编辑:程序博客网 时间:2024/06/05 12:00
用二分查找找终点,不然会超时
#include<iostream>#include<vector>#define MAX 100001#define INF 0x3f3f3f#pragma warning(disable:4996)using namespace std;long int sum[MAX];vector<int> rr;int N;long int M;int min_M=INF;//最接近M大于M的数int flag = 0;int s_search(int index,int low, int high)//若存在大于M,输出最接近M大于M的终点,不存在输出最后一位{ if (low == high) return low; int mid = (low + high) / 2; if (sum[mid] - sum[index - 1] < M) return s_search(index, mid + 1, high); if (sum[mid] - sum[index - 1] == M) return mid; if (sum[mid] - sum[index - 1] > M) return s_search(index, low,mid);//保证若存在大于,最接近M大于M的终点留再范围中}int main(){ cin >> N>>M; sum[0] = 0; for (int t = 1;t <= N;t++) { int temp; scanf("%d", &temp); sum[t] = sum[t - 1] + temp; } for (int i = 1;i <= N;i++) { int temp = s_search(i, i, N); if (sum[temp] - sum[i - 1] == M) { printf("%d-%d\n", i, temp);flag = 1; } else if (flag == 0 && sum[temp] - sum[i - 1] > M)//当没有出现等于M的范围 { if (sum[temp] - sum[i - 1] == min_M) { rr.push_back(i);rr.push_back(temp); } if (sum[temp] - sum[i - 1] < min_M) { min_M = sum[temp] - sum[i - 1]; rr.clear();rr.push_back(i);rr.push_back(temp); } } } if (flag == 0) { for (auto it = rr.begin();it != rr.end();it+=2) printf("%d-%d\n", *it, *(it+1)); }}
0 0
- 1044. Shopping in Mars (25)
- 1044. Shopping in Mars (25)
- 1044. Shopping in Mars (25)
- 1044. Shopping in Mars (25)
- 1044. Shopping in Mars (25)
- 1044. Shopping in Mars (25)
- 1044. Shopping in Mars (25)
- 1044. Shopping in Mars (25)
- 1044. Shopping in Mars (25)
- 1044. Shopping in Mars (25)
- 1044. Shopping in Mars (25)
- 1044. Shopping in Mars (25)
- 1044. Shopping in Mars (25)
- 1044. Shopping in Mars (25)
- 1044. Shopping in Mars (25)
- 1044. Shopping in Mars (25)
- 1044. Shopping in Mars (25)
- 1044. Shopping in Mars (25)
- android中通过实现Parcelable来在两个页面之间传递对象的简单使用
- 性能指标之资源指标-CPU-谁占用了CPU-函数级-truss
- ORACLE 11G导入数据报ORA-12154错误解析
- 简单说一说数据结构——栈
- ubuntu安装pycharm
- 1044. Shopping in Mars (25)
- 计算listview一项高度
- 大型网站的高可用分析
- linux下automake用法
- 友盟第三方登录集成
- windows环境下ElasticSearch5以上版本安装head插件
- 第43篇一对多按原型图做(一)及 array_diff_key() 及array_diff_uassoc() 周日
- Redis的11种Web应用场景
- 性能指标之资源指标-CPU-谁占用了CPU-函数级-curt