NYOJ 586 疯牛&NYOJ 914 Yougth的最大化 (二分+贪心)
2014-04-19 00:08
543 查看
NYOJ 586 疯牛
NYOJ 914 Yougth的最大化
#include<stdio.h> #include<algorithm> using namespace std; int a[100010],n,c; bool greed( int t) { int i,j=a[0],count=0; for(i=0;i<n;i++) { if(a[i]-j>=t) {j=a[i]; count++;} if(count>=c-1) return true; } return false; } void binary_search() { int front=0,end=a[n-1]-a[0]; int mid; while(front<=end) { mid=(front + end )/2; if(greed(mid)) front=mid+1; else end=mid-1; } printf("%d\n",front-1); } int main() { int i; while(scanf("%d %d",&n,&c)!=EOF) { for(i=0;i<n;i++) scanf("%d",&a[i]); sort(a,a+n); binary_search(); } return 0; }
NYOJ 914 Yougth的最大化
#include <cstdio> #include <algorithm> using namespace std; const int N = 11000; int w ,v ; double y ; int n,c; int chack(double x) { for(int i=0;i<n;i++) { y[i]=v[i]-x*w[i]; } sort(y,y+n); double sum=0; for(int i=0;i<c;i++) { sum+=y[n-i-1]; } return sum>=0; } double reaerch(double enf) { double l=0,r=enf,mid; for(int i=0;i<100;i++)//数据精确细化 { mid=(l+r)/2; if(chack(mid)) l=mid; else r=mid; } return l; } int main() { while(~scanf("%d%d",&n,&c)) { double ma=0; for(int i=0;i<n;i++){ scanf("%d%d",&w[i],&v[i]); double cmp=v[i]/w[i]; if(cmp>ma) ma=cmp; } printf("%.2lf\n",reaerch(ma)); } return 0; }
相关文章推荐
- NYOJ 914 Yougth的最大化(贪心,二分)
- nyoj 914 Yougth的最大化(贪心+二分搜索)
- NYOJ 914 Yougth的最大化 【贪心】+【二分】
- NYOJ 914 Yougth的最大化(二分搜索 + 贪心)
- NYOJ 914 Yougth最大化(贪心+二分)
- nyoj 914 Yougth的最大化【二分+贪心】
- POJ 3111 K Best &&NYOJ 914 (二分+ 贪心,最大化平均值)
- NYOJ 914 Yougth的最大化(二分法 + 贪心)
- nyoj 914 Yougth的最大化(贪心)
- nyoj--914--Yougth的最大化(二分查找)
- nyoj 914 yougth最大值 二分 贪心
- NYOJ 914-Yougth的最大化(二分)
- NYOJ 586 疯牛 & POJ 2456(二分搜索 + 贪心)(最大化最小值)
- 【贪心专题】POJ 2456 Aggressive cows && NYOJ 586 疯牛(最大化最小值 贪心+二分搜索)
- nyoj-976-Youth的最大化(贪心+二分)
- nyoj586||poj2456 二分+贪心
- nyoj-914 Yougth的最大化
- NYOJ 914 Yougth的最大化
- nyoj914(二分搜索+贪心)
- POJ 2456 Aggressive cows 和 NYOJ 586 疯牛【二分枚举+贪心】