首页 > 其他分享 >CF1873B题解

CF1873B题解

时间:2023-10-18 13:13:20浏览次数:38  
标签:cnt minn int 题解 LONG long ans CF1873B

这题其实可以数学方法差小积大解决。

差越小积越大,那肯定是让最小的数加一啦。将所有数的积除以最小值再乘上最小值加一。

#include<bits/stdc++.h>
using namespace std;
signed main(){
	int T;
	cin>>T;
	while(T--){
		long long cnt=0,n,a[10],minn=LONG_LONG_MAX,ans=1;
		cin>>n;
		for(int i=1;i<=n;i++){
			cin>>a[i];
			ans*=a[i];
			minn=min(minn,a[i]);
		}
		cout<<ans/minn*(minn+1)<<endl;
	}
	return 0;
}

然而 \(a_{i}\) 可能为 \(0\)。
于是我统计了 \(0\) 的个数,进行分类讨论:
如果 \(0\) 的个数不小于 \(2\),则输出 \(0\),因为怎么加都会有一个 \(0\)。
如果 \(0\) 的个数等于 \(1\),则输出 所有数除 \(0\) 外的积,因为 \(0\) 改变后的值为一。
否则没有 \(0\),就正常输出。

AC Code

#include<bits/stdc++.h>
using namespace std;
signed main(){
	int T;
	cin>>T;
	while(T--){
		long long cnt=0,n,a[10],minn=LONG_LONG_MAX,ans=1;
		cin>>n;
		for(int i=1;i<=n;i++){
			cin>>a[i];
			if(a[i])ans*=a[i];
			else cnt++;
			minn=min(minn,a[i]);
		}
		if(cnt>=2)cout<<0<<endl;
		else if(cnt==1)cout<<ans<<endl;
		else cout<<ans/minn*(minn+1)<<endl;
	}
	return 0;
}

标签:cnt,minn,int,题解,LONG,long,ans,CF1873B
From: https://www.cnblogs.com/xdh2012/p/17771830.html

相关文章

  • CF1868C Travel Plan 题解
    原题翻译发现所有长度相同的简单路径的权值可能情况相同,且最长的简单路径长度为\(O(\logn)\)级别,考虑维护所有长度的简单路径在一棵树上出现的次数,每种简单路径的权值在所有树上出现的次数,相乘即使答案。我们考虑长度为\(x\)的路径对答案的贡献,考虑枚举这条路径的贡献\(......
  • 【前缀和优化 dp】CF1542E2 Abnormal Permutation Pairs (hard version) 题解
    CF1542E2首先时间复杂度肯定是\(\mathcal{O}(n^3)\)的。容易想到先枚举最长公共前缀,然后枚举\(p_{len+1}\)和\(q_{len+1}\),再枚举逆序对数进行统计。令\(f_{i,j}\)表示有\(j\)个逆序对的\(i\)阶排列的个数。易得转移\(f_{i,j}=\sum\limits_{k=\max(j-i+1,0)}^{j}f......
  • 【根号分治】P9212 「蓬莱人形」 题解
    P9212看到除法相关容易想到根号分治。先对\(x,y\)进行讨论,不妨令\(0\lex,y<m\)。\(x<y\)时,当满足\(a_i+y<m\)或\(a_i+x\gem\)时,即当\(a_i<m-y\)或\(a_i\gem-x\)满足\((a_i+x)\bmodm<(a_i+y)\bmodm\),即\(a_i\bmodm\in[0,m-y-1]\bigcup[m-x,m......
  • 【dp】【竞赛图的性质】ARC163D Sum of SCC 题解
    ARC163D发现这个竞赛图一定能被分为两个集合\(A\),\(B\)。满足\(\forallu\inA,v\inB\),均有\(u\tov\inE\)。答案就是划分这两个集合的方案数。证明:首先,竞赛图缩完点后一定是一条链,对强连通分量进行标号,满足编号小的强连通分量指向编号大的强连通分量。不妨令竞赛图\(G\)......
  • 【dp】【进制】P3464 [POI2007] WAG-Quaternary Balance 题解
    P3464显然的,先将原数变为四进制的数。由于算的是进位/不进位的代价最小值和方案数,容易想到dp。这里假定该四进制数是从高位到低位的,顺序显然是由低位到高位。令\(f_{i,0/1}\)表示第\(i\)位进/不进位的最小代价,\(g_{i,0/1}\)表示的是最小代价下的方案数。转移是简单的......
  • [题解] CF1790E - XOR Tree
    CF1790E-XORTree题意给定一颗无根树,在可以改变任意一个点的点权操作基础上,让树上任意简单路径的异或和不为\(0\),问最少需要多少次操作。思路假设某个点为根,设\(pre_x\)为\(x\)点到根的树上前缀异或和,\(a_x\)为\(x\)的点权,则\(x\)和\(y\)之间简单路径的异或和......
  • [题解]CF514D R2D2 and Droid Army
    思路首先,可以转化题意,找到一个极长的区间\([l,r]\)使得(其中\(mx_i\)表示\([l,r]\)区间中属性\(i\)的最大值):\[\sum_{i=1}^{m}mx_i\leqk\]显然对于这个东西当\(l,r\)发生移动时,是极其好维护的,所以想到双指针。因为\(m\leq5\),所以我们可以直接开\(m\)个ST表......
  • 题解——2023年码谷提高组模拟赛1016
    题解——2023年码谷提高组模拟赛1016一套被各种转来转去的题;参考:https://blog.csdn.net/liuziha/article/details/127353981、https://www.luogu.com.cn/blog/Chen5201314/xiao-nei-bi-sai-1025-zong-jie-ti-xie和https://www.cnblogs.com/Clyfort/articles/0927-test-solutio......
  • 「BZOJ2505」tickets 题解
    preface网上目前还没看到我的方法,就大概讲一下做法solution首先想到贪心,考虑\([l,r]\)的最大次数,一定是找到最小的\(x\)满足\(l\simx\)的位数的和大于等于\(k\),然后递归的求解\([x+1,r]\),易证。还是考虑将\(Query(l,r)\)拆分成\(Query(1,r)\)和\(Query......
  • RTMP dimensions not set问题解决方案
    问题RTMP开始推流,打印错误提示:dimensionsnotset源码位置libavformat\mux.ccaseAVMEDIA_TYPE_VIDEO:if((par->width<=0||par->height<=0)&&!(of->flags&AVFMT_NODIMENSIONS)){av_log(s,A......