2016 大连网络赛
这场比赛怎么说呢,很蛋疼就是了…
1002 (FZU 月赛原题?)
这一题要求区间内所有子区间不同GCD的个数,和FZU月赛题简直一模一样…在这里膜一下FZU。
具体做法是我们首先用RMQ处理出区间GCD,然后我们从右向左枚举区间的左端点,同时二分区间的右端点,找到不同gcd的个数,用树状数组记录下来,最后查询就行了。
注意到我们是顺序枚举,所以在一开始要把查询区间排个序,然后离线处理。
1006
听说这题挺坑的,不过这题是队友写的…好像也是个水题,这里就不写了。
1007
这一题我不得不吐糟一下这个蛋疼的题意,不看讨论区这题这迷之题意我还真看不懂…
具体是有n个人,每人都有一条由不同颜色的石头组成的项链,如果是朋友,则项链上至少有一种颜色是相同的,如果是敌人,则项链上没有颜色相同。现在问对于所有可能的关系,是否每人都能构造出一条合法的项链。
这题具体是找需要颜色最多的情况,画个图出来基本可以看出是个无三元环的图,然后求边数:\[(n*n) \ div\ 4\]
好像更加严谨的公式是: \[ \lceil \frac{x}{2} \rceil · \lfloor \frac{x}{2} \rfloor \]
1008
槽点最多的一题,坑爹做法,坑爹重测,而且一开始数据还是错的。
做法是找到后面第一个比当前值小的值,然后直接跑就行了。(听队友说这样跑的还很快…)
excuse me?
1009
这题听说是原题,但是并没有写过。做法也比较简单,维护没有遍历过的点,做BFS,每次跑一遍之后就把遍历到的点删去。想法简单,实现也比较容易。至于维护的话用链表就可以了。
1010
一开始我把题中说的orderd pair理解成了顺序对…所以我一直以为1是根节点…然后WA了n遍…
欲哭无泪。
做法是首先对数据离散化,然后找到根( \(:(\) )从根DFS,每次找到一个点就查询\(k/a[v]\),再把该点放到线段树中,回溯的时候把该点删除就行了。
后记:坑爹。