浅谈0/1分数规划

题面见POJ2676

这就是一道0/1分数规划的模板题,其最经典的做法就是二分答案,然后check一下就可以了。
PS:注意double类型精度问题。

那么直接看代码吧:

#include

#define maxn 1111
#define INF 0x7fffffff
#define eps 1e-15
#define pi acos(-1.0)
#define e 2.718281828459
#define mod (int)1e9 + 7;

using namespace std;

int n,k;
double a[maxn],b[maxn],y[maxn];

bool judge(double x)
{
	for(int i=0;i());
	double sum=0;
	for(int i=0;i=0;
 } 
 
int main()
{
	while(~scanf("%d%d",&n,&k),n+k)
	{
		for(int i=0;ieps)
		{
			m=l+(r-l)/2;
			if(judge(m))
				l=m;
			else
			 	r=m;
		}
		printf("%.0lf\n",m*100);
	}	
	return 0;
 } 

你可能感兴趣的:(二分,二分答案)