问题描述:
代码:
知识点总结:
自己写的总是时间超限,求解释啊~~~
学习心得:
今天做OJ题心塞塞的❤❤❤
—————————————————————————————————————————————————————————
以上是寒假做过的这道题,当时无论怎么做都是时间超限,后来迫不得已查了度娘,不过发现是用的C语言就没有太注意过程,
今天又看到这道题,还是使用的C++,不过运行之后显示答案错误……我就非常不解了……不就是C语言和C++的区别吗?为什么会答案错误……求解释!!!!!!
#include <iostream>
using namespace std;
int main()
{
int n,maxl,p,m;
long long s;
cin>>n;
while(n--)
{
maxl=0;
s=0;
cin>>m;
while(m--)
{
cin>>p;
if(maxl<=p)
maxl=p;
s=s+p;
}
if(s-maxl>=maxl-1)
cout<<"yes"<<endl;
else
cout<<"no"<<endl;
}
return 0;
}
知识点总结:
思路就是,先找出数量最多的一种糖果的数量,剩下的相加之后看是否大于等于数量最多的糖果的数量减一,就类似于数学排列组合中的插空……如果符合条件输出yes,否则输出no