集训队第二次月考核–完美笑话
题目描述
农民M特别喜欢讲笑话,有冷笑话和热笑话,比如:一只白猫掉到了水里,一只黑猫救了他,请问白猫上岸讲的第一句话是什么?
答案当然是:“喵”。
农民M为他的朋友MONKEY准备了N个笑话要讲,这些笑话有冷热之分,并且农民M有个习惯,每次都是从这N个笑话中取连续的几个笑话讲给别人听(可以从中间的某一段开始取),
MONKEY每听一个冷笑话就冷一下,听一个热笑话就热一下,为了使观众听完后不冷不热,农民M必须使得每次选取的冷热笑话均等。
请问农民M有多少种准备笑话的方案。
输入
第一行为N,表示笑话的个数
第二行为N个用空格隔开的1和-1序列,其中1代表冷笑话,-1代表热笑话。
输出
总方案数MOD 999999的值
分析
这个题目就是简单的多组加法,一个签到题,只要加起来为0总方案就+1.
代码:
`#include<bits/stdc++.h>
using namespace std;
int a[100005],n,cnt=0;
int main()
{
int j=0;
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
for(int i=0;i<n;i++)
{
int sum=0;
for(int j=i;j<n;j++)
{
sum+=a[j];
if(sum==0)
cnt++;
}
}
cout<<cnt++;
return 0;
}`
后知后觉这是一道多么简单的签到题,我却因为卡在了不知道怎么控制几个数加进去…好了…我是憨憨谢谢!