05 2018 档案

摘要:题意: n枚硬币排成一圈,Alice和Bob轮流从其中取一枚或者两枚连续的硬币。 硬币取走之后留下空位,相隔空位的硬币不算连续的。 Alice先取,如果一个人取完之后没有硬币,那么这个人获胜。 思路: 当n <= 2,那么肯定是Alice获胜; 考虑,如果剩下偶数段石子,那么当Alice取了之后,B 阅读全文
posted @ 2018-05-29 12:06 qrfkickit 阅读(169) 评论(0) 推荐(0)
摘要:题意: 给出一个数组,要求把他们排成升序,两个数字交换的代价是x + y,求代价的总和。 思路: 简单的逆序对变形,树状数组维护小于的cnt和sum即可。 代码: 阅读全文
posted @ 2018-05-24 04:55 qrfkickit 阅读(215) 评论(0) 推荐(0)
摘要:题意: 给出一个N * N * N规模的矩阵,有2种操作:1.把A[i, j, k]反转,(x1<=i<=x2,y1<=j<=y2,z1<=k<=z2). 2.查询A[x,y,z]的值。 思路: 三维树状数组裸题,得画图好好推导一下。 区间更新,单点查询。 代码: 阅读全文
posted @ 2018-05-24 04:52 qrfkickit 阅读(144) 评论(0) 推荐(0)
摘要:题意:二维平面上一开始所有星星都是暗淡的。 给出3种操作: 1.将x,y处的星星点亮; 2.将x,y处的星星灭掉; 3.统计x1,y1,x2,y2区间内有多少颗亮的星星。 思路: 二维树状数组裸题。 注意x1,x2,y1,y2数据给出的并不是有序的,这是一个坑点。 代码: 阅读全文
posted @ 2018-05-24 04:49 qrfkickit 阅读(157) 评论(0) 推荐(0)
摘要:题意: 最开始有一个空的数组,有3中操作: 1.插入一个元素 2.删除一个元素 3.查询比a大的第k个元素是多少。 思路: 主要是第三个操作 树状数组求第k大是用的二分,判断满足的条件是大于等于0 这题首先得求出小于等于a的元素,假设是cnt,那么大于它的第k个元素,求的就是整个数组的第cnt + 阅读全文
posted @ 2018-05-24 04:46 qrfkickit 阅读(155) 评论(0) 推荐(0)
摘要:题意: 有若干棵树,每棵树有横坐标xi和高度hi。 把若干棵树按照x递增排序,每棵树的rank是ri,那么定义两颗树的F为abs(ri-rj)。 把若干棵树按照高度递增排序,每棵树的rank是ri,定义两棵树的D为min(ri,rj)。 两棵树的不和谐度定义为D * F。 求n棵树中任意两棵树的不和 阅读全文
posted @ 2018-05-23 16:58 qrfkickit 阅读(163) 评论(0) 推荐(0)
摘要:题意: 有一棵树,这棵树上有很多果子,一开始每个果子都在,给出下面两种操作: 1.C x,改变果子x的状态,如果有,那么久摘下来;没有,就变为有; 2.Q x,问在x上面的(包括x)有多少个果子。 思路: 多叉树,朴素的更新方法就是从叶子到根的路径上的点的值全部更新,但是这样每更新的复杂度是O(n) 阅读全文
posted @ 2018-05-23 16:01 qrfkickit 阅读(240) 评论(0) 推荐(0)
摘要:题意: 若干头牛排列在一条坐标轴上(位置都不同),每头牛都有一个音量vi,任意两头牛i,j之间要交流,他们发出的音量就是max(vi,vj) * 它们的距离。 问n / (n-1)对牛交流的音量的总和。 思路: 先无脑n ^ 2了一波,果然tle了,是我太naive。 首先把牛按照音量递增排序,对于 阅读全文
posted @ 2018-05-23 04:03 qrfkickit 阅读(168) 评论(0) 推荐(0)
摘要:题意: 给出一个矩阵,有两种操作: 1.翻转给定的子矩阵; 2.查询a[i][j]的值。 思路: 树状数组是从小到大更新的。 这个题用二维树状数组可以解决,假设是一维树状数组, 0 0 0 0 0 0 我们把第三个到第四个翻转,变成 0 0 1 1 -1 0 sum[1] = 0,sum[2] = 阅读全文
posted @ 2018-05-22 23:11 qrfkickit 阅读(121) 评论(0) 推荐(0)
摘要:题意: 对一个矩阵有2种操作: 1.把某个元素设为x。 2.查询以(x1,y1)为左上角 以(x2,y2)为右上角的矩阵中的数字的和。 思路: 二维树状数组入门题,同时对横坐标和纵坐标做前缀和就行了。 代码: 阅读全文
posted @ 2018-05-22 19:44 qrfkickit 阅读(155) 评论(0) 推荐(0)
摘要:题意: 给出一个矩阵,其中某些格子有树,用给定的一个规模的方框去圈,问最多可以圈到多少树。 思路: 二维树状数组裸题。 代码: 阅读全文
posted @ 2018-05-22 18:36 qrfkickit 阅读(130) 评论(0) 推荐(0)
摘要:题意: 输入若干个区间,对于一个区间(a,b),如果存在一个区间(x,y)满足x <= a && y >= b && y - x > b - a,那么就说(x,y)比(a,b)大。 求比每一个区间大的区间有多少。 思路: 树状数组,这题最关键的其实是有重复的区间。 首先把区间按照起点升序排序,如果起 阅读全文
posted @ 2018-05-22 11:29 qrfkickit 阅读(151) 评论(0) 推荐(0)
摘要:题意: 把一个数组分成若干组,保证每组的size >= k并且一组中任意两个数字的差的绝对值 <= d,问存不存在这样的分法。 思路: 线性dp。 用dp[i]表示前i个数是否有分法。 设j为满足a[i] - a[j] <= d的最小的a[j]的下标,那么dp[i]就可以从dp[j-1] ~ dp[ 阅读全文
posted @ 2018-05-22 10:45 qrfkickit 阅读(351) 评论(0) 推荐(0)
摘要:题意: 有n * k块木板,每个木桶由k木板组成,每个木桶的容量定义为它最短的那块木板的长度。 任意两个木桶的容量v1,v2,满足|v1-v2| <= d。 问n个木桶容量的最大的和为多少,或者说明不可能做出这样的n个木桶。 思路: 贪心 要满足|v1-v2| <= d,那么就要满足最大的木桶容量和 阅读全文
posted @ 2018-05-22 10:05 qrfkickit 阅读(698) 评论(2) 推荐(0)
摘要:题意: 有n个开关,m盏灯。 一个开关可以控制多个灯,一旦一个灯开了之后,之后再对这个灯的操作就没用了。 问是否存在一个开关,去掉了这个开关之后,按下其它开关之后所有的灯还是亮的。 思路: 首先统计每个灯被按了几次,然后枚举每个开关,把这个开关的贡献去掉,判断是否所有灯的次数大于等于1,然后再回复这 阅读全文
posted @ 2018-05-22 09:18 qrfkickit 阅读(362) 评论(0) 推荐(0)
摘要:题意: 移动最少的步数,使得所有的棋子在同一颜色的格子中。 每次一个棋子只能向左或者向右移动一步,不能移到有棋子的格子中。 思路: 枚举全黑和全白的情况。 对于每一个需要移动的棋子,它移动到的位置一定是从1开始第一个可以移动的位置,不交叉移动,保证了步数最小。 代码: 阅读全文
posted @ 2018-05-22 09:14 qrfkickit 阅读(284) 评论(0) 推荐(0)
摘要:题意: 初始化一个矩阵,有几种操作: 1.X Y A,想坐标为(X,Y)的格子里面加A; 2.L B R T,查询L <= x <= R,B <= y <= T的范围内的数的和是多少。 思路: 二维树状数组,加一重循环查询前缀和。 代码: 阅读全文
posted @ 2018-05-21 22:01 qrfkickit 阅读(158) 评论(0) 推荐(0)
摘要:题意: 在一个平面直角坐标系中,定义一个星星的level为横坐标小于等于且纵坐标小于等于它的坐标的星星的个数。 给出若干个星星的坐标,问level为0-n-1的星星分别有多少。 思路: 将星星按照横坐标递增排序,如果横坐标相同,按照纵坐标递增排序。 然后分别找横坐标和纵坐标的前缀和,小的那个就是这个 阅读全文
posted @ 2018-05-21 21:07 qrfkickit 阅读(133) 评论(0) 推荐(0)
摘要:题意: 问一个数组从无序到有序需要交换多少次。 思路: 用树状数组,每次求小于等于当前的数字的个数x,这个可以用求前缀和实现,那么容易知道它需要移动的次数就是当前下标i - x。 离散化用map和set各种tle,最终用二分离散化写过了。 代码: 阅读全文
posted @ 2018-05-21 20:38 qrfkickit 阅读(186) 评论(0) 推荐(0)
摘要:题意: 给出一个数组,删除大于等于k的数字,使得其满足以下条件: 1.剩余的连续的段,每一段的长度相等; 2.在满足第一个条件的情况下,段数尽可能多; 3.在满足前两个条件的情况下,k取最小的。 求k。 思路: 一开始整个数组可以看成完整的一段,这是对应的k是最大的数字 + 1。 用一个set sd 阅读全文
posted @ 2018-05-19 23:54 qrfkickit 阅读(658) 评论(2) 推荐(0)
摘要:预处理: 查询: 阅读全文
posted @ 2018-05-19 00:17 qrfkickit 阅读(291) 评论(0) 推荐(0)
摘要:题意: 给出一个数组,每次询问区间[l,r]的gcd是多少,并且这个数组有多少个连续的区间的gcd和[l,r]的gcd相等。 思路: 区间询问RMQ问题,可以用st表解决,预处理的时间是O(nlogn),一次查询的时间是O(logn)。 关键是第二个问题,如何找出这些区间的数量。 如果固定区间的左端 阅读全文
posted @ 2018-05-19 00:15 qrfkickit 阅读(260) 评论(0) 推荐(0)
摘要:题意: 给出一棵树,问最多去掉多少条边之后,剩下的连通分量的size都是偶数。 思路: 如果本来就是奇数个点,那么无论去掉多少条边都不可能成立的。 如果是偶数个点,就进行一次dfs,假设一个点的父亲是u,儿子是v,那么可以去掉(u,v)的条件就是v及其子树有偶数个点,任何一条这样的边都是可以去掉的。 阅读全文
posted @ 2018-05-18 03:27 qrfkickit 阅读(472) 评论(0) 推荐(0)
摘要:题意: 有n排座位,每排有两个座位,每排座位的宽度都不一样。 有2 * n个人要上车,如果是内向的人,那么它会选择一排两个都是空位并且宽度最小的一排去坐; 如果是外向的人,会选择一排座位已经有人坐的,并且宽度最大的一排。 输入数据保证外向的人一定可以找到合适的位置。 问每一个人坐的排数是多少。 思路 阅读全文
posted @ 2018-05-18 03:22 qrfkickit 阅读(213) 评论(0) 推荐(0)
摘要:题意: 一个01串是否合法满足以下两个要求: 1.没有两个相邻的1; 2.在满足第一个条件的情况下,不能再放下更多的1。 判断一个给定的串是否合法。 思路: 最近cf的A怎么都这么坑啊。。。 首先是判断长度为1的情况,为0是No,1就是Yes; 然后判断长度大于1的,有2种一般情况,11,000 2 阅读全文
posted @ 2018-05-18 03:15 qrfkickit 阅读(360) 评论(0) 推荐(0)
摘要:题意: 定义一个函数f(a): 给出一个数组a,有q个询问,每次询问回答在l到r的区间内,连续子串的f函数的最大值。 思路: 画图,来自codeforces SheepRanger 由此图可知,f(l,r) = f(l,r-1) ^ f(l+1,r),多画图哇! 所以就变成了区间dp,同时维护f(l 阅读全文
posted @ 2018-05-16 23:41 qrfkickit 阅读(468) 评论(8) 推荐(1)
摘要:题意: 给出两种操作: 1.添加一个数字x到数组。 2.给出s,x,k,从数组中找出一个数v满足gcd(x,k) % v == 0 && x + v <= s && (x xor v 最大),如果没有,输出-1. 思路: 有两种做法。 第一种,首先用若干个set存因子中有k的数字。 然后每次在set 阅读全文
posted @ 2018-05-16 17:12 qrfkickit 阅读(553) 评论(0) 推荐(0)
摘要:题意: 判断一个分数在某一进制下是否为无限小数。 思路: 首先把这个分数约分,然后便是判断。 首先,一个分数是否为无限小数,与分子是无关的,只与分母有关。 然后,再来看看10进制的分数,可化为有限小数的特点,10为分母可以,2为分母可以,16为分母可以,40为分母可以。。。。 总之,其实全部都与2和 阅读全文
posted @ 2018-05-16 16:05 qrfkickit 阅读(477) 评论(0) 推荐(0)
摘要:题意: 给出一个矩阵,如果一个格子是数字,那么与这个格子相邻的格子中有炸弹的数量必须等于这个格子中的数字; 如果一个格子是空地,那么这个格子的所有相邻的格子中就不能有炸弹。 判断这个矩阵是否合法。 思路: 暴力枚举即可,不过空地那里要注意,相邻的是数字也可以。 代码: 阅读全文
posted @ 2018-05-16 15:56 qrfkickit 阅读(305) 评论(0) 推荐(0)
摘要:题意; 给出一棵树,其中有两个点,x和y,限制走了x之后的路径上不能有y,问可以走的路径(u,v)有多少条,(u,v)和(v,u)考虑为两条不同的路径。 思路: 简单树形dp,dfs统计在x到y路径(不包括x和y)之外的所有点,在x这边的有a个,y这边的有b个,那么答案就是n*(n-1) - a * 阅读全文
posted @ 2018-05-15 03:22 qrfkickit 阅读(600) 评论(0) 推荐(0)
摘要:题意: 给出三个字符串,每个字符串长度相同,给出n,要求在n轮内,每一个字符串必须改变一个字符。 问最后哪个字符串中拥有最多相同的字符,即美丽度最大。 思路: 首先,很不容易想到的一点是从a变到a,有两种方式a -> 其它 -> a,或者a -> 其它 -> 其它 -> a,即变2次或者变3次。 变 阅读全文
posted @ 2018-05-15 03:15 qrfkickit 阅读(687) 评论(0) 推荐(0)
摘要:题意: 对一个圆形的pizza,只能用直线来切它,求把它切为n+1份的形状和size都相同的最下次数。 思路: 形状和size都相同,那么只能是扇形,分奇偶讨论。 n为0还得特判,切0刀,因为这个还被hack一发,汗。 代码: 阅读全文
posted @ 2018-05-15 03:04 qrfkickit 阅读(379) 评论(0) 推荐(0)
摘要:题意: round number的定义是二进制表示中0的个数大于1的数字。 问从a到b范围内的roud number有多少个。 思路: 数位dp,dp[pos][ze][on]表示当枚举到pos位的时候有ze个0和on个1的数字的个数。 这题最重要的就是前导0会对结果产生影响,因为要保证每一个数都是 阅读全文
posted @ 2018-05-14 10:20 qrfkickit 阅读(159) 评论(0) 推荐(0)
摘要:题意: 对一个数x(A nA n-1A n-2 ... A 2A 1),定义它的权重为F(x) = A n * 2 n-1 + A n-1 * 2 n-2 + ... + A 2 * 2 + A 1 * 1。 现在给出A和B,要求计算出0到B的比区间内有多少个数字的权重不超过A的权重。 思路: 数位 阅读全文
posted @ 2018-05-12 14:46 qrfkickit 阅读(240) 评论(0) 推荐(0)
摘要:题意: 有这样一个问题,给出一个数组,把里面的数字分组,使得每一个组里面的数两两相乘都是完全平方数。 问最少可以分成的组数k是多少。 现在一个人有一个数组,他想知道这个数组的连续子数组中,使得上面的问题答案分别为1到n的数组有多少个。 第一个样例 2 5 5 子数组有[5],[5],[5 5]三个, 阅读全文
posted @ 2018-05-10 11:02 qrfkickit 阅读(792) 评论(2) 推荐(0)
摘要:题意: 中文题意。 思路: 数位dp板子题,不过还是要说一下,上限为1时得前一次上限为1并且这次达到了上限。。。 代码: 阅读全文
posted @ 2018-05-09 23:41 qrfkickit 阅读(158) 评论(0) 推荐(0)
摘要:题意: 给出一棵树,要求去掉k个点,使得剩下的还是一棵树,并且要求Σ(2^i)最大,i是剩下的节点的编号。 思路: 要使得剩下的点的2的幂的和最大,那么肯定要保住大的点,这是贪心。 考虑去掉哪些点的话,那么去掉一个点,它相连的子树的点肯定都得去掉,很麻烦。 所以放过来考虑保留哪些点,那么就从大到小考 阅读全文
posted @ 2018-05-09 17:42 qrfkickit 阅读(601) 评论(2) 推荐(2)
摘要:题意: 买零食凑卡片的游戏,浪费钱。 给出每包粮食含有某一张卡片的概率,当然也可能什么也没有。 问凑齐一套卡片的买的零食的数量的期望。 思路: 求期望,那么倒着dp。 因为n只有20,所以考虑用状态压缩来表示当前拥有的卡片的情况。 dp[sta]表示当前拥有卡片为sta时还需要买多少包零食,显然dp 阅读全文
posted @ 2018-05-09 11:51 qrfkickit 阅读(233) 评论(0) 推荐(0)
摘要:题意: 255个像素格子,可以把这个255个分组,每组的大小不能超过k。 给出n个像素,要求每个像素用这组的key代表,并且表示出来的字典序要最小。 思路: 感谢js教本智障。 很自然的会想到贪心,也就是说,每次对当前的数,都要找到最小的可以当它的key的数。 那么这种数只能有两种情况,一种是这个数 阅读全文
posted @ 2018-05-09 02:53 qrfkickit 阅读(665) 评论(0) 推荐(0)
摘要:题意: 有一个城市有4行n列,n是奇数,有一个村庄在(1,1),村民的活动地点是(4,n); 有一个村庄在(4,1),村民的活动地点是(1,n); 现在要修建k个宾馆,不能修建在边界上,问能否给出一种安排方案使得两个村庄的村民到他们各自的活动地点的最短路的条数相等。 思路: 画了几个实例就应该知道, 阅读全文
posted @ 2018-05-09 02:40 qrfkickit 阅读(494) 评论(0) 推荐(0)
摘要:题意: 有珍珠和线,问能否重新安排使得相邻珍珠之间的线的数量相等。 思路: 首先,珍珠为0或者线为0,那么都满足条件; 其次,如果珍珠的个数大于线的个数,那么肯定不满足条件; 然后,如果线的个数能够被珍珠整除,那么满足条件,否则不满足。 代码: 阅读全文
posted @ 2018-05-09 02:33 qrfkickit 阅读(410) 评论(0) 推荐(0)
摘要:题意: 给出n条路和每条路的困难度ci。一个人初始的能力值为f 这个人每天被随机传送到一条路,如果他的能力值f大于ci,那么它就可以花费ti的时间逃出去,ti与ci的关系是给出的函数关系。 如果他的能力值小于等于ci,那么他的能力值就会增加ci,并且等待第二天再次传送。 问逃出去的期望的天数。 思路 阅读全文
posted @ 2018-05-08 22:08 qrfkickit 阅读(279) 评论(0) 推荐(0)
摘要:题意: 有m个人,n个盒子,每个盒子一开始都装了一个奖品。 每一次,一个人从n个盒子里面随机抽出一个,如果里面有奖品,就把奖品拿出来;如果没有,就原封不动放回。 问抽到奖品的个数的期望。 思路: 一开始从人去思考,怎么也推不出来。 每次抽是独立的,如果从礼物去思考的话,每次一个礼物被抽中的概率是1 阅读全文
posted @ 2018-05-08 19:47 qrfkickit 阅读(258) 评论(0) 推荐(0)
摘要:题意: 给出一个n,现在有2的n次方个球队。 第一轮,1和2比,3和4比,5和6比。。。。 第二轮,先把胜出的按照序号从小到大排序,然后第一个和第二个比,第三个和第四个比。。。。 。。。。。 问那个队伍获得冠军的期望最大。 思路: 求概率,那么就顺序递推dp。 显然,比赛一共只有n轮,而且每一个队伍 阅读全文
posted @ 2018-05-08 02:20 qrfkickit 阅读(222) 评论(0) 推荐(0)
摘要:题意: 给出一个n * m的格子,一个人在一开始在(1,1),要走到(n,m)。 假设在(x,y),每次她可以花费2点的魔法能量,p1的概率走到(x,y),p2的概率走到(x,y+1),p3的概率走到(x+1,y),保证p1+p2+p3 = 1。 问从(1,1)走到(n,m)花费的期望是多少。 思路 阅读全文
posted @ 2018-05-07 23:15 qrfkickit 阅读(162) 评论(0) 推荐(0)
摘要:题意: 有n个房间,这n个房间通过n-1条边相连,形如一棵树。 一个人走进一个房间,有ki概率被杀死,在1号房间复活;有ei概率逃走。 问逃走经过的边数的期望时多少。 思路: 概率dp。借鉴了这位前辈的思路:https://blog.csdn.net/morgan_xww/article/detai 阅读全文
posted @ 2018-05-07 21:49 qrfkickit 阅读(196) 评论(0) 推荐(0)
摘要:题意: 走棋游戏,投掷1-6的骰子,投到x,就从这个格子向前走x步。 有些格子有飞机,可以直接飞到更远的格子,也是只能向前飞,每个格子最多有一个飞机。 到达大于等于n的格子,则游戏结束。 问从游戏结束时的投掷格子的期望数。 思路: 期望一般从后往前dp。 假设dp[i]表示到i格时还需要投掷的次数, 阅读全文
posted @ 2018-05-07 19:21 qrfkickit 阅读(199) 评论(0) 推荐(0)
摘要:题意: 一个公司的系统有n种bug,s个子系统。 一个人找一个bug需要找一天。 找到每种是等概率的,找到一个子系统是等概率的。 现在,他需要在每个子系统中找到一个bug,并且找到n种bug,问期望的天数。 思路: 概率dp入门题,一般来说,期望是逆推的。 设dp[i][j]表示找到了i种bug,找 阅读全文
posted @ 2018-05-07 18:05 qrfkickit 阅读(204) 评论(0) 推荐(0)
摘要:题意: 一个完全图,有n个点,其中m条边是权值为a的无向边,其它是权值为b的无向边,问从1到n的最短路。 思路: 首先判断1和n被哪种边连通。 如果是被a连通,那么就需要全部走b的边到达n,选择最小的; 被b连通,需要走全部为a的边到达n,选择最小的。 第二种情况,用输入的边跑dijkstra; 但 阅读全文
posted @ 2018-05-07 13:33 qrfkickit 阅读(224) 评论(0) 推荐(0)
摘要:题意: 给出n个数,问做多可以找到多少对数字A,B,使得A xor B > max(A,B)。 思路: 感谢mzjj教本弱智。 对于一个数,只考虑小于它的数字。 假设对于一个数字x 11001001,对于从最高位开始的连续的1,满足条件的数y的这位一定不能为1,从碰到的第一位0开始:这一位就可以是1 阅读全文
posted @ 2018-05-07 01:39 qrfkickit 阅读(166) 评论(0) 推荐(0)
摘要:题意: 求一个数组的所有连续子串中不同的数字的和。 思路: 考虑每一个数字对于最终结果的贡献。 假设dp[i]表示以a[i]结尾的串的和,那么有dp[i] = dp[i-1] + a[i] * k。 这里的k,如果当前的a[i]没有在前面出现过,那么对结果的贡献肯定是k = i次,因为以它结尾的字串 阅读全文
posted @ 2018-05-06 22:29 qrfkickit 阅读(178) 评论(0) 推荐(0)
摘要:题意: 给出n个点,m条边,将若干个点染色,使得每个边至少有一点染色,问至少染多少个点。 思路: 如果是二分图,那就是最小点覆盖,但是这是一般图。 一般图的最小覆盖是npc问题,但是这题有一个条件比较特殊,就是输入的每条边都保证了至少有一个点小于等于30,所以至多覆盖30个点就可以了。 那么就可以用 阅读全文
posted @ 2018-05-06 02:05 qrfkickit 阅读(214) 评论(0) 推荐(0)
摘要:题意: 有4堆糖,每堆有n个,每次从某一堆的堆顶拿一个放进篮子里,如果篮子里有2个颜色相同的糖果,那么就可以放进袋子里。 当篮子里有5个糖果并且没有相同颜色的糖果时,这个时候就不能再拿了。 问最多可以拿多少对颜色相同的糖果。 思路: 记忆化搜索。 设dp[x][y][z][w]表示第一堆拿走了x个, 阅读全文
posted @ 2018-05-05 23:14 qrfkickit 阅读(151) 评论(0) 推荐(0)
摘要:题意: 给出一个数组,计算所有对于1 <= i < j <= n,ai + aj的进位次数的总和。 思路: 一开始其实是卡在了,i只能与i之后的数字相加 == 。 转换一下,i之前的数字一定会与i相加,i之后的数字也一定会与i相加,所以对于数组中的所有数字,两两之间一定会加一次。 有个很显然的结论, 阅读全文
posted @ 2018-05-05 18:33 qrfkickit 阅读(194) 评论(0) 推荐(0)
摘要:题意: 有n个仓库,m个人,一个仓库只能由一个人托管,每个人可以托管多个仓库。 每个人有一个能力值a,如果说他托管了k个仓库,那么这些仓库的安全值都是a/k。 雇佣一个人的花费也是a。 如果一个仓库没有被人托管,那么这个仓库的安全值为0。 总安全值定义为所有仓库安全值的最小值。 现在给出人和仓库的信 阅读全文
posted @ 2018-05-05 01:12 qrfkickit 阅读(176) 评论(0) 推荐(0)
摘要:题意: 有n个数,m个排序器,每个排序器可以把区间ai到bi的数从小到大排序。这m个排序器的输出就是m个排序之后的第n个数。 现在发现有些排序器是多余的。问至少需要多少个排序器可以使得输出不变。排序器的顺序不可以改变。 思路: 这题并没有说这些排序器可以覆盖1到n的所有区间。。。 假设可以,那么就是 阅读全文
posted @ 2018-05-04 22:21 qrfkickit 阅读(342) 评论(0) 推荐(0)
摘要:题意: 给出n和k,求出长度为n的不包含长度大于等于k的回文串的01字符串的个数。 思路: 如果一个字符串包含长度为k的回文串,那么它肯定包含长度为k-1的回文串,所以考虑第i位的时候,只要前缀中不包含长度为k的回文串,就只需要考虑这一位使其满足条件,所以就可以进行递推dp了。 设dp[i][j]为 阅读全文
posted @ 2018-05-04 00:43 qrfkickit 阅读(407) 评论(0) 推荐(0)
摘要:题意: 一个人要从如果干个地方拿货,每个地方的货物是有存在时间的,到了某个时间之后就会消失。 按照位置从左到右给出货物的位置以及生存时间,这个人选择一个最优的位置出发,问拿完货物的最少时间。 思路: 首先确定最优位置就是生存时间最少的货物的位置。 区间dp,dp[i][j][0]和dp[i][j][ 阅读全文
posted @ 2018-05-02 23:35 qrfkickit 阅读(265) 评论(0) 推荐(0)
摘要:题意: 有一个单行道,两个方向都有车在等待。给出每个车的方向以及到达的时间以及走完这段路所需要的时间。 为了防止车祸,同向两车通过任一点的时间间隔不得小于10s。 求最后一辆车离开时刻的最小值。 思路: 这题最坑的就是,车可以降低速度。provided it is not slowed down b 阅读全文
posted @ 2018-05-02 21:34 qrfkickit 阅读(445) 评论(0) 推荐(0)
摘要:题意: 有n个巫师站成一列,每个巫师有自己的血量。 一个人射箭攻击他们,每次造成若干点伤害,巫师按照给定的顺序承受伤害,如果伤害大了,那么死掉,伤害落到下一个巫师身上。 如果一轮攻击之后,所有的巫师都死了,那么他们会立即复活。 给出若干个询问,问每轮攻击之后还剩多少巫师活着。 思路: 前缀和加二分, 阅读全文
posted @ 2018-05-02 02:07 qrfkickit 阅读(367) 评论(0) 推荐(0)
摘要:题意: 一个游戏,有14个洞,每个洞中开始有若干个球或者没有球。 每一步的操作,是将一个洞中的所有球取出,再逆时针放一个球到它的后一个洞,后两个洞,后三个洞。。。。如果当前放的是最后一个,那么下一个又是第一个,即是可循环的。 一步操作之后的的分数是所有的有偶数个球的洞的球的个数的总和。 问一步操作之 阅读全文
posted @ 2018-05-02 02:01 qrfkickit 阅读(284) 评论(0) 推荐(0)
摘要:题意: 给出一个矩阵,找出这个矩阵中严格最长下降序列的长度,可以从上下左右四个方向下降。 思路: 记忆化搜索一遍即可。 代码: 阅读全文
posted @ 2018-05-01 21:54 qrfkickit 阅读(173) 评论(0) 推荐(0)