A1044 Shopping in Mars (25 分)
一、技术总结
- 可以开始把每个数都直接相加当前这个位置的存放所有数之前相加的结果,这样就是递增的了,把i,j位置数相减就是他们之间数的和。
- 需要写一个函数用于查找之间的值,如果有就放返回大于等于这个数的右下标,函数中采用引用的传参方式,就不需要返回值了。
- 在处理存放下标问题上,如果发现有更小的数时,直接清空之前存放的值。
二、参考代码
#include<algorithm>
#include<iostream>
#include<vector>
using namespace std;
int n, m;
vector<int> sum, result;
void Func(int i, int &j, int &tempsum){
int left = i, right = n;
while(left < right){
int mid = (left + right)/2;
if(sum[mid] - sum[i-1] >= m){
right = mid;
}else{
left = mid + 1;
}
}
j = right;
tempsum = sum[j] - sum[i-1];
}
int main(){
cin >> n >> m;
sum.resize(n+1);
for(int i = 1; i <= n; i++){
scanf("%d", &sum[i]);
sum[i] += sum[i-1];
}
int minans = sum[n];
for(int i =1; i <= n; i++){
int j, tempsum;
Func(i, j, tempsum);
if(tempsum > minans) continue;
if(tempsum >= m){
if(tempsum < minans){
result.clear();
minans = tempsum;
}
result.push_back(i);
result.push_back(j);
}
}
for(int i = 0; i < result.size(); i += 2){
printf("%d-%d\n", result[i], result[i+1]);
}
return 0;
}
A1044 Shopping in Mars (25 分)的更多相关文章
- PAT 甲级 1044 Shopping in Mars (25 分)(滑动窗口,尺取法,也可二分)
1044 Shopping in Mars (25 分) Shopping in Mars is quite a different experience. The Mars people pay ...
- 1044 Shopping in Mars (25分)(二分查找)
Shopping in Mars is quite a different experience. The Mars people pay by chained diamonds. Each diam ...
- 1044 Shopping in Mars (25 分)
Shopping in Mars is quite a different experience. The Mars people pay by chained diamonds. Each diam ...
- PAT Advanced 1044 Shopping in Mars (25) [⼆分查找]
题目 Shopping in Mars is quite a diferent experience. The Mars people pay by chained diamonds. Each di ...
- 【PAT甲级】1044 Shopping in Mars (25 分)(前缀和,双指针)
题意: 输入一个正整数N和M(N<=1e5,M<=1e8),接下来输入N个正整数(<=1e3),按照升序输出"i-j",i~j的和等于M或者是最小的大于M的数段. ...
- pat1044. Shopping in Mars (25)
1044. Shopping in Mars (25) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Shop ...
- A1044. Shopping in Mars
Shopping in Mars is quite a different experience. The Mars people pay by chained diamonds. Each diam ...
- PAT甲级——A1044 Shopping in Mars
Shopping in Mars is quite a different experience. The Mars people pay by chained diamonds. Each diam ...
- 1044. Shopping in Mars (25)
分析: 考察二分,简单模拟会超时,优化后时间正好,但二分速度快些,注意以下几点: (1):如果一个序列D1 ... Dn,如果我们计算Di到Dj的和, 那么我们可以计算D1到Dj的和sum1,D1到D ...
随机推荐
- [Vue专题] 对比vue-cli2.x和vue-cli3.x的搭建
简介:深入了解脚手架vue-cli2.x版本与3.x版本构建项目的区别 搭建前提条件: node环境 node是傻瓜式安装的,直接去官网下载安装不断下一步 命令行输入node -v查询版本号,有版本号 ...
- json解析模块
json.loads(json) 把json格式的字符串转为Python数据类型 html_json = json.loads(res.text) json.dumps(python) 把 pytho ...
- csrf攻击与csrf防御
CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站 ...
- 抓包工具之fiddler实战3-接口测试
Fiddler实现接口测试 Fiddler提供了进行接口测试的功能,找到composer界面,选择接口方法,填写接口URL地址,发送请求. 例子:全国天气预报的接口 http://v.juhe.cn/ ...
- 瓜子IM智能客服系统的数据架构设计(整理自现场演讲)
本文由ITPub根据封宇在[第十届中国系统架构师大会(SACC2018)]现场演讲内容整理而成. 1.引言 瓜子业务重线下,用户网上看车.预约到店.成交等许多环节都发生在线下.瓜子IM智能客服系统的目 ...
- python接口自动化7-post文件上传
前言 文件上传在我们软件是不可少的,最多的使用是体现在我们后台,当然我们前台也会有.但是了解过怎样上传文件吗?这篇我们以禅道文档-创建文档,上传文件为例. post请求中的:Content-Type: ...
- Lambda,递归
1.Lamdba表达式 1.Lambda表达式的标准格式 三部分组成: 一些参数 一个箭头 一段代码 格式: (参数列表) -> {一些重写方法的代码} 解释说明格式: ():接口中抽象方法的参 ...
- 【Linux命令】常用系统工作命令11个(echo、date、reboot、poweroff、wget、ps、top、pidof、kill、killall、pkill)
目录 echo命令 date命令 reboot命令 poweroff命令 wget命令 ps命令 top命令 pidof命令 kill命令 killall命令 pkill命令 一.echo命令 ech ...
- 策略路由PBR(不含track)
策略路由:是一种依据用户制定的策略进行路由选择的机制.(公义)在特定数据进入路由表前,对其进行操控的方式.(本人定义) 根据作用对象的不同,策略路由可分为本地策略路由和接口策略路由: · 本地策略路由 ...
- Spring5源码解析2-register方法注册配置类
接上回已经讲完了this()方法,现在来看register(annotatedClasses);方法. // new AnnotationConfigApplicationContext(AppCon ...