GYM
来源:互联网 发布:linux ssh2 编辑:程序博客网 时间:2024/06/16 19:54
题意:在一堆数中,找到一个连续的区间,他们里面的数的和为0;
解题思路:假设我们知道前10个数的和为8,前15个数的和也为8,那么很明显,11~15的数的和必为0!所以我们对前缀和从前往后扫一遍,保存最小的即可。
VSCode真的舒服……
#include <iostream>#include <vector>#include <map>using namespace std;typedef long long int ll;ll a[200005];ll sum[200005];int n;int main(){ scanf("%d", &n); map<ll, int> m;//记录前缀和出现的位置 m[0] = 1; int min1;//记录位置 int min2 = 2000000;//长度 for (int i = 1; i <= n; i++) { scanf("%lld", &a[i]); sum[i] = sum[i - 1] + a[i]; if (m[sum[i]]) { if (i - m[sum[i]] < min2) { min2 = i - m[sum[i]] + 1; min1 = m[sum[i]]; } } m[sum[i]] = i + 1; } if (min2 == 2000000) printf("%d\n", -1); else printf("%d %d\n", min1, min2); return 0;}
阅读全文
0 0
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- 蓝桥杯 基础练习 十进制转十六进制
- java
- Codeforces Round #441 (Div. 2, by Moscow Team Olympiad) F. High Cry
- IO流作业
- chrome input 的背景黄色
- GYM
- Java第20天~第21天/12.2~12.3
- pyqt5 播放音乐加切换图片
- java中的代理
- 在linux上使用Jmeter进行压力测试
- 文章标题
- [LOJ2267][SDOI2017]龙与地下城-FFT-自适应辛普森积分
- 一位程序员工作10年总结的13个忠告
- 构造器参数列表的注意事项