85 条题解
-
-1curimit LV 10 @ 2009-01-24 15:57:24
approximation法
-
-12009-01-11 20:09:29@
├ 测试数据 01:答案正确... 822ms
├ 测试数据 02:答案正确... 838ms
├ 测试数据 03:运行超时...
├ 测试数据 04:答案正确... 838ms
├ 测试数据 05:答案错误...
├ 标准行输出
├ 错误行输出
├ 测试数据 06:答案正确... 822ms
├ 测试数据 07:运行超时...
├ 测试数据 08:答案正确... 822ms
├ 测试数据 09:答案正确... 838ms
├ 测试数据 10:答案正确... 838ms
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:70 有效耗时:5818ms枚举的后果
Ac率狂降18个百分点 -
-12008-12-07 16:07:51@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msprogram p1433;
var
a,b,c,d:extended;
begin
readln(a,b,c,d);
writeln((sqrt(sqr(sqrt(b)+sqrt(d))+sqr(a-c))):0:3);
end. -
-22017-03-30 09:40:36@
只有我一个人没看出公式写了个爬山吗。。。
#include<bits/stdc++.h> using namespace std; int a,b,c,d; inline double sqr(const double &x){return x*x;} inline double fx(const double& x) { return sqrt(sqr(x+a)+b)+sqrt(sqr(x+c)+d); } inline double dx() { return rand()/(double)RAND_MAX * 0.05; } int main() { scanf("%d%d%d%d",&a,&b,&c,&d); const int TIME_LIMIT = CLOCKS_PER_SEC * 0.9; double ans = 1e9; queue<double> q; for(int i=-10000;i<=10000;i++)q.push(i); while(clock() <= TIME_LIMIT && !q.empty()) { double f = q.front(); q.pop(); double d = dx(); double f1 = f + d; double f2 = f - d; double v = fx(f); double t; if((t=fx(f1)) < v)q.push(f1); ans = min(ans,t); if((t=fx(f2)) < v)q.push(f2); ans = min(ans,t); } printf("%.3lf\n",ans); }
-
-22012-10-27 16:26:23@
编译通过...
├ 测试数据 01:答案正确... (0ms, 580KB)
├ 测试数据 02:答案正确... (0ms, 580KB)
├ 测试数据 03:答案正确... (0ms, 580KB)
├ 测试数据 04:答案正确... (0ms, 580KB)
├ 测试数据 05:答案正确... (0ms, 580KB)
├ 测试数据 06:答案正确... (0ms, 580KB)
├ 测试数据 07:答案正确... (0ms, 580KB)
├ 测试数据 08:答案正确... (0ms, 580KB)
├ 测试数据 09:答案正确... (0ms, 580KB)
├ 测试数据 10:答案正确... (0ms, 580KB)---|---|---|---|---|---|---|---|-
Accepted / 100 / 0ms / 580KB
手抽写了个穷举,为了减少时间压缩范围,没有意外的WA了……
还是得用公式