摘要:
先从阿里机器学习算法岗网络笔试题说起:甲乙两人进行一个猜硬币的游戏。每个人有一个目标序列,由裁判来抛硬币。谁先得到裁判抛出的一串连续结果,谁赢。 甲的目标序列是正正正,乙的目标序列是反正正。那么如果裁判抛出了正正反正反正正....抛到第7个结果时乙胜,因为最后三个序列是“反正正”,而前面不存在甲的“ 阅读全文
摘要:
题意: Description 终于放寒假了,小明要和女朋友一起去看电影。这天,女朋友想给小明一个考验,在小明正准备出发的时候,女朋友告诉他,她在电影院等他,小明过来的路线必须满足给定的规则: 1、假设小明在的位置是1号点,女朋友在的位置是n号点,则他们之间有n-2个点可以走,小明每次走的时候只能走 阅读全文
摘要:
题意:给出n个资源,m个病毒,将资源串拼接成一个串,必须包含所有的资源串,可以重叠,但是不能包含病毒,问最小的长度为多少 题解:所有串建AC自动机。对以资源串结尾的结点跑bfs,求出到其他资源串结尾的最小距离。当前结点的fail结点不能入队列,因为当前结点读下一个字符可能会遇到禁止字符串,而fail 阅读全文
摘要:
dp[i][j]表示走了i步走到j结点的概率。初始值dp[0][0] = 1.当走到的结点不是单词尾结点时,才能走过去。 !end[i]&&last[i] == root时,该结点才可行。 丢掉last数组, end[i] |= end[ fail[i] ]即可。 表示i节点是某些禁止字符串的后缀。 阅读全文
摘要:
题意:n个空房间。两种操作:1.选择最小的连续D个房间入住,并输出这连续D个房间的最小标号。2.将某个区间内的房间全部退房。 后记:这也是线段树一经典题。不难。 主要是通过这种写法可以O(logn)的时间内完成离散化查询。不过平时一般都是二分+树状数组O(lognlogn)完成离散化查询。 阅读全文
摘要:
题目链接 题意:一个只含e, a, s, y的字符串,问[l, r]内有多少个easy序列? 题解:倍增。 阅读全文
摘要:
HDU5925 题意:给出一个R*C(R, C <= 1e9)的地图,地图上有n(n <= 200)个点的障碍,其余为空地。问有多少个四连通图以及各个四连通图的大小。 题解:离散化。将x, y坐标分别离散化。对于xi点再插入xi-1, xi+1两个点。 则离散化后的权值大小为xi-xi-1.对y作同 阅读全文
摘要:
DP+bitset HDU5716 dp[i][j] = dp[i-1][j-1] && (s[i] in set[j]); 第二维压bitset 1 #include <bits/stdc++.h> 2 #define X first 3 #define Y second 4 #define mp 阅读全文
摘要:
题意:一条直线上有n个炸弹,给出每个炸弹的爆炸半径,可以引爆另一个炸弹爆炸。问:每个炸弹爆炸后,最多有几个炸弹一起爆炸? 迭代,用线段树更新。 1 #include <cstdio> 2 #include <algorithm> 3 #include <iostream> 4 #define ll 阅读全文
摘要:
题目链接 题意:n个人,每个人有一个能力值。给出m组关系A, B, 表示A的能力值大于B的能力值。 问:m组关系中是否有自相矛盾的?若不矛盾,问:第1个人在所有人的能力值中排名第几?有多少人的能力值的排名可以确定? 题解:拓扑排序。存两个图,原图与反图。 若原图可达该点数+反图可达该点数-1 = n 阅读全文