本文共 1479 字,大约阅读时间需要 4 分钟。
我都懒得写了!!!!!!!!
直接粘贴!!!!!
#include#include using namespace std;int a[105], b[105];int main(){ int n, m;// while (cin >> n >> m) { cin >> n >> m; for (int i = 0; i < n; i++) cin >> a[i]; memset(b, -2e18, sizeof(b));//注意是-2e18!!!!!! int t; int k; for (int i = 0; i < m; i++) { cin >> t; for (int j = 0; j < n; j++) b[j]= max(b[j], a[j] * t); //1 2 3 4 5 20 18 //2 14 // 2*1 2*2 2*3 2*4 // 14*1 14*2 14*3 //穷举吧..每个反正只能一对一的结合,然后 //只能一对一,然后连线一样都试验了一次= - //每个可能的结果 //以a为基准..... 以a为基准每个b都乘了一遍 //对于,每个,b[i],我们 } //当然不是按次序比较.....当然不是按次序比较 //数学不行的话直接暴力上去吧......真是的 //存进b里的当然不是tommy手里的灯笼.... //而是所有的a[i]*t里面所能可以达到的最大值 //这些,所有可能会达到的最大值,最后再取到第二个所能达到的最大值 //饿.我们只知道,对于每一个b,这个b所能达到的最大的有多大 //我们不放过每一个b的梦想,肯定会让所有b和a见过面之后,才能确定最适合他们的最大的是多少 //思路呢..可能简单的wa了之后卡在负数是关键吧(趴 //然后有个版本,负负正正有6种情况最后maxmaxmax的对了((( //以及,咋个确定运算次数呢.. 100的话,100*100也才100000 //关键是数据量太小了(? sort(b, b + n); // 哦..... 错在这里.... //不放过每一个b,b是n个啊 cout << b[n - 2] << endl; //}//谁给你的勇气??? http://blog.csdn.net/nobleman__/article/details/79327283 这个人竟然只是讨论了就完了= -强. return 0;}
但是上面的是错的.... 一个是long long
一个是b[105]吧...
然后m和n混了混了.....
b是n,是把b怎么样怎么样
以及....
再次感谢zj(鞠躬)
我饿了... 晚安