Re: [ACM ] 10341 - Solve It
程式碼很短我就直接po了
關鍵在於你怎麼判斷No solution
另外輸入的地方也改了
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
double f(double, double, double, double, double, double, double);
int main(){
double p,q,r,s,t,u;
double tmp1, tmp2, tmp3;
double low_bound;
double up_bound;
double mid;
cout.precision(4);
cout.setf(ios::fixed,ios::floatfield);
while(cin>>p>>q>>r>>s>>t>>u){
low_bound=0.0;
up_bound=1.0;
while(1){
mid=(low_bound+up_bound)/2.0;
tmp1=f(p, q, r, s, t, u, low_bound);
tmp2=f(p, q, r, s, t, u, up_bound);
tmp3=f(p, q, r, s, t, u, mid);
if (fabs(tmp3)<1e-9)
{
cout <<mid<<endl;
break;
}
else if(tmp1==tmp2){
cout<<"No solution"<<endl;
break;
}
else{
if(tmp1*tmp3>0.0){
low_bound=mid;
}
else{
up_bound=mid;
}
}
}
}
}
double f(double p, double q, double r, double s, double t, double u, double
x){
return p*exp(-1.0*x)+q*sin(x)+r*cos(x)+s*tan(x)+t*x*x+u;
}
Bleed
※ 引述《walker2009 (誰人未嘗自以為)》之銘言:
: 最近在練習簡單的 ACM 題目
: 在討論區看到這題要用 binary search 解
: 嘗試寫了一下
: 很順利,測資也都對了
: 但上傳的時候就是 wrong answer
: 因為是個簡單的程式
: 看了好久還是找不出 bug 在哪
: 不知道是不是 online judge 系統不熟悉導致的問題
: 或是有小地方沒考慮到
: 希望有經驗的大大可以幫忙解惑 Q_Q 感恩感恩 Orz
: 題目: http://tinyurl.com/mxxc65 (firefox only)
: http://acm.uva.es/p/v103/10341.html
: Source Code: http://nopaste.info/283d6a45ba.html
--
World of bleed1979
http://bleed1979.myweb.hinet.net/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.130.143.186
推
08/10 10:50, , 1F
08/10 10:50, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章