UVA10059暴力初步

啥叫暴力呢,我就是暴力...

感谢zj(180度鞠躬)

暴力的思想有时候似乎蛮管用 就是这种最值啊可能有幺蛾子啊的题目

(正面拔毛-详见我错了很多次那个)

注意一下数据要用long long

*****小技巧****

01 这种题啊看极限 啊

比如这个只能有个位数,然后都是9试一次,结果18个超值了吧(sum也要用long long)

再比如最小,除了最小值是0以外,可以最小到其他地方长度,比如前面都很小(sum)最后来了个4.按照老算法是不行的

原来最开始的sum=1可以是可以但是只是看相乘,忽略了本身的情况

本身!就是自己,各个地方都可以取小试一试

j=i那里卡了一下.. 直接从自己开始就可以了啊

02 输出格式问题关注一下... 0 的时候特判也要都试试,别因为wa不要钱就先扔上去...

另外,可以不要k和sort,直接每次记住最大值就好..我是被wa了十几次那个题吓怕了





#include<iostream>
#include<string>
#include<algorithm>

//#include<bits/stdc++.h>

using namespace std;
int main()
{
	int m = 0;
	int n; while (cin >> n){
		m++;
		long long  a[18];
		int k = 0;
		long long cnt[500];
		for (int i = 0; i<n; i++)cin >> a[i]; //how many are there

		for (int i = 0; i<n; i++)
		{
			long long sum = 1;//*****  .....  a[i];/// **** +1
			for (int j = i ; j<n; j++)
			{
				sum *= a[j];
				cnt[k] = sum;
				k++;
			}
		}




		//long long  count=(n*(n-1))/2;  //.. 

		sort(cnt, cnt + k);
		if (cnt[k - 1] <= 0)cout << "Case #" << m << ": The maximum product is " << 0 << "." << endl << endl;
		else
			cout << "Case #"<<m<<": The maximum product is "<<cnt[k - 1] <<"."<< endl<<endl;

	}
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值