Bound Found POJ - 2566 (尺取+前缀和)
题意 就是给一串序列 在给一个t 求一段区间的加和绝对值与t最小的值与区间左右端点是多少
思路 这道题一开始不知道如何去做 用尺取法求区间但是因为区间中存在负数没有单调性 没有特殊的特征
若对区间求一下前缀和 就使整个区间有了单调性 由于绝对值情况下 没有前后 所以我们队前缀和后的序列排序
对排序后的前缀和数串进行尺取 若是l和r内的数比t小r++ 比t大就l++ 若相等就break
code:
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
const int inf = 100010;pair<int,int>sum[inf];
int main()
{int n,k;while(cin>>n>>k,n+k){int tem=0;sum[0]=make_pair(0,0);for(int i=1;i<=n;i++){int p;scanf("%d",&p);tem+=p;sum[i]=make_pair(tem,i);}sort(sum,sum+n+1);
// for(int i=0;i<=n;i++)
// cout<<sum[i].first<<" "<<sum[i].second<<endl;while(k--){int t;scanf("%d",&t);int al,ar,ami,l=0,r=1,MAX = 2000000000;while(r<=n&&MAX){int ee = sum[r].first-sum[l].first;if(abs(ee-t)<MAX){MAX = abs(ee-t);ami = abs(ee);// cout<<ami<<" "<<l<<" "<<r<<" 123"<<endl;al = sum[l].second;ar = sum[r].second;}if(ee<t)r++;else if(ee>t)l++;else break;if(l==r)r++;}printf("%d %d %d\n",ami,min(al,ar)+1,max(al,ar));}}return 0;
}
Bound Found POJ - 2566 (尺取+前缀和)相关推荐
- Bound Found POJ - 2566(尺取法)
Signals of most probably extra-terrestrial origin have been received and digitalized by The Aeronaut ...
- Bound Found POJ - 2566(尺取法+前缀和创造区间变化趋势)
题意: 给定一个数组和一个值t,求一个子区间使得其和的绝对值与t的差值最小,如果存在多个,任意解都可行. 题目: Signals of most probably extra-terrestrial ...
- POJ 2566 Bound Found
题意 : 给你n个数字,这些数字可正可负,再给你个数字t, 求在这个数列中一个连续的子序列,和的绝对值 与t相差最小: 数据范围较大, 考虑数字没有负数的情况, 能够想到用尺取法解决, (关于尺取法, ...
- POJ 3320 Jessica's Reading Problem (尺取)
Description 给出一段长度为\(n\)的整数序列,求包含所有出现过的数的连续区间的最小长度. Input 第一行给出序列长度\(n\),第二行给出\(n\)个整数,表示这个序列.\(n \l ...
- 【HihoCoder - 1502】最大子矩阵(二维前缀和,尺取)
题干: 给定一个NxM的矩阵A和一个整数K,小Hi希望你能求出其中最大(元素数目最多)的子矩阵,并且该子矩阵中所有元素的和不超过K. Input 第一行包含三个整数N.M和K. 以下N行每行包含M个整 ...
- CodeForces - 1358D The Best Vacation(前缀和+尺取)
题目链接:点击查看 题目大意:给出 n 个数组成的数列,每个元素都可以展开为 1 , 2 , 3 .... a[ n ] ,现在将数列首尾相接,要求选取一段长度为 x 的连续数列,使得元素和最大 题目 ...
- 【POJ - 3320 】Jessica's Reading Problem (尺取,哈希)
题干: Jessica's a very lovely girl wooed by lots of boys. Recently she has a problem. The final exam i ...
- 【CodeForces - 660C】Hard Process (尺取 或 二分+滑窗,前缀和预处理)
题干: You are given an array a with n elements. Each element of a is either 0 or 1. Let's denote the l ...
- poj3061尺取法/前缀和 二分(java)
今天遇到这题因为以前没见到过,当时就是想着应该有着一个很简单的方法可以过但是奈何就是没思路.后来看了别人思路写了下来.学习了尺取法 poj3061 题目介绍: Description A sequen ...
最新文章
- UIView-Maker,实现UIView的clone操作和统一样式模型
- 一个类的实例是另一个类的属性python_Python中的类属性和实例属性引发的一个坑...
- 区别和认识四个判等函数
- python local variable_python学习笔记 - local, global and free variable
- 电脑计算机d盘有用吗,d盘不见了,教您电脑d盘不见了怎么解决
- 计算机组成原理题目题型总结)第三章:存储器
- ASP.NET生成静态页面方法大全(2)
- Memory Management in AIR / AS3 / Flash Garbage Collection.
- 中国双槽超声波清洗机市场趋势报告、技术动态创新及市场预测
- java正则表达式爬图片_Java正则表达式爬取网页,贴出完整代码
- L2-027 名人堂与代金券 (25 分)—团体程序设计天梯赛
- NLP之:百度SKEP
- 新手入门:Spring的一些学习方法及意见
- java垃圾回收的方法_java垃圾回收的方法都有哪些
- ESD笔记(三)_常用ESD保护电路优缺点
- GIF 字节格式介绍
- PHP面试-复习知识点整理
- Uber 叫车时,弹出以下代码导致无法打车(An email confirmation has been sent to...),解决办法...
- 使用bootstrap时下拉菜单失效问题解决
- 【tensorrt】——Network has dynamic or shape inputs, but no optimization profile has been defined.
热门文章
- Mvc 学习笔记(一)
- 浏览器获取正确的scrollTop值
- Asp.net 调用mysql存储过程参数传中文乱码!
- c++ using 前置声明_每日优鲜前置仓模式的配货优化方案案例介绍
- 同步考勤数据 钉钉_作为学校,我为何选择微校wxiao考勤打卡?
- SpringBoot打包成Docker镜像
- Android Studio 项目断开SVN连接
- 支付宝 PEM routines:PEM_read_bio:no start line
- Eclipse Java EE 开发 Web 应用程序
- 高一学生计算机知识现状分析,关于高中信息技术课教学现状的思考