POJ 2566:Bound Found(Two pointers)
【题目链接】 http://poj.org/problem?id=2566
【题目大意】
给出一个序列,求一个子段和,使得其绝对值最接近给出值,
输出这个区间的左右端点和区间和。
【题解】
因为原序列的前缀和不具有单调性,难以处理,
因此我们对前缀和进行排序,同时保留前缀和的右端点做标识作用,
题目要求区段和的绝对值最接近目标,因此排序不会造成前后顺序变化造成的影响
现在题目转化为在一个有序数列中,求一个数对,使得差值最接近给出数,
利用单调性,可以尺取解决问题。
【代码】
#include <cstdio>
#include <utility>
#include <algorithm>
#include <climits>
using namespace std;
const int N=100010,INF=INT_MAX;
typedef pair<int,int> P;
int n,m,s,t,ans,ansl,ansr;
P p[N];
int main(){
while(scanf("%d%d",&n,&m),n&&m){
p[0]=P(s=0,0);
for(int i=1;i<=n;i++)scanf("%d",&t),p[i]=P((s+=t),i);
sort(p,p+n+1);
while(m--){
scanf("%d",&t);
int l=0,r=1,Min=INF;
while(l<=n&&r<=n){
int tmp=p[r].first-p[l].first;
if(abs(tmp-t)<Min){
Min=abs(tmp-t); ans=tmp;
ansl=p[l].second; ansr=p[r].second;
}if(tmp>t)l++;else if(tmp<t)r++;else break;
if(l==r)r++;
}if(ansl>ansr)swap(ansl,ansr);
printf("%d %d %d\n",ans,ansl+1,ansr);
}
}return 0;
}
POJ 2566:Bound Found(Two pointers)的更多相关文章
- POJ 2100:Graveyard Design(Two pointers)
[题目链接] http://poj.org/problem?id=2100 [题目大意] 给出一个数,求将其拆分为几个连续的平方和的方案数 [题解] 对平方数列尺取即可. [代码] #include ...
- POJ 2796:Feel Good(单调栈)
http://poj.org/problem?id=2796 题意:给出n个数,问一个区间里面最小的元素*这个区间元素的和的最大值是多少. 思路:只想到了O(n^2)的做法. 参考了http://ww ...
- POJ 3318:Matrix Multiplication(随机算法)
http://poj.org/problem?id=3318 题意:问A和B两个矩阵相乘能否等于C. 思路:题目明确说出(n^3)的算法不能过,但是通过各种常数优化还是能过的. 这里的随机算法指的是随 ...
- POJ 1200:Crazy Search(哈希)
Crazy Search Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 32483 Accepted: 8947 Des ...
- POJ 3026 : Borg Maze(BFS + Prim)
http://poj.org/problem?id=3026 Borg Maze Time Limit: 1000MS Memory Limit: 65536K Total Submissions ...
- POJ 3301:Texas Trip(计算几何+三分)
http://poj.org/problem?id=3301 题意:在二维平面上有n个点,每个点有一个坐标,问需要的正方形最小面积是多少可以覆盖所有的点. 思路:从第二个样例可以看出,将正方形旋转45 ...
- POJ 2679:Adventurous Driving(SPFA+DFS)
http://poj.org/problem?id=2679 Adventurous Driving Time Limit: 1000MS Memory Limit: 65536K Total S ...
- POJ 1459:Power Network(最大流)
http://poj.org/problem?id=1459 题意:有np个发电站,nc个消费者,m条边,边有容量限制,发电站有产能上限,消费者有需求上限问最大流量. 思路:S和发电站相连,边权是产能 ...
- POJ 2104:K-th Number(整体二分)
http://poj.org/problem?id=2104 题意:给出n个数和m个询问求区间第K小. 思路:以前用主席树做过,这次学整体二分来做.整体二分在yr大佬的指点下,终于大概懂了点了.对于二 ...
随机推荐
- (原)Skeletal With DirectX12
@author: 白袍小道 @来源: Advanced Animation with DirectX, 游戏引擎架构 (暗影不解释连招) 引言: 3D模型动画的基本原理是让模型 ...
- Linux网卡驱动程序对ethtool的支持和实现
Linux 的一个显著特点就是其强大的网络功能,Linux 几乎支持所有的网络协议,并在这些协议基础上提供了丰富的应用.对 Linux 网络管理的重要性不言而喻,这些管理依赖于网络工具,比如最常用的 ...
- 原始套接字--icmp相关
icmp请求 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <uni ...
- shell之正则表达式
正则表达式(regular expression ,REGEXP): 元字符: .:匹配任意单个字符 []:匹配指定范围内的任意单个字符 [^]:匹配指定范围外的任意字符 字符集合:使用[字符集合] ...
- java语言基础第二讲 课程作业02 总结
一.编程的好习惯 1.注释习惯.单行注释://, 多行注释:/* */ . 2.程序中添加适当的空白:4个空格. 3.文件名必须与公有类名一致,即public class 类名. 4.java中 ...
- 软工实践 - 第十四次作业 Alpha 冲刺 (5/10)
队名:起床一起肝活队 组长博客:https://www.cnblogs.com/dawnduck/p/9992094.html 作业博客:班级博客本次作业的链接 组员情况 组员1(队长):白晨曦 过去 ...
- Eclipse中一个Maven工程的目录结构 (MacOS)
1. 为什么写这篇文章 在之前的javaSE开发中,没有很关注Eclipse工程目录下的环境,总是看见一个src就点进去新建一个包再写一个class.以后的日子中也没有机会注意到一个工程到底是怎么组织 ...
- POJ 3243 Clever Y | BSGS算法完全版
题目: 给你A,B,K 求最小的x满足Ax=B (mod K) 题解: 如果A,C互质请参考上一篇博客 将 Ax≡B(mod C) 看作是Ax+Cy=B方便叙述与处理. 我们将方程一直除去A,C的最大 ...
- BZOJ2756 [SCOI2012]奇怪的游戏 【网络流 + 二分】
题目 Blinker最近喜欢上一个奇怪的游戏. 这个游戏在一个 N*M 的棋盘上玩,每个格子有一个数.每次 Blinker 会选择两个相邻 的格子,并使这两个数都加上 1. 现在 Blinker 想知 ...
- code forces 979C
C. Kuro and Walking Route time limit per test 2 seconds memory limit per test 256 megabytes input st ...