求助QwQ
  • 板块学术版
  • 楼主ღꦿ࿐
  • 当前回复2
  • 已保存回复2
  • 发布时间2020/10/31 22:44
  • 上次更新2023/11/5 09:21:25
查看原帖
求助QwQ
161697
ღꦿ࿐楼主2020/10/31 22:44

求一个数组中积大于K的字段的个数,码风有点新奇

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,k,T;
signed main()
{
	cin>>T;
	while(cin>>n>>k)
	{
		
		int a[100001];
		
		for(int i=1;i<=n;++i)
		  cin>>a[i];
		  a[n+1]=1;
		if(k==0)
		{
			cout<<n*(n+1)/2<<endl;
			continue;
		}
		int i1,i2,ct=0,p=a[n];
	    for(i2=n,i1=n;i1;--i1)
	    {
	    	if(a[i1+1]!=0)
		    p/=a[i1+1];
			while(i2&&p<=k)
			if(a[i2]==0)p=1,--i2;
			 else
	    	p*=a[--i2];
	    	
	    	ct+=i2;
	    }
	      cout<<ct<<endl;
	}
}

2020/10/31 22:44
加载中...