
训练赛
黑猫爱白猫
这个作者很懒,什么都没留下…
展开
-
LightOJ 1356 Prime Independence
题意:给出n个数,求最大集合,这个集合要求满足:任意两个元素a,b,当a % b == 0 && a / b == k,若k是质数,则a,b不能同时在这个集合内题解:最大独立子集问题,建一个二分图。当a的质因子等于b的质因子数+1的时候,即a,b的质因子数的奇偶性不同时,那么a,b就能建立关系。建好图后,最大独立集 = 点数 - 最大匹配。由于这题的数据两有点大,匈牙利算法应该会TLE,所以要原创 2018-01-02 20:03:38 · 265 阅读 · 0 评论 -
hdu 4511 小明系列故事——女友的考验
题意:小明要和女友去约会,一共有n个点,小明在1号点,女友在n号点,小明想要从最短路径到女友的位置,但是奇葩的女友给了小明限制条件:1、小明只能往比当前点编号大的点走,2、女友给出了k条路径,小明走的时候不能过这些路径。题解:AC自动机+floyd算法,ac自动机来完成状态的转移,在跑floyd的时候要注意只能往编号大的点走AC自动机照着kuangbin巨巨模板打的,模板提就是爽,然后WA原创 2018-01-02 23:22:51 · 300 阅读 · 0 评论 -
SPOJ - Horace and his primes
题意:一个数n1,把它质因数分解(相同的因数算一个),质因数的和为n2,以此循环,直到分解出的质因数的和为质数,求出集合n的长度。给出a,b,k三个数,求区间a,b中有多少数按照上述的分解得到集合的长度为k。题解:无脑打表啊!然后就TLE了,TLE到怀疑人生。但并不是打表超时了,而是搜索的时候,所以不能暴力搜索,要用二分法,lower_bound()和upper_bound()函数的运用对原创 2018-01-01 16:51:30 · 268 阅读 · 0 评论 -
UVA 10462 - Is There A Second Way Left?
题意:求出图的最小生成树和次小生成树,存在三种情况,不存在最小生成树,存在最小生成树但不存在次小生成树,存在次小生成树,对应输出三种情况题解:kruskal先求最小生成树,依次记录生成树的加入的边,再跑一次kruskal,和上一次不同的是,这次要跳过上次已经记录的边,然后看能否生成树就好了代码#include#include#define M 210#define INF 0x3原创 2017-12-30 16:52:19 · 222 阅读 · 0 评论 -
hdu 4712 Hamming Distance
题意:给出n个字符串,计算出每两个字符串的最小Hamming Distance。Hamming Distance是a xor b题解:水题啊,本来暴力就能过,但是字符串的数据量有1e5,两重for肯定超时,所以拼人品的时候又到了,随机函数!字符串的范围是0 - 9 或者A - F,所以直接以十六进制输入就好了,十六进制输入用%x。随机的时候,随机次数是1e6,1e5的时候WA,1e7是TLE原创 2018-01-03 12:11:47 · 369 阅读 · 0 评论 -
UVA 1121 - Subsequence
这题和poj 3061一样,就是输入结束条件不一样,poj的用尺取法过的,这题就写个二分吧题意看下面链接的博客吧尺取法链接:http://blog.youkuaiyun.com/zztrhxnss/article/details/78055742二分法:#include#define M 100005int a[M];int pre[M];int n, s;bool judge(原创 2018-01-03 17:00:49 · 285 阅读 · 0 评论 -
hdu 5547 Sudoku
题意:4*4的矩阵,完成数独题解:小数据量,dfs+回溯,judge的时候自己画下图看下坐标就好了代码#include#includechar a[100][100];bool judge(int x, int y){ for(int i = 0; i < 4; i++) { if(a[x][i] == a[x][y] && i != y)原创 2018-02-01 00:34:37 · 216 阅读 · 0 评论 -
LightOJ 1017 Brush (III)
题意:有一把刷子宽度为w,只能沿x轴方向刷,现给出n个点,问这把刷子刷k次,最多能刷到几个点题解:很简单的一道dp,因为刷子只能沿x轴刷,所以只要看纵坐标就好了,这样输入的时候就不用结构体,直接单把纵坐标存在一个数组里就可以了。先把纵坐标排序,然后用dis数组记录下刷子的一段从每个点开始最多能刷到多少个点,接下来问题就简单了状态转移方程:dp[i][j] = max(dp[i - 1][j原创 2018-02-01 00:50:00 · 223 阅读 · 0 评论