和为k的连续区间

Posted programyang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了和为k的连续区间相关的知识,希望对你有一定的参考价值。

技术图片

 

技术图片

#include <cmath>
#include <vector>
#include <algorithm>
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=10010;
int f[N];
ll s[N];
vector<int>res10010,10010;
int main() 
    int n, k ;
    cin>>n>>k;
    for(int i=1;i<=n;i++)cin>>f[i];
    for(int i=1;i<=n;i++)
        s[i]=s[i-1]+f[i];
    
    bool flag=false;
    unordered_map<ll,int>has;
    has[0]=0;
    for(int i=1;i<=n;i++)
        if(has.find(s[i]-k)!=has.end()&&res[0]>has[s[i]-k]+1)
            flag=true;
            res=has[s[i]-k]+1,i;
        
        if(has.find(s[i])==has.end())has[s[i]]=i;
    
    if(!flag)cout<<"No Solution"<<endl;
    else cout<<res[0]<<" "<<res[1]<<endl;

    return 0;

 

以上是关于和为k的连续区间的主要内容,如果未能解决你的问题,请参考以下文章

51nod 1094STL和为k的连续区间

51Nod - 1094 和为k的连续区间

和为k的连续区间

和为k的连续区间 前缀和

51nod 1094 和为k的连续区间

51Nod 1094 和为k的连续区间 | 水