QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#236359#6701. BaoBao Loves ReadingstcmuyiAC ✓108ms4892kbC++201.2kb2023-11-03 21:32:572023-11-03 21:32:57

Judging History

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

  • [2023-11-03 21:32:57]
  • 评测
  • 测评结果:AC
  • 用时:108ms
  • 内存:4892kb
  • [2023-11-03 21:32:57]
  • 提交

answer

#include <bits/stdc++.h>
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define i64 long long
#define endl '\n'
#define lb(x) ((x) & (-x))
using namespace std;
const i64 mod = 998244353;
const int maxn = 1e3+10;
signed main()
{
    IOS;

    int t;
    cin >> t;
    while(t--)
    {
        int n; cin >> n;
        vector<int> a(n+1);
        for(int i = 1; i <= n; ++i) cin >> a[i];
        vector<int> p(n+1);
        auto add = [&](int x,int c)
        {
            for(int i = x; i <= n; i += lb(i)) p[i] += c;
        };
        auto get = [&](int x)
        {
            int ans = 0;
            for(int i = x; i; i -= lb(i)) ans += p[i];
            return ans;
        };
        vector<int> id(n+1),dp(n+1);
        for(int i = 1; i <= n; ++i)
        {
            add(i,1);
            if(id[a[i]] != 0)
            {
                add(id[a[i]],-1);
                int x = get(i) - get(id[a[i]]);
                dp[x]++;
            }
            id[a[i]] = i;
        }
        for(int i = 1; i <= n; ++i)
        {
            dp[i] += dp[i-1];
            cout << n-dp[i] << " \n"[i == n];
        }
    }
    return 0;
}

这程序好像有点Bug,我给组数据试试?

详细

Test #1:

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

input:

1
7
4 3 4 2 3 1 4

output:

7 6 5 4 4 4 4

result:

ok single line: '7 6 5 4 4 4 4'

Test #2:

score: 0
Accepted
time: 1ms
memory: 3628kb

input:

100
73
45 45 2 2 2 45 35 45 16 35 16 45 35 2 16 16 45 2 45 45 16 35 35 16 35 35 2 2 2 35 45 35 45 35 16 35 2 2 16 35 16 45 45 16 45 2 16 16 35 16 45 16 45 45 16 16 35 35 35 35 45 45 45 35 16 16 16 2 16 16 35 16 2
83
78 52 7 35 33 82 51 27 45 34 17 51 55 25 26 11 52 41 25 41 13 46 33 83 83 7 40 51 33...

output:

51 30 17 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
80 77 74 73 69 68 66 64 61 61 59 56 53 49 47 47 44 42 39 38 36 36 34 33 30 29 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 2...

result:

ok 100 lines

Test #3:

score: 0
Accepted
time: 108ms
memory: 4892kb

input:

1117
72
27 62 37 62 21 71 27 62 37 37 21 21 62 71 27 37 62 37 21 71 27 21 27 71 71 62 71 62 62 37 27 37 71 62 62 37 71 62 71 71 37 27 21 71 21 27 27 62 27 71 62 21 27 37 21 21 71 37 21 37 21 37 27 21 71 62 37 37 62 37 21 27
88
58 48 19 47 46 50 4 78 11 68 80 29 4 3 88 49 54 25 78 47 78 45 34 54 4 46...

output:

63 49 36 23 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
86 84 83 82 81 78 75 72 71 69 65 64 62 60 60 59 57 53 53 52 50 48 46 45 44 42 42 41 40 40 40 40 39 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38...

result:

ok 1117 lines