QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#316144#6395. Equation DiscoveringrgnerdplayerRE 7ms9744kbC++201.6kb2024-01-27 17:43:412024-01-27 17:43:42

Judging History

你现在查看的是最新测评结果

  • [2024-01-27 17:43:42]
  • 评测
  • 测评结果:RE
  • 用时:7ms
  • 内存:9744kb
  • [2024-01-27 17:43:41]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;

using i64 = long long;

int main() {
    cin.tie(nullptr)->sync_with_stdio(false);

    auto solve = [&]() {
        int n;
        cin >> n;

        valarray<double> x(n), y(n);
        for (int i = 0; i < n; i++) {
            cin >> x[i] >> y[i];
        }

        vector<vector<pair<string, valarray<double>>>> expr(10);
        expr[0].emplace_back("x", x);

        for (int n = 0; n <= 9; n++) {
            for (auto [s, a] : expr[n]) {
                if (abs(a - y).max() <= 1e-3) {
                    cout << s << '\n';
                    return;
                }
            }

            for (auto [s, a] : expr[n]) {
                expr[n + 1].emplace_back("sin(" + s + ")", sin(a));
                expr[n + 1].emplace_back("cos(" + s + ")", cos(a));
            }

            for (int i = 0; i <= n; i++) {
                int j = n - i;
                for (auto [s1, a1] : expr[i]) {
                    for (auto [s2, a2] : expr[j]) {
                        if (i <= j) {
                            expr[i + j + 2].emplace_back("(" + s1 + "+" + s2 + ")", a1 + a2);
                            expr[i + j + 2].emplace_back("(" + s1 + "*" + s2 + ")", a1 * a2);
                        }
                        expr[i + j + 2].emplace_back("(" + s1 + "-" + s2 + ")", a1 - a2);
                        if (abs(a2).min() >= 0.01) {
                            expr[i + j + 2].emplace_back("(" + s1 + "/" + s2 + ")", a1 / a2);
                        }
                    }
                }
            }
        }
    };
    
    solve();
    
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 4416kb

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: 0ms
memory: 4516kb

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: 0ms
memory: 4340kb

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: 4320kb

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: 7ms
memory: 9744kb

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: 1ms
memory: 4484kb

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: 4316kb

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: -100
Runtime Error

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:


result: