09 2018 档案

摘要:题意 有n个数和m个运算符,按顺序选m个数进行运算,初值为k,问最后能得到的最大值是多少。 思路 dp[i][j]表示选到了第i个数时用了j个运算符,观察发现,一个数只能由他前一个状态的最大值或最小值转移过来(因为乘上一个负数会使最小的数变最大),所以我们同时维护最大最小。 然后转移就行了,需要注意 阅读全文
posted @ 2018-09-15 18:26 computer_luo 阅读(261) 评论(0) 推荐(0)
摘要:题意 维护一个数据结构,使得能进行两种操作 1.查询[l,r]内a[l]×L+a[l+1]×(L−1)+⋯+a[r−1]×2+a[r]之和,L是区间长度。 2.单点更新一个值 思路 线段树和树状数组只能维护区间和,但此题每项有与区间长度相关的权值。 聪明的鸡神想到了三角形法,分别维护(n-i)*a[ 阅读全文
posted @ 2018-09-12 10:37 computer_luo 阅读(121) 评论(0) 推荐(0)
摘要:题意 后浪推前浪,每个浪是一个矩形,由两条边组成,后形成的浪会把之前浪的边吞掉,问最后剩下的边的总长度。 思路 越后生成的浪保留的边越多,所以我们反过来放就保证我们先放的不会被吞,采用集合存放点,每次放新的点的时候查找到他正左端的点和正右端的点,在ans上加上横纵坐标之差就完成了。 题目保证没有任两 阅读全文
posted @ 2018-09-12 10:24 computer_luo 阅读(103) 评论(0) 推荐(0)
摘要:题意 两个人在一起玩galgame,一个人想看good ending,另一个想看bad ending,两个人轮流选选项都按最优策略选,问最后能看到什么结局。 思路 可以理解为一个人想让最终分数尽可能高,另一个想让最终分数尽可能低,然后根据每个问题双向dp,一下子就写出来了。 代码 后记 这题赛时没想 阅读全文
posted @ 2018-09-11 22:51 computer_luo 阅读(221) 评论(0) 推荐(0)
摘要:题意 给你一棵树和每条边的权值,m次询问,求任两点间距离,LCA+tarjin裸题。 思路 能用的算法大概也很多吧,但是就为了练一手LCA+tarjin我就来做这题了,够裸了,还能验板子233。 这个算法主要是用到了并查集,找LCA,在找到询问对的时候存下LCA。然后最后利用公式结合tarjin得来 阅读全文
posted @ 2018-09-10 19:46 computer_luo 阅读(272) 评论(0) 推荐(0)
摘要:题意 在一个n*m的地图的线上造迷宫,给出每条边的造价,造出迷宫,使得地图上任两点有且仅有一条路,使迷宫造价最低,题目保证这样的迷宫唯一。建出迷宫之后有q次询问,询问两点间的距离。 思路 迷宫构造问题,起初没有思路,在一段思索之后和鸡神想出了反其道而行之的办法,先假设所有墙都有,我们要满足题设条件就 阅读全文
posted @ 2018-09-10 19:30 computer_luo 阅读(128) 评论(0) 推荐(0)