搜索
文章平均质量分 50
_kikyou-
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #576 (Div. 2) (C+D+E+F)
C. MP3 题意:给定一个数列,可以选择一个区间[l,r],设数列在区间内有k个不相同的元素,那么k必须满足 n*[log2k] <= 8*I,t=[log2k]表示满足k<=2 ^ t 最大的整数k。 问最多可以使数列多少个数在你选的这个区间内,输出剩余的元素个数。 分析: 这题题意首先有点难懂,抽象成上面这个样子之后就差不多了。 其次这题会卡精度,不能直接用log2()函数, 不过我们可以先打一个2的幂表,然后二分查找求出k 。 然后把数列离散化,记录每个值的个数,再按大小排序。 问题就等原创 2021-05-03 16:06:31 · 110 阅读 · 0 评论 -
Codeforces1472 G. Moving to the Capital(记忆化搜索)
给定n个点m条边的有向图, 点1为首都,设d(i)为点1到点i的最短路长度。 假设一开始你在点i,你下一步有3种走法: 1.从点i走到点j,同时满足有路且d(i)<d(j) 2.从点i走到点j,同时满足有路且d(i)>=d(j) 3.停止走动 第2种走法最多执行一次, 现在问对于每个点i,走若干次后到达的点s的d(s)最小是多少(即尽量靠近点1)。 数据范围:n,m<=2e5,保证点1可以到达任意城市. 分析:由于终点1是确定的,所以每个点的答案也是确定的,并且更靠近1的点的答案可以转移得原创 2021-03-25 23:41:55 · 116 阅读 · 0 评论 -
DNA sequence HDU - 1560 (IDA* 算法)
题目链接 题意:给定n个(1<=n<=8)由AGCT组成,长度不大于5的模式串,要求构造一个尽量短的字符串,满足任意一个模式串都是其子序列。(子序列是不一定连续的,连续的指子串) 思路:用IDA*算法 , 枚举需要构造的字符串的长度,然后用dfs+剪枝技巧判断这个长度是否满足。 #include<bits/stdc++.h> using namespace std; #define ll long long const int maxn = 1e5+7; //给定n个长度不超过5的字原创 2020-12-23 18:21:22 · 136 阅读 · 0 评论 -
Nightmare Ⅱ HDU - 3085 (双向bfs)
题目链接 题意:在一个迷宫有两个ghost,每秒可以走2格并且可以穿墙,boy每秒可以走3格,girl每秒1格,每次是ghost先移动然后人移动,问boy和girl能否在遇到ghost之前碰面。如果可以输出最小秒数,否则输出-1 思路:同时从M G开始bfs,bfs的轮数从1开始枚举,如果在某一轮他们相遇了,就说明搜到了。这个轮数就是最小的秒数 每秒 M搜三层 ,G搜一层 。 用曼哈顿距离判断某个点能否走。 注意这里每次bfs时,要取出当前层搜到的所有节点来搜下一层,代码中用count记录 #include原创 2021-01-07 21:04:55 · 110 阅读 · 0 评论