11 条题解

  • -3
    @ 2024-8-3 14:27:14

    J1A题解

    40分思路

    暴力解决

    复杂度

    时间复杂度: O(Tn)O(Tn),空间复杂度: O(1)O(1)

    Code

    #include <bits/stdc++.h>
    using namespace std;
    int i, j, k, n, T; double C;
    int main() {
        scanf("%d", &T);
        for (i = 1; i <= T; i++) {
            scanf("%d %d", &n, &k);
            for (j = 1; j <= n; j++) C = C / j + k;
            printf("%.1lf\n", C);
        }
        return 0;
    }
    

    喜提TLE

    80分思路

    还是暴力,只不过加一个最大值

    复杂度

    时间复杂度: O(Tn)O(Tn),空间复杂度: O(1)O(1)

    Code

    #include <bits/stdc++.h>
    using namespace std;
    int i, j, k, n, T; double C, c;
    int main() {
        scanf("%d", &T);
        for (i = 1; i <= T; i++) {
            scanf("%d %d", &n, &k);
            for (j = 1; j <= n; j++) c = C / j + k, C = max(C, c);
            printf("%.1lf\n", C);
        }
        return 0;
    }
    

    又双叒叕敠敪喜提TLE

    100分思路

    打一个表,发现如下规律:
    |T1T_1|T2T_2|T3T_3|T4T_4|T5T_5| |-----|-----|-----|-----|-----| |kk|32k\frac{3}{2}k|32k\frac{3}{2}k|118k\frac{11}{8}k|5140k\frac{51}{40}k|

    整个序列 {Tn}\{T_n\} 的峰值在 T2T_2T3T_3

    复杂度

    时间复杂度: O(T)O(T),空间复杂度: O(1)O(1)

    Code

    #include <bits/stdc++.h>
    using namespace std;
    int i, k, n, T;
    int main() {
        scanf("%d", &T);
        for (i = 1; i <= T; i++) {
            scanf("%d %d", &n, &k);
            if (n == 1) printf("%d.0\n", k);
            else if (k & 1) printf("%d.5\n", k + k / 2);
            else printf("%d.0\n", k + k / 2);
        }
        return 0;
    }
    

    终于AC了

    信息

    ID
    13
    时间
    1000ms
    内存
    512MiB
    难度
    2
    标签
    递交数
    1259
    已通过
    336
    上传者