zoukankan      html  css  js  c++  java
  • 【PAT甲级】1044 Shopping in Mars (25 分)(前缀和,双指针)

    题意:

    输入一个正整数N和M(N<=1e5,M<=1e8),接下来输入N个正整数(<=1e3),按照升序输出"i-j",i~j的和等于M或者是最小的大于M的数段。

    AAAAAccepted code:

     1 #define HAVE_STRUCT_TIMESPEC
     2 #include<bits/stdc++.h>
     3 using namespace std;
     4 int a[100007];
     5 int sum[100007];
     6 vector<pair<int,int> >ans;
     7 int main(){
     8     ios::sync_with_stdio(false);
     9     cin.tie(NULL);
    10     cout.tie(NULL);
    11     int n,m;
    12     cin>>n>>m;
    13     for(int i=1;i<=n;++i){
    14         cin>>a[i];
    15         sum[i]=sum[i-1]+a[i];
    16     }
    17     int l=0,t=0,mn=1e9;
    18     for(int i=0;i<=n;++i){
    19         t-=a[i];
    20         while(t<m&&l<=n)
    21             t+=a[l++];
    22         if(t>=m&&t<mn){
    23             mn=t;
    24             ans.clear();
    25             ans.push_back({i+1,l-1});
    26         }
    27         else if(t==mn)
    28             ans.push_back({i+1,l-1});
    29     }
    30     cout<<ans[0].first<<"-"<<ans[0].second;
    31     for(int i=1;i<ans.size();++i)
    32         cout<<"
    "<<ans[i].first<<"-"<<ans[i].second;
    33     return 0;
    34 }
    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    《构建之法》阅读笔记4
    团队冲刺第七天
    团队冲刺第六天
    团队冲刺第五天
    团队冲刺第四天
    团队冲刺第三天
    构建之法阅读笔记03
    第十四周进度条
    第二阶段冲刺站立会议10
    第二阶段冲刺站立会议09
  • 原文地址:https://www.cnblogs.com/ldudxy/p/11605695.html
Copyright © 2011-2022 走看看