首页 > 牛牛玩平板
头像 小毅儿
发表于 2019-10-31 15:22:57
题目描述牛牛和牛妹喜欢玩平板游戏,游戏一开始屏幕上会出现很多个图形,玩家在每一轮可以合并两个图形,当只有一个图形的时候游戏结束,每个图形都有一个大小,合并完成后的图形的大小为x+y,x和y分别为合并之前的两个图形,与此同时,玩家会获得x*y的分数。 牛牛和牛妹新开了一盘游戏,屏幕上出现了n个图形,每 展开全文
头像 月采琉疆
发表于 2021-02-19 17:45:54
//其实我觉得不用排序也可以,毕竟每一个的贡献都是那些,不会因为顺序导致,但是不排序可能就偏离题解毕竟是贪心(个人看法) #include<cstdio> const int maxn = 110; int main(){ int list[maxn]; int n; 展开全文
头像 qqii
发表于 2020-02-23 11:39:06
对于n个图形来说,不管按怎样顺序组合,最后得到的分数都是一样的。假设有n个图形,大小分别为 。按照从左到右的合并方式进行处理可以得到。 可以看出来,最后得到分数是任意两个图形大小乘积的和,所以不管按照怎样顺序对图形进行合并得分结果都是相同的。因此 展开全文
头像 浩瀚有垠
发表于 2025-06-14 19:58:44
看起来很难,实际上很简单 可以自己手动列出几个值如n=3,n=4的时候,发现不管怎么选择,得到的结果是一样的,比如n=4时,四个数字为a, b, c, d,得到的结果就是(a + b + c + d)2 - a2 - b2 - c2 - d2的1/2,所以就可以推出公式了 展开全文
头像 我儿雷俊有大帝之资
发表于 2025-01-14 10:41:06
前缀和 #include<bits/stdc++.h> using namespace std; int main(){     int n,a[105];      展开全文
头像 wydxry
发表于 2021-07-02 18:23:57
C++ 排序+贪心 #include <iostream> #include <algorithm> using namespace std; int main() { int n; cin>>n; int a[100]; for( 展开全文
头像 青笙
发表于 2022-01-14 13:48:15
欲解此题,首先要明白题目的意思。其实无论n个图形怎么排列,牛牛获得的最大的分数都是不变的。那我们就不需要对n个图形的大小进行排列了,我们直接用一个数组将n个大小的图形装入数组中,接下来通过算法来求得。它的算法机制其实也很简单,用一个循环遍历,遍历1~n-2索引(也可以是其他的,具体的以个人思路决定) 展开全文