百炼 2774 切木头 还是没ac,总是re
来源:互联网 发布:斗地主软件源码 编辑:程序博客网 时间:2024/04/30 01:26
///////////////////////////////////////////////
我没用二分,难道是因为这个就?除0我也避免了,放在ideone.com也能跑,不知道为什么还是re.真蛋疼
#include<stdio.h>
#include<algorithm>using namespace std;
int logg[10001];
int N,K;
int allLength(0);
int getResult(int N,int K);
int main(){
scanf("%d%d",&N,&K);
for(int i = 0;i < N;i++)
{
scanf("%d",logg[i]);
allLength += logg[i];
}
sort(logg,logg+N);
printf("%d\n",getResult(N,K));
return 0;
}
int getResult(int N,int K)
{
int maxNum = allLength / K;
for(int i = maxNum;i >= 0;i--)
{
int allNum(0);
for(int j = N - 1;j >= 0;j--)
{
if(logg[j] < i)
break;
if(i != 0)
allNum += logg[j] / i;
if(allNum >= K)
return i;
}
}
return 0;
}
/////////////////////////////////////////////
网上的二分
///////////////////////////////////////////
#include<iostream>
using namespace std;
int n,k;
int wood[15000];
bool check(int);
int main()
{
int sum=0;
cin>>n>>k;
int i;
for(i=0;i<n;i++)
{
cin>>wood[i];
sum+=wood[i];
}
int longest=sum/k;
if(longest<1) cout<<"0\n";
else
{
int l=1,r=longest+1;
while(l<r-1)
{
int mid=(l+r)/2;
if(check(mid)) l=mid;
else r=mid-1;
}
if(l==r-1&&check(r))
cout<<r<<endl;
else cout<<l<<endl;
}
return 0;
}
bool check(int length)
{
int sum=0;
for(int i=0;i<n;i++)
{
sum+=wood[i]/length;
}
if(sum>=k) return 1;
else return 0;
}
0 0
- 百炼 2774 切木头 还是没ac,总是re
- 还是看木头~
- 百炼+日期转换+注意数组不能越界,免得re
- 写了一天,,真的是一天,但还是没AC 求指教!!!
- 1829 切木头
- pku1927没ac
- 百炼
- 20120328还是没状态
- 真相:为什么投简历总是没回音?
- php exec命令总是没返回
- 感冒还是没好,郁闷!!!
- 最终还是没选择Android
- Rod-cutting problem(切木头问题)
- hdu 5442 后缀数组(没AC)
- OJ术语: AC、WA、TLE、OLE、MLE、RE、PE、CE
- 百炼采药问题....
- 百炼 1833:排列
- 百炼-2726:采药
- 程序员面试资源大收集
- 故乡、远方、十年……
- 佛祖保佑符
- 【Linux命令】--read命令的用法
- jdk配置环境变量
- 百炼 2774 切木头 还是没ac,总是re
- ZOJ 3806 Incircle and Circumcircle(几何+二分)
- 对嵌入式Linux中的根文件系统的理解和解析
- Server_Virtual PC 2007教程;
- static用法
- http://poj.org/problem?id=1135
- Makefile
- CHARTING图表控件介绍及下载地址
- 择一城终老,遇一人白首