QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#522286#9134. Building a Fenceberarchegas#WA 220ms3644kbC++201.1kb2024-08-16 20:56:552024-08-16 20:56:55

Judging History

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

  • [2024-08-16 20:56:55]
  • 评测
  • 测评结果:WA
  • 用时:220ms
  • 内存:3644kb
  • [2024-08-16 20:56:55]
  • 提交

answer

#include <bits/stdc++.h>

using namespace std;
using ll = long long;
using pii = pair<int, int>;

map<vector<int>, int> mp;

int calc(vector<int> &v, int s) {
    if (mp.count(v)) return mp[v];
    int ans = 1e9;
    if (v[0] % s == 0 && v[1] % s == 0 && v[2] % s == 0 && v[3] % s == 0) {
        ans = 0;
        for (int i = 0; i < 4; i++) ans += v[i] / s;
        return mp[v] = ans;
    }
    for (int i = 0; i < 4; i++) {
        if (v[i] % s != 0) {
            vector<int> nv = v;
            int x = nv[i] % s;
            nv[i] -= x;
            for (int j = 0; j < 4; j++) {
                if (i != j && v[j] % s != 0 && v[j] >= s - x) {
                    nv[j] -= s - x;
                    ans = min(ans, 1 + calc(nv, s));
                    nv[j] += s - x;
                }
            }
            ans = min(ans, 1 + calc(nv, s));
        }
    }
    return mp[v] = ans;
}

int main() {
    int t;
    cin >> t;
    while (t--) {
        int w, h, s;
        cin >> w >> h >> s;
        vector<int> v = {w, w, h, h};
        cout << calc(v, s) << '\n';
        mp.clear();
    }
}

详细

Test #1:

score: 100
Accepted
time: 1ms
memory: 3564kb

input:

7
7 9 4
1 1 2
1 1 4
4 6 2
3 3 5
10 6 4
1 11 5

output:

8
2
4
10
4
8
5

result:

ok 7 numbers

Test #2:

score: -100
Wrong Answer
time: 220ms
memory: 3644kb

input:

8000
1 1 1
1 1 2
1 1 3
1 1 4
1 1 5
1 1 6
1 1 7
1 1 8
1 1 9
1 1 10
1 1 11
1 1 12
1 1 13
1 1 14
1 1 15
1 1 16
1 1 17
1 1 18
1 1 19
1 1 20
1 2 1
1 2 2
1 2 3
1 2 4
1 2 5
1 2 6
1 2 7
1 2 8
1 2 9
1 2 10
1 2 11
1 2 12
1 2 13
1 2 14
1 2 15
1 2 16
1 2 17
1 2 18
1 2 19
1 2 20
1 3 1
1 3 2
1 3 3
1 3 4
1 3 5
1 3...

output:

4
2
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
6
3
2
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
8
4
4
2
4
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
10
5
4
4
2
4
4
3
4
4
4
4
4
4
4
4
4
4
4
4
12
6
4
3
4
2
4
4
4
3
4
4
4
4
4
4
4
4
4
4
14
7
6
4
4
4
2
4
4
4
4
3
4
4
4
4
4
4
4
4
16
8
6
4
4
4
4
2
4
4
4
4
4
3
4
4
4
4
4
4
18
9
6
6
4
3
4
4...

result:

wrong answer 103rd numbers differ - expected: '5', found: '6'