DFS
tzteyang
这个作者很懒,什么都没留下…
展开
-
BAPC 2020 Preliminaries I.In-place Sorting (dfs爆搜)
题意:给定你一个长度为n的序列,然后序列有n个数字组成,对于每个数字你可以进行的操作是,翻转其中的6和9,即6翻转一次变成9然后9翻转一次变为6,问经过若干次操作后,是否可以使得这个序列变的不严格递增。思路:把每一个数字看做一个字符串,然后比较时先通过二者长度比较,只有二者在长度相等时,我们再一位位的比较,又因为只能翻转6和9,以假如当前这个数的对应数位小于上一个数,如果它是6,我们就一定翻,不是6那就可以退出一定是不可能排好序的。再就是相等的情况,两个数位对应相等,此时假如这一位是6的话,我们是需原创 2021-04-13 14:14:27 · 120 阅读 · 0 评论 -
2020 ICPC Asia Taipei-Hsinchu Regional C - Pyramid (思维)
题意:一个倒三角金字塔的每个节点上都有一个开关,然后开关初始状态都是向左打开,每次当小球经过一个节点时,该节点的开关状态就会改变,从左变为右,或者从右变为左。然后问你第K次放置的小球会从哪个出口离开,对角线线上的点就是出口的位置。思路:思维的点就是,看上一层和下一层之间的节点状态变化关系,因为只有左右两种方向,那么对于某个节点,假如一个小球经过他x次,那么他左边的顶点就会经过(x+1)/2次,右边就是x/2次,这样我们就可以从开始的节点往下递推一下,得到整张图的某个节点经过的次数,它的第k次的节点状态也.原创 2021-01-27 10:42:54 · 635 阅读 · 0 评论 -
2020 ICPC Asia Taipei-Hsinchu Regional B - Make Numbers (乱搞)
题意:给定你四个数,问你用乘,加,减,还有连接,四种方法可以组合成多少种不同的答案,注意连接必须和其他的操作混在一起使用。思路:用next_permutation生成全排列后,用dfs用枚举他们的组合形式,把加减作为最后的方法。参考别人的代码实现的,学习一下大佬的写法。代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;const int MAXN = 1e4 + 7;int ans,vis[.原创 2021-01-27 10:33:25 · 371 阅读 · 0 评论 -
HDU5952 ICPC2016沈阳 E-Counting Cliques (爆搜)
题意:给定你个图,然后让求出它的大小为s的完全子图有多少个?思路:给出的n和m都十分的小,直接爆搜,记录一下当前选择的节点有哪些,然后没碰到一个新节点,直接判断即可。就是注意一下如果我们连边的时候连的是双向边,会导致重复的搜索和统计,例如(2,1)和(1,2)他会认为是不一样的点对,但实际上是一样的。所以我们加边的时候加单向边即可。代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;const i.原创 2020-11-24 19:32:57 · 104 阅读 · 0 评论