大佬们,DFS+二分过不了,该怎么改,在线求助!!!
查看原帖
大佬们,DFS+二分过不了,该怎么改,在线求助!!!
275982
薛定谔的狼楼主2021/4/4 22:43
#include<bits/stdc++.h>
using namespace std;
map<int,double> v;
double a,b,c,d;
double f(int y)
{
	double x=double(y)/100;
	return a*x*x*x+b*x*x+c*x+d;
}
void print(int y)
{
	double x=double(y)/100;
	printf("%.2lf ",x);
}
void putin(double x)
{
	v[x]=f(x);
}
void dfs(int left,int right)
{
	int mid=(left+right)/2;
	if(v.find(mid)==v.end()) putin(mid);
	if(!v[mid]) print(mid);
	if(v[left]*v[mid]<0) dfs(left,mid);
	if(v[right]*v[mid]<0) dfs(mid,right);
}
int main()
{
	cin>>a>>b>>c>>d;
	putin(-10000);putin(0);putin(10000);
	dfs(-10000,10000);
	return 0;
}
2021/4/4 22:43
加载中...