搜索
Fushicho_XF
对知识无比的向往,渴望打开新世界的大门~
展开
-
Codeforces Round #498 (Div. 3) F. Xor-Paths (双端DFS+思维)
题目链接题意:给出一个n*m的矩阵,矩阵中每个位置都有一个值,问你从左上角(1,1)这个点的值异或到右下角(n,m)这个点的值为K的情况数量有多少(每次只能向下或向右走一格);题解:对于这个问题,最大数据20*20的矩阵中,从左上角到异或到右下角能出现的情况数目太多,如果暴力DFS或者BFS都可能会爆时间(题目没有要求取模说明答案数量可观,起码可以用longlong存的下),那么需要解决的...原创 2018-07-17 16:23:48 · 354 阅读 · 0 评论 -
CodeForces ABBYY Cup 3.0 - Finals C The Great Julya Calendar (DFS+DP+思维)
题目链接题意:给出一个数n,每次操作可以减去这个数位数上的某一位,问你最小多少次操作可以将n减为0.分析:对于C1的弱数据直接O(1)实现即可(dp预处理出所有结果),C2和C3我是直接做C3的,对于n为1e18的情况,我们预处理肯定是不可能的,当是我们打表也可以发现在递减的过程中重复数据是很多的,因此可以使用map进行记忆化存储中间某些过程答案,使重复的操作只执行一次,之后O(logn)...原创 2018-06-03 15:53:27 · 756 阅读 · 3 评论 -
CodeForces 986C AND Graph (逻辑运算+思维+DFS)
题目链接题意:第一行给出一个n和m,随后一行是m个数据,数据范围是0~(1<<n)(即2^n),现在假定这些数都是一个点,当两个数进行逻辑&运算=0时,他们之间存在连边,问这m个数组成的图存在几个联通集合?分析:首先我们要分析一下,对于一个数X可以连接的点有什么,因为是进行逻辑&运算,因此对于一个数在(1<<n)的范围内能连边的点的值即为:将X在(1...原创 2018-06-01 22:26:47 · 508 阅读 · 0 评论 -
【牛客网】埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛 B.合约数 (树+DFS+素数筛)
题目链接(树+DFS+素数筛)题意:给定一棵n个节点的树,并且根节点的编号为p,第i个节点有属性值vali, 定义F(i): 在以i为根的子树中,属性值是vali的合约数的节点个数。y 是 x 的合约数是指 y 是合数且 y 是 x 的约数。小埃想知道对1e9+7取模后的结果.(注意:合数是指非质数的数,约数即是因子)题解:首先如果正常遍历每个结点的子树可以得到对应的f[i]值,而对a...原创 2018-05-05 18:16:11 · 231 阅读 · 0 评论 -
A星算法解析 (搜索)
A*算法解析: 定义: 普通的搜索算法为盲目搜索 需要一种较为智能的方法来减少搜索的盲目性 A*算法是基于bfs算法改良的算法 引入估价函数对当前的搜索的形式进行估价 将队列改为优先队列,将估价得到的【最接近终点的点】优先搜索估价函数的设计:F(s)=H(s)+G(s)G(s...原创 2018-08-20 16:45:47 · 2381 阅读 · 0 评论 -
HDU -1560 DNA (迭代加深搜索)
题目链接题意:给出t组数据,n条DNA子串,要求求最小DNA母串的长度(如下图)题解:由于直接bfs情况太多,会爆空间,直接dfs会爆栈,故采用折中操作.代码如下:#include<iostream>#include<cstring>#include<string>#include<cstdio>#include<...原创 2018-08-21 16:47:28 · 307 阅读 · 0 评论