ACM训练日记—8月22日
2017-08-22 21:26
239 查看
今天上午还是在继续着对树状数组的学习,也试着自己水了几题。其中几道题令我印象深刻。
有道题是就是给你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个循环套起来,穷举所有点。。。
感觉自己现在能对树状数组的理解还是不够灵活,上面那道题就令我没想到,明天还是树状数组,加油吧!!
有道题是就是给你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个循环套起来,穷举所有点。。。
感觉自己现在能对树状数组的理解还是不够灵活,上面那道题就令我没想到,明天还是树状数组,加油吧!!
相关文章推荐
- ACM暑假训练日记 17.8.12
- ACM暑假训练日记 17.8.21
- ACM训练日记—3月29日
- ACM训练日记—1月19日
- ACM训练日记—8月3日
- ACM训练日记—3月25日(13届景驰—埃森哲杯比赛(牛客)题目整理)
- ACM训练日记
- ACM训练日记—8月4日
- ACM训练日记—8月5日
- ACM训练日记—8月12日
- ACM训练日记—8月16日
- ACM训练日记—3月19日
- ACM训练日记—8月8日
- ACM训练日记—8月10日
- ACM训练日记—12月31日
- ACM训练日记—3月7日
- ACM-10月8日周日周末训练日记
- ACM训练了日记—12月10日
- ACM训练日记—8月11日
- ACM暑假训练日记 17.8.19