基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题
 收藏
 关注
一整数数列a1, a2, ... , an(有正有负),以及另一个整数k,求一个区间[i, j],(1 <= i <= j <= n),使得a[i] + ... + a[j] = k。

 
Input
  1. 1行:2个数N,KN为数列的长度。K为需要求的和。(2 <= N <= 10000,-10^9 <= K <= 10^9)
  2. 2 - N + 1行:A[i](-10^9 <= A[i] <= 10^9)。
Output
  1. 如果没有这样的序列输出No Solution
  2. 输出2个数i, j,分别是区间的起始和结束位置。如果存在多个,输出i最小的。如果i相等,输出j最小的。
Input示例
  1. 6 10
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
Output示例
  1. 1 4
  2.  
  3. 【代码】:
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4. #define inf 1e18+100
  5. #define LL long long
  6.  
  7. const int maxn = 1e4+;
  8.  
  9. int main()
  10. {
  11. int n,k;
  12. int a[maxn],sum[maxn];
  13. memset(sum,,sizeof(sum));
  14. cin>>n>>k;
  15. for(int i=;i<=n;i++)
  16. {
  17. cin>>a[i];
  18. sum[i]=sum[i-]+a[i];
  19. }
  20.  
  21. for(int i=;i<n;i++)
  22. {
  23. for(int j=i;j<n;j++)
  24. {
  25. if(sum[j]-sum[i]==k)
  26. {
  27. printf("%d %d\n",i+,j);
  28. return ;
  29. }
  30. }
  31. }
  32. printf("No Solution\n");
  33. return ;
  34. }

前缀和+暴力O(n²)

map优化可达到O(n)

51nod 1094 和为k的连续区间【前缀和/区间差/map】的更多相关文章

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

    Input示例 6 10 1 2 3 4 5 6 Output示例 1 4 #include "cstdio" #include "algorithm" #in ...

  2. 51Nod 1094 和为k的连续区间

    #include <iostream> #include <algorithm> #include <cstring> using namespace std; t ...

  3. 区间sum 和为k的连续区间-前缀和

    区间sum 描述 有一个长度为n的正整数序列a1--an,candy想知道任意区间[L,R]的和,你能告诉他吗? 输入 第一行一个正整数n(0<n<=1e6),第二行为长度为n的正整数序列 ...

  4. 1094 和为k的连续区间(暴力)

    基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注 一整数数列a1, a2, ... , an(有正有负),以及另一个整数k,求一个区间[i, j],(1 ...

  5. 51Nod 1268 和为K的组合

    51Nod  1268  和为K的组合 1268 和为K的组合 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 给出N个正整数组成的数组A,求能否从中选出若干个,使 ...

  6. 51Nod 和为k的连续区间

    一整数数列a1, a2, ... , an(有正有负),以及另一个整数k,求一个区间[i, j],(1 <= i <= j <= n),使得a[i] + ... + a[j] = k ...

  7. 51nod 1105(第K大数 二分套二分)

    题目链接:http://www.51nod.com/onlineJudge/submitDetail.html#!judgeId=620811 参考自:https://blog.csdn.net/f_ ...

  8. 【51nod 1685】 第K大区间2

    题目描述: 定义一个长度为奇数的区间的值为其所包含的的元素的中位数.现给出n个数,求将所有长度为奇数的区间的值排序后,第K大的值为多少. 样例解释: [l,r]表示区间的值 [1]:3 [2]:1 [ ...

  9. 51nod——1391 01串(字符串、前缀和)

    好像这题是4级题下放2级? 预处理:求每个位置 x 左区间 [ 0 , x ] 中 1 比 0 多的数量和右区间 ( x , n - 1 ] 中 0 比 1 多的数量(少就是负的).相当于求两个前缀和 ...

随机推荐

  1. erlang连接mysql [转]

    转自: http://blog.csdn.net/flyinmind/article/details/7740540 项目中用到erlang,同时也用到mysql.惯例,google. 但是,按照网上 ...

  2. 《Cracking the Coding Interview》——第17章:普通题——题目13

    2014-04-29 00:15 题目:将二叉搜索树展开成一个双向链表,要求这个链表仍是有序的,而且不能另外分配对象,就地完成. 解法:Leetcode上也有,递归解法. 代码: // 17.13 F ...

  3. fiddler如何抓取夜神模拟器上的包

    一.设置Fiddler代理 1.点击Tools-Fiddler Options进入Fiddler Options页面 2.点击Connections,将Fiddler listens on port设 ...

  4. Python3.7在win10下安装PyAudio库以及实现音频的录制与播放

    Python3.7 无法安装pyaudio 度娘的结果基本都是这个,pip install pyaudio.....然而十有八九你的电脑不买账,会报错. 报错信息: running install r ...

  5. python学习总结---文件操作

    # 文件操作 ### 目录管理(os) - 示例 ```python # 执行系统命令 # 清屏 # os.system('cls') # 调出计算器 # os.system('calc') # 查看 ...

  6. 容器基础(二): 使用Namespace进行边界隔离

    Linux Namespace 容器技术可以认为是一种沙盒(sandbox), 为了实现沙盒/容器/应用间的隔离,就需要一种技术来对容器界定边界,从而让容器不至于互相干扰.当前使用的技术就是Names ...

  7. 哈夫曼树(C++优先队列的使用)

       给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称为哈夫曼树(Huffman Tree).哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近.    构造 假设有n个权 ...

  8. CentOS7 设置开机直接进入命令行界面

    上网查询centsos设置开机直接进入命令行界面的方法都说修改/etc/inittab文件,将文件中的“ :id:5:initdefault:”改为“ :id:3:initdefault:”,即将默认 ...

  9. javascript replace 替换全部字符

    $("#pageNote").html($("#note3").val().replace(/ /g, "").replace(/<b ...

  10. 【bzoj3669】[Noi2014]魔法森林 Kruskal+LCT

    原文地址:http://www.cnblogs.com/GXZlegend/p/6797748.html 题目描述 为了得到书法大家的真传,小E同学下定决心去拜访住在魔法森林中的隐士.魔法森林可以被看 ...