NC249946. 小d和孤独的区间
描述
输入描述
第一行一个整数,代表该序列一共有多少个数字。
第二行个整数,第个数代表序列第个数。
输出描述
输出一个数字代表答案。
示例1
输入:
3 0 1 0
输出:
4
说明:
四种答案分别是Python3 解法, 执行用时: 1384ms, 内存消耗: 106268K, 提交时间: 2023-04-07 19:46:45
from collections import defaultdict n = int(input()) a = [int(x) for x in input().split()] mp = defaultdict() s = 0 mp[0] = 1 res = 0 for i in range(n): s += a[i] res += mp.get(s-1,0) mp[s] = mp.get(s,0)+1 print(res)
pypy3 解法, 执行用时: 703ms, 内存消耗: 129664K, 提交时间: 2023-04-07 19:28:57
n = int(input()) a = list(map(int,input().split())) from collections import Counter has = Counter([0]) pre = ans = 0 for i in a: pre += i ans += has[pre-1] has[pre] += 1 print(ans)
C++(clang++ 11.0.1) 解法, 执行用时: 208ms, 内存消耗: 500K, 提交时间: 2023-04-11 10:00:25
#include<bits/stdc++.h> using namespace std; int n,x,s,l; long long ans; int main() { cin>>n; for(int i=1;i<=n;i++) { cin>>x; if(x)s=i-l,l=i; ans+=s; } cout<<ans; return 0; }