QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#242679 | #6395. Equation Discovering | ucup-team902 | WA | 52ms | 108252kb | C++17 | 1.5kb | 2023-11-07 16:19:30 | 2023-11-07 16:19:31 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define db double
#define mp make_pair
#define ep emplace_back
valarray<db> x_arr;
valarray<db> y_arr;
vector<pair<string, valarray<db>>> expr[10];
inline bool check(valarray<db> &arr){
for(int i = 0; i < x_arr.size(); ++i) if(abs(arr[i] - y_arr[i]) > max(abs(y_arr[i]), 1.0) * 1e-3) return 0;
return 1;
}
int main(){
int n; cin >> n;
n = min(n, 10);
x_arr.resize(n);
y_arr.resize(n);
for(int i = 0; i < n; ++i){
cin >> x_arr[i] >> y_arr[i];
}
expr[0].ep(mp("x", x_arr));
for(int i = 1; i <= 9; ++i){
for(auto &[f, y]: expr[i - 1]){
expr[i].ep(mp("sin(" + f + ")", sin(y)));
expr[i].ep(mp("cos(" + f + ")", cos(y)));
}
for(int j = 0; j < i - 1; ++j){
for(auto &[f1, y1] : expr[j]){
for(auto &[f2, y2] : expr[i - j - 2]){
expr[i].ep(mp("(" + f1 + "+" + f2 + ")", y1 + y2));
expr[i].ep(mp("(" + f1 + "-" + f2 + ")", y1 - y2));
expr[i].ep(mp("(" + f1 + "*" + f2 + ")", y1 * y2));
if(abs(y2).min() >= 0.01){
expr[i].ep(mp("(" + f1 + "/" + f2 + ")", y1 / y2));
}
}
}
}
for(auto &[f, y]: expr[i]){
if(check(y)){
printf("%s\n", f.c_str());
return 0;
}
}
}
}
詳細信息
Test #1:
score: 100
Accepted
time: 1ms
memory: 4204kb
input:
3 1.000000 1.000000 2.000000 4.000000 3.000000 9.000000
output:
(x*x)
result:
ok great!!
Test #2:
score: 0
Accepted
time: 1ms
memory: 4216kb
input:
3 0.618000 1.517072 0.314000 3.132637 1.414000 0.494016
output:
(sin(x)/(x*x))
result:
ok great!!
Test #3:
score: 0
Accepted
time: 1ms
memory: 4184kb
input:
5 77.685777 233.057331 -66.445083 -199.335249 79.966717 239.900151 84.982130 254.946390 -31.528900 -94.586700
output:
(x+(x+x))
result:
ok great!!
Test #4:
score: 0
Accepted
time: 1ms
memory: 4292kb
input:
5 25.032427 -0.100652 38.727324 1.658518 27.684334 -0.669555 64.282391 8.275303 52.640700 -0.962660
output:
(sin(x)/cos(x))
result:
ok great!!
Test #5:
score: 0
Accepted
time: 0ms
memory: 6716kb
input:
5 78.611917 -0.992212 -29.857271 1.011993 -75.513655 1.006611 68.512394 1.145128 7.961096 0.881661
output:
(cos(x)+(sin(x)*sin(x)))
result:
ok great!!
Test #6:
score: 0
Accepted
time: 0ms
memory: 4136kb
input:
5 -78.733375 0.503570 -20.187183 0.735779 -38.984992 0.730890 47.859232 0.622831 -19.657164 0.641512
output:
sin(sin(cos(cos(x))))
result:
ok great!!
Test #7:
score: 0
Accepted
time: 0ms
memory: 4192kb
input:
5 3.241091 -32.628130 -83.514144 86.463432 33.586619 40.691607 41.123543 -147.352644 26.896326 27.404018
output:
(x/sin(x))
result:
ok great!!
Test #8:
score: 0
Accepted
time: 52ms
memory: 108252kb
input:
20 -4.908422 -0.693287 3.569189 0.328182 1.946572 -0.667466 6.515336 -0.829948 -1.394076 0.752980 6.722989 0.831881 1.241795 0.835231 -2.443177 -0.143098 -4.180762 -0.803482 1.511247 0.589509 0.627755 0.554244 -1.865604 -0.470029 -4.756347 -0.656984 1.850611 -0.426016 6.580133 -0.474416 6.861815 -0....
output:
sin(sin((x/sin((x/(x*x))))))
result:
ok great!!
Test #9:
score: -100
Wrong Answer
time: 1ms
memory: 3824kb
input:
20 76.797930 0.000002 -76.263778 -0.000002 55.449039 0.000006 10.462093 0.000873 -78.051671 -0.000002 -52.781249 -0.000007 47.053973 0.000010 96.629212 0.000001 -40.697847 -0.000015 31.141805 0.000033 -87.087384 -0.000002 -54.709885 -0.000006 -65.741847 -0.000004 -87.430820 -0.000001 9.420126 0.0011...
output:
(x-x)
result:
wrong answer fail to discover