本题思路很清晰:我们只需将所有的边长从大到小都进行枚举,并且计算对应能够供给小朋友的巧克力块数,直到能够满足K的需求!!!!!!!!!!!!!!!!!!!!!!!!!!!
#include#include int main(int argc, char *argv[]) { int i,j,n,k,num[100005][2]; scanf("%d%d",&n,&k); for(i=0;i =1) { int sum=0; for(i=0;i =k) break; len--; } printf("%d",len); return 0;
这是我写的未经过优化的代码,很明显,提交后超出时间限制,本题数据规模最大可达10的10次方,像这类有大数据的题目,我们通常都必须优化。
这里给出一种优化方法:二分法!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#includeint main() { int i,j,n,k,num[100005][2],l,ans,r,mid; scanf("%d%d",&n,&k); for(i=0;i =k) { l=mid+1; ans=mid; } else { r=mid-1; } } printf("%d",ans); return 0; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)