ACM训练日记—8月22日

         今天上午还是在继续着对树状数组的学习,也试着自己水了几题。其中几道题令我印象深刻。

         有道题是就是给你n个数,m个操作操作分为两种

    1 a b k c,就是 i属于(a,b)这个区间,而且i必须满足(i-a)%k==0,然后这个数加上c
    2 a,问你坐标为a的数的大小是多少
    得i%k==a%k;
    这道题我本来想自己水掉,可是怎么改都是超时。最后看博客是开了一个三维的树状数组,c[i][k][mod],mod是i%k,因为k比较小所以对每一个k都建立了树状数组,当然sum也要全部k的累加一下,c中储存的是增量。
    下午还进行了团体训练赛。
    第一题是明显的最小生成树,给了几个坐标,求将这几个点连起来最短用多少,就是求出每一点到其他点的直线距离,然后prim算法。
    第二题也是图论,有了几个点,给了数条单向路,求每一点的牛从起始点到x在回来花的时间,求用时最长的牛。我第一反应可以用 迪杰特拉斯算法求x到各个点的,但是如果在去遍历所有点求其到x的距离的话,肯定是n^3,可是如果将路径全部反向,原本走向x的变成从x走回,再用迪 杰特拉斯算法,就可以求出最短路径,此时n^2的时间。
    第四题也是令我怎么也想不到的题,5*5的方格找连续的7个,求J个数比H多的情况种数我在尝试深搜与最小生成树都不对,比赛结束后竟然是完全暴力的方法,连续7个循环套起来,穷举所有点。。。
    感觉自己现在能对树状数组的理解还是不够灵活,上面那道题就令我没想到,明天还是树状数组,加油吧!!

         

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值