链接:https://cn.vjudge.net/problem/POJ-2566
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
typedef sz 100005;
pair<int,int> p[sz];
int n,k,q;
void solve(int t){
int temp = 0,sum = 1e9+1,i = 0,j = 1,l,r;
while(j <= n&&sum){
temp = p[j].first-p[i].first;
if(abs(temp-t) < ans ){
ans = abs(temp-t)
}
}
}
int main(){
int x,sum;
while(cin>>n>>k){
if(n == 0&&k == 0)
break;
p[0] = make_pair(0,0);
sum = 0;
for(int i = 1;i<=n;++i){
cin>>x;
sum += x;
p[i] = make_pair(sum,i);
}
sort(p,p+1+n);
while(k--){
cin>>x;
solve(x);
}
}
}

本文深入探讨了C++在编程竞赛中的应用,通过具体案例分析了如何使用C++解决复杂算法问题,包括数据结构的设计、算法优化以及编程技巧。文章详细介绍了pair数据类型的应用,以及如何通过sort函数进行排序,旨在帮助读者提升编程竞赛中的算法理解和实践能力。
787

被折叠的 条评论
为什么被折叠?



