摘要: 题意:给你两个串,S2是S1 的一个子串(可以不连续).给你一个s1字符下标的一个排列,按照这个数列删数,问你最多删到第几个时S2仍是S1 的一个子串。 题解:二分删掉的数。判定函数很好写和单调性也可以维持。 不知道为啥答案要-1.。貌似l最终指向删掉以后不再保持性质的第一个数。 阅读全文
posted @ 2018-03-18 23:14 SuuTTT 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 题意:n个数1~n(n<=1e18)依次放在一个数组中,第i个数位置为2i-1,其它地方是空的。现在重复以下操作:将最右边的数放到离其左边最近的空的位置,直到所有数移到前一半的位置中。有q<=200000个询问,问你第i个数最终再哪个位置。 题解:这题被某人秒了,所以估计核心代码量不超过2行,于是X 阅读全文
posted @ 2018-03-18 00:11 SuuTTT 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 题意:给你n行长度为m的01串(n<15,m<100) 。每次只能走一步,要将所有的1变为零,问最少的步数,注意从左下角开始,每次要将一层清完才能走到上一层,每次只有在第一列或者最后一列才能往上走一层,否则只能左右移动。 题解:由于清完当前层才能继续上一层,所以必然存在一个递推关系。先递推预处理,然 阅读全文
posted @ 2018-03-17 22:26 SuuTTT 阅读(196) 评论(0) 推荐(0) 编辑
摘要: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3 题意(难以描述):A,B两个人从1~100选数乘起来比谁的大(不能选重复的或者对方选的)。数小的人如果发现数大的人在撒谎,则他可以获胜。(当然都没撒谎大数赢,都撒谎了也是大数赢2 阅读全文
posted @ 2018-03-16 20:46 SuuTTT 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 题意,10*10的地图,有若干块草地“#”,草地可以点燃,并在一秒后点燃相邻的草地。有墙壁‘·‘阻挡。初始可以从任意两点点火。问烧完最短的时间。若烧不完输出-1. 题解:由于100的数据量,直接暴力。枚举两个起点,推入队列,然后bfs。烧完就返回深度,更新一个min值。 坑:(帮同学照bug) ac 阅读全文
posted @ 2018-03-16 13:37 SuuTTT 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 题意:n个人排队上台,每个人有一屌丝值D,他的不满意值=D*(k-1)(k为他前面的总人数)。 求整个队列不满意值之和的最小值。你只有一个操作,就是把队首的人塞进小黑屋,也就是压入栈中,后面的人就被提前了。 题解:首先考虑压入栈的性质:对于第1个人,他可以任意第几位上台。若他是第k个上台,则2~k必 阅读全文
posted @ 2018-03-16 13:27 SuuTTT 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 题意:1~N个龙珠,放在1~N个城市,有两种操作:T A B 将A所再城市的所有球转移到B所在的城市。 Q X 询问X所在的城市pls,该城市中龙珠数量nm,以及龙珠转移次数trs 题解:并查集模板题,顺带更新一些数据。pls不必更新,因为X所在的集和的根即为城市编号。nm只需在union时将A集 阅读全文
posted @ 2018-03-15 20:56 SuuTTT 阅读(135) 评论(0) 推荐(0) 编辑
摘要: https://vjudge.net/problem/HDU-5818 题意:给你两个栈AB,有常规push,pop操作,以及一个merge操作,merge A B 即将A、B的元素按照入栈顺序全部出栈并推入栈A(merge B A 即反) 题解:用一个C来辅助,每一次merge将AB中的数据依次压 阅读全文
posted @ 2018-03-15 19:35 SuuTTT 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一个有向图,满足去掉方向是完全图,将其拆成PQ两个图(没有公共边),问你两图是否分别满足对于任意3个点a,b,c 若有一条边从a到b且有一条边从b到c ,则同样有一条边从a到c。 题解:观察,发现题目等价于对PQ分别bfs。如果某点的深度大于等于2就判错。用vis储存深度,注意对vis数组 阅读全文
posted @ 2018-03-15 16:34 SuuTTT 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 题意:给你2e5个矮人,编号1~N。有2e5个操作:操作1 读取x,y,交换编号为x,y的矮人。操作2 读取AB 判断编号为A,A+1····B的矮人是否连续(不必有序)。 题解:首先用pos[i]保存矮人i的位置,交换就用swap(pos[l],pos[r])来模拟。然后发现条件等价于(pos[l 阅读全文
posted @ 2018-03-15 12:53 SuuTTT 阅读(213) 评论(0) 推荐(0) 编辑