• 联赛前第四阶段总结


    这次终于进小机房了QwQ,可是这样就得离开叶队了,啊,这可太不好了呀
    虽然小机房没有氛围吧,但是有种不一样的感觉

    联赛模拟测试14

    A 虎

    • 看到这道T1我十分蒙,没啥思路,尤其是不知道那些可以不用变成黑边的怎么处理,然后就打了父亲都是1的和全是黑边的,后者还打挂了。
    • 其实这道题和昨天的Graph特别像,也是偶数条边就不用往上传,奇数条边,如果x能传就传上去,一个Dfs就搞定了。
    bool Dfs(int x) {
        bool b = 0;
        for (int i = head[x]; i; i = e[i].next) {
            int y = e[i].t;
            if (!Dfs(y)) continue;
            if (b) ans++;
            b = !b;
        }
        if (b && !w[x]) ans++;
        return ((w[x] == 1) || (b && w[x] == 2));
    }
    
    int main() {
        n = read();
        for (int i = 2; i <= n; ++i) {
            Add(read(), i);
            int y = read(), z = read();
            w[i] = !z ? 2 : y ? 0 : 1;
        }//w为0表示不能改变,1表示需要改变,2表示可以改变
        Dfs(1);
        printf("%d
    ", ans);
        return 0;
    }
    

    B 陶陶摘苹果

    • 一开始看错题了以为是求最长上升子序列,一看20分5000的数据(O(n^2log(n)))就不想做了,但一看还有3个小时,T3又那么恶心,就肝这道题。写完最长上升子序列后突然发现读错题了,直接O(n)扫m遍,这就很可做。
    • 后来想了想怎么优化,就想到了改一个点都会改那些,发现对前面是没有影响的,然后在改的地方后面找第一个大于前面最大值的点,预处理出来这个点到最后的答案就好了
    • 然后我就开始了无尽的预处理,先O(n)的把1~i的答案求出来,在用ST表+二分查找+线段树区间加把i~n的答案求出来,最后询问的时候在用二分回答。
    • 最后切掉了这道题,说实话感觉真不赖

    C 开心的金明

    • 一看这麻烦的题面整个人都傻了,瞎打了个暴力就去肝T2了,最后得了20分,就是两个样例
    • 正解贪心,模拟一下过程。
    • 用set维护结构体,表示电脑的价格和数量,每次都买最便宜的,如果超过e限制,就每次删最贵的,

    D 笨小猴

    • 这个题之前学长讲过,当时挺在状态,想了一会就想出来了,就是按a从小到大排序,然后每两个都选b值大的那个,最后把a值最大的选上,一定能保证b值符合条件,然后画个柱状图找最差情况模拟一下就知道这是对的。


    联赛模拟测试13

    A Tree

    • 考试时用最大生成树的思路瞎推了推,发现可能是边权加起来,然后对拍起来没啥问题,就这样了A了

    B Permutation (Unaccepted)

    • 能往后放的就往后放,本来以为是TLE50分,结果是WA了,看别人都90分,问了问叶队,得多跑几遍,然后我加个while(1)就90分了QwQ

    C Graph

    • 这道题前20分的点没过,就把树的点过了。
      其实其它图的解法和树的非常类似,对于每个联通块先搞出一棵Dfs树来,反祖边就把祖先拆开一个点成为子节点,然后按照树处理就好了(不用真的拆开,只是一种思路)
    bool Dfs(int x, int fa) {
        dfn[x] = ++dfc;
        int a, b = 0;
        for (int i = head[x]; i; i = e[i].next) {
            int y = e[i].t;
            if (y == fa || dfn[y] > dfn[x]) continue;
            if ((dfn[y] && dfn[y] < dfn[x]) || Dfs(y, x)) {
                if (b) ans[++cnt] = (Node) {a, x, y}, b = 0;
                else a = y, b = 1;
            }
        }
        if (fa && b) ans[++cnt] = (Node) {a, x, fa};
        return !b;
    }
    

    D 十字绣

    • 这个题都写过题解,但考试的时候只回想起了一丢丢,暴力还不会打,于是愉快的拿到了10分的好成绩,


    晚间测试5

    真是越考名次越低,总名次都掉到第8了 QwQ

    A 容易题

    • 考场上发现将每位能选的数的和相乘就是答案,拍了拍没啥问题,然后100%的数据就用map搞了搞就过去了。

    B 兔子与樱花

    • 看了半天没看懂题,瞎打了个暴力水了20分。
      正解是贪心,从叶子节点往上搜,每个节点的子节点能删就删(先按贡献从小到大排序)


    联赛模拟测试12

    爆了20分。

    A 松鼠的新家

    • 树上差分板子题。

    B trade

    • 堆优化反悔贪心,每次找前面最小的,如果有比当前小的,算在答案里,并且另加入一遍这个点的价值,如果后面选了这个点,就相当于在这时买了又卖。

    C sum

    • 本来1~4,11~16都可以暴力碾过去,但是写的时候没注意,11~14单独写了一种方法,然后不知怎么就挂了,只拿了40分
      因为从(S_{n, m})可以O(1)得推到(S_{n,m+1},S_{n,m-1},S_{n+1,m},S_{n-1, m}),询问可以离线,可以将询问想成区间,这样就可以用莫队来解决,然后叶队手把手教了我奇偶优化莫队(叶队太巨了!)。

    [S_{n,m+1}=S_{n,m}+C_n^{m+1} ]

    [S_{n,m-1}=S_{n,m}-C_n^m ]

    [S_{n+1,m}=2 imes S_{n,m}-C_n^m ]

    [S_{n-1,m}=frac{S_{n,m}+C_{n-1}^m}{2} ]


    D building (Unaccepted)

    • 前4个点没对,5~8个点对了可真是神奇,前20分的代码还改了一次,但还是挂了,只拿了20分。


    晚间测试4

    A 字符串

    • 一看见题目上说1的个数不能少于0的个数,那就往卡特兰数上想。把坐标系画出来后不知道到对称点的方案树怎么求,只能打了个表,算出来结果是(C(n+m,m)-C(n+m,m-1))

    B 哪一天她能重回我身边 (Unaccepted)

    • 暴力Dfs的时候回溯的时候逗号达成分号,然后仅有的20分没了...


    联赛模拟测试11

    这次状态还可,挂了-20分
    纯暴力选手Rank3???

    A One

    • 线性约瑟夫问题,考试的时候打了30分暴力,前7名就我30分,别人都是60,100。
      然而在网上并没有找到这类题的题解,就问了xyx和lzs,正解是推式子,从0开始编号,最后剩下一个肯定是0号,然后推出在2个人的时候是几号,最后推出在n个人的时候是几号
        int x = 0;
        for (int i = 2; i <= n; ++i)//当前序列有多少人
            x = (x + n - i + 1) % i;
        printf("%d
    ", x + 1);
    

    B 砖块

    • 大模拟,12种情况稍微想想就出来了。

    C 数字 (Unaccepted)

    • 考场上想了个错误的80分写法,对拍拍出来了,然后把20分的代码加上个预处理,拿了50分。

    D 甜圈

    • 打了个50分n2暴力,结果数据水,拿了70分

    • 正解是将工作顺序看成一字符串,写个线段树维护一下Hash值,然后区间加,区间乘。可是乘法标记和加法标记混一块的实在是想不明白,若竹兄上课讲的那种方法和我考场想的特别像,然后我就按若竹的提示想了出来。

    • 将T个工作拍到线段树上,每个节点储存做的工作区间,[0, 0]表示还没有工作,[-1, -1]表示不合法,然后大力Pushdown一下就可以了,自己想出来可真是高兴

  • 相关阅读:
    cuda(2)---方阵乘法
    cuda(1)-imageBlur
    python(6) 字符串操作
    CUDA 编程之Release模式和Debug模式
    20200909 day4 刷题记录
    20200908 day3 刷题记录
    20200906 day1 模拟(一)
    刷题Day 4-6 树形dp三题
    4.28 刷题Day 3 树形dp一题
    DTQ2019-D1T2 括号树 题解
  • 原文地址:https://www.cnblogs.com/shawk/p/13781348.html
Copyright © 2020-2023  润新知