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

    这次终于进小机房了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一下就可以了,自己想出来可真是高兴

  • 相关阅读:
    Laravel 初始化
    ant design pro 左上角 logo 修改
    请求到服务端后是怎么处理的
    Websocket 知识点
    王道数据结构 (7) KMP 算法
    王道数据结构 (6) 简单的模式匹配算法
    王道数据结构 (4) 单链表 删除节点
    王道数据结构 (3) 单链表 插入节点
    王道数据结构 (2) 单链表 尾插法
    王道数据结构 (1) 单链表 头插法
  • 原文地址:https://www.cnblogs.com/Z8875/p/13781348.html
Copyright © 2011-2022 走看看