ps:一般贪心的题目都需要排序
首先将所有绳子的长度从小到大排序。然后从第二根绳子开始,将每根绳子依次与前面的绳子拼接起来,拼接后更新当前最长的绳子长度,直到最后一根绳子。这样做的时间复杂度为 O(n)。
这道题总的来说还是很简单 而且每次都是需要向下取整
贴一下AC代码:
`#include<iostream>
#include<algorithm>
using namespace std;
const int N=10010;
int l[N],n,res;
int main()
{
cin>>n;
for(int i=0;i<n;++i) cin>>l[i];
sort(l,l+n);
res=l[0];
for(int i=1;i<n;++i) res=(l[i]+res)>>1;
cout<<res;
return 0;
}
周末稍微总结一下:
最近代码能力有所提升但不太多 至少一些简单题不用怎么想直接可以写 测试点都可以跑过
就算暂时跑不通也能自己修改bug 树这一章算是我的命门 尤其是平衡二叉树和红黑树balabla
要去听一下邓公的课恶补一下