zoukankan      html  css  js  c++  java
  • 联赛前第六阶段总结

    联赛模拟测试20

    阶段排名 5

    A Simple

    • 瞎搞出奇迹,成功骗到70分,水过了一道数学题。

    • 发现30分的暴力完全可以通过60分,剩下40%一定q>nm,打表发现答案为(m-1)(n-1)/2,然后就成功水过


    B Walk

    • 30分暴力

    • 枚举边权值,每次只加边权是举值倍数的边,Dfs一遍,求最长链。

    • 看起来很不可过,但是跑过了


    C Weed (Unaccepted)

    • 30分暴力

    Drink (Unaccepted)

    • 30分暴力,还有30分部分分



    晚间测试11

    阶段排名 6

    A 元素周期表

    • 借鉴凯尔的思路,从看题到切掉不到10分钟

    B gcd (Unaccepted)

    • 搞了一个半小时最后看错题了,这个题目我真的是无fuck说,都没看见下标这两字就成下标了,郁闷极了,面对这样的题目描述,我只能说,%&%……%&×……×¥……%×&%¥&¥



    联赛模拟测试19

    阶段排名 7

    A 建设城市

    • 一看就是数学题,推了半天没推出来啥有用的式子,就打了个暴搜,然后记忆化了一下,特判了一下,拿了60分

    • 容斥,答案=随便选-至少一个不满足的+至少两个不满足的-至少三个不满足的...

    • 至少i个不满足,就先把i×k个拿出来,剩下的放盒子里,然后再将拿出来的放回去,这样就是 C(n, i) * C(m - k * i - 1, n - 1)


    B 军训队列

    • 写了个DP可惜不会斜率优化,就拿了50分

    • 正解没用斜率优化,考虑高度只有140.00~200.00,只有6000个数,去个重,开个氧气就过了

    Show Code
        for (int i = 1; i <= n; ++i)
            f[i] = (a[i] - a[1]) * (a[i] - a[1]);
        for (int l = 2; l <= k; ++l) {
            memcpy(g, f, sizeof(double) * (n + 1));
            for (int i = 1; i <= n; ++i) {
                f[i] = 1e9;
                for (int j = 1; j <= i; ++j)
                    f[i] = std::min(f[i], g[j-1] + (a[i] - a[j]) * (a[i] - a[j]));
            }
        }
    
    • 写成这样就可以愉快的斜率优化了

    • 原式:

    [f_i=min_{j=1}^i{g_{j-1}+a_i^2-2a_ia_j+a_j^2} ]

    • 换成(y=ax+b)形式:

    [g_{j-1}+a_j^2=2a_ia_j+f_i-a_i^2 ]

        for (int i = 1; i <= n; ++i)
            f[i] = (a[i] - a[1]) * (a[i] - a[1]);
        while (--k) {
            memcpy(g, f, sizeof(double) * (n + 1));
            int l = 1, r = 0;
            for (int i = 1; i <= n; ++i) {
                while (l < r && (g[i-1] + a[i] * a[i] - g[q[r]-1] - a[q[r]] * a[q[r]]) * (a[q[r]] - a[q[r-1]]) <= 
                        (g[q[r]-1] + a[q[r]] * a[q[r]] - g[q[r-1]-1] - a[q[r-1]] * a[q[r-1]]) * (a[i] - a[q[r]])) r--;
                q[++r] = i;
                while (l < r && g[q[l+1]-1] + a[q[l+1]] * a[q[l+1]] - g[q[l]-1] - a[q[l]] * a[q[l]] <= 
                        a[i] * 2 * (a[q[l+1]] - a[q[l]])) l++;
                f[i] = g[q[l]-1] + (a[i] - a[q[l]]) * (a[i] - a[q[l]]);
            }
        }
    

    C 山屋惊魂 (Unaccepted)

    • 好好的大模拟非得弄个期望,只能把没有期望的那30分拿了,然后就弃了

    D 彩球问题 (Unaccepted)

    • 暴搜20分



    联考day6

    阶段排名 7

    A 过河

    • 全场唯一正解,我真是高兴坏了,虽然我不会证明我那样写的正确性。

    B 选数 (Unaccepted)

    • 写了个(O(2^nm^2))的,然后大力卡常,在register和抛弃了NOILinux的评测姬的帮助下跑过了1e9,拿了40分

    C 数列 (Unaccepted)

    • 又一道数学题,他们居然说纯暴搜40分,我直呼内行,我那12分暴搜才叫纯,啥情况都能枚举到

    D 模板 (Unaccepted)

    • 看上去就像dsu,可惜我不会,最后1小时觉得70分可以用线段树合并写,但是由于太懒了,就去想T1了。



    晚间测试10

    阶段排名 6

    A 分组 (Unaccepted)

    • 一眼不可做,瞎搞一通,拿了44。

    B 大佬

    • 一眼期望题也不可做,本来打的8分的暴力,结果只拿了4分,可能是NOILinux太强了

    • 正解真是好简单,考虑每天期望值,然后乘上n-k+1天

    • 每天的就是i个数任意选的减去i-1个数任意选的,保证有i被选,然后乘上劳累度。

        for (int i = 1; i <= m; ++i)
            if ((ans += 1LL * (Pow(i, k) - Pow(i - 1, k) + M) * read() % M) >= M) ans -= M;
        printf("%lld
    ", 1LL * ans * Pow(Pow(m, k), M - 2) % M * (n - k + 1) % M);
    



    联考day5

    阶段排名 3

    遗忘之祭仪

    • 挺简单一题,把符卡能打的记录下来,每次扫到一个就消一遍,保证时间效率nm

    • 考场上没考虑符卡中没有x的情况,丢了10分


    客星璀璨之夜 (Unaccepted)

    “ 虽然不清楚是不是那两人的力量
    
    在那个风暴肆虐的夜晚,的确有一瞬
    
    真的在那一瞬间,在云破天开的时候
    
    透过空隙中看到的璀璨星空,不知为何倒映眼中不能忘怀 ” ——《奇迹召唤星辰》
    
    • 一看期望,打了个30分暴力就Pass了

    割海成路之日 (Unaccepted)

    • 觉得可以并查集做,搞了2小时样例都过不了,最后就剩6分钟了,一狠心就直接打包进去了,没想到还能拿35分。

  • 相关阅读:
    什么才是java的基础知识?
    Java的背景、影响及前景
    设计模式分类
    关于日期及日期格式转换的记录
    添加同名工具后台验证后不跳转且保留用户输入的数值
    案件讨论回复中出现把多个附件当成一个评论显示,导致分页出错
    指令发布详情弹窗实现“取消”按钮
    最大间隔分离超平面的唯一性完整证明
    CART算法与剪枝原理
    Spark MLlib学习
  • 原文地址:https://www.cnblogs.com/Z8875/p/13834370.html
Copyright © 2011-2022 走看看