題目鏈接:http://codeforces.com/problemset/problem/165/C點擊打開鏈接
用num【i】記錄從字符串首開始有i個1字符串的個數
然後用前綴思想計算ans值
#include <bits/stdc++.h>
using namespace std;
int num[1111111];
int main()
{
long long int ans=0;
int k;
cin >> k;
string s;
cin >> s;
num[0]=1;
int mid=0;
for(int i=0;i<s.length();i++)
{
if(s[i]=='1')
mid++;
if(mid>=k)
ans+=num[mid-k];
num[mid]++;
}
cout << ans <<endl;
}