1.今天首先登录了洛谷网站,在提高+/省选-部分随机找了两道题进行题目尝试,这里记录一下(只AC了一部分,没过的都是超时原因,本来就想尝试一下结果过不去就犟上了,记一下仇)。
p2119魔法阵
题目大意:
大魔法师有m个魔法物品,编号分别为1,2,...,m。每个物品具有一个魔法值,我们用Xi表示编号为i的物品的魔法值。每个魔法值Xi是不超过n的正整数,可能有多个物品的魔法值相同。
大魔法师认为,当且仅当四个编号为a,b,c,d的魔法物品满足xa<xb<xc<xd,Xb−Xa=2(Xd−Xc),并且xb−xa<(xc−xb)/3时,这四个魔法物品形成了一个魔法阵,他称这四个魔法物品分别为这个魔法阵的A物品,B物品,C物品,D物品。现在,大魔法师想要知道,对于每个魔法物品,作为某个魔法阵的A物品出现的次数,作为B物品的次数,作为C物品的次数,和作为D物品的次数。
输入
30 8
1
24
7
28
5
29
26
24
输出
4 0 0 0
0 0 1 0
0 2 0 0
0 0 1 1
1 3 0 0
0 0 0 2
0 0 2 2
0 0 1 0
p1836数页码
题目大意:一本书的页码是从1—n编号的连续整数:1,2,3,…,n。请你求出全部页码中所有单个数字的和,例如第123页,它的和就是1+2+3=6。
输入
3456789
输出
96342015
2.对c++一本通上树状数组、ST算法、线段树进行了了解
感悟:有点体会到了老师直接说的复制粘贴是什么意思,现成的语句直接搬过去的确挺方便的。就内容来说,课本上解释的确实有点复杂,没一些博客上说的好理解一点,硬知识其实也并不多,就是把一个区间分成几个特殊的区间,然后统筹在区分的时候设节点记录,良心提醒:一些语句的作用及原理搞不明白的就直接自己写一遍,带入自己想的几个数据,编译一遍作用就很明显了。
总结:这种数组的优势应该在于时间吧,这部分题目用暴力只能得到一部分很少的分数,大部分测试全超时,应用的题目中求连续和类的多一点。
尝试题目:
p3801红色的幻想乡
结果:失败,目前树状数组停留在生搬硬套阶段,例题明白自己写就抓瞎,明天开始攻题。
总结:好像找到了解决数列问题时,时间超时的解决方法,但无论是树状数组还是线段树,里面一些单点修改以及区间求和、区间询问的语句不会写,复制粘贴还是会的,例题也看的差不多了,换一个题就是不会写,明天打算从题目中找一下突破口,从题目中找课本上的东西,然后再互相印证,直接看资料明白意思了写的时候还是抓瞎。