05 2021 档案
摘要:给定一个集合,枚举所有该集合的子集,包括空集在内总共2^n个子集。 求集合的子集的方法有三种:1.增量构造法。2.位向量法。3.二进制法(推荐)。 二进制法求集合的子集: 基础知识:1.常见的集合运算都可以位运算符完成,常见的位运算符是与&,或|,非!,异或^(当且仅当二者不同时为真),他们和对应的
阅读全文
摘要:枚举排列的核心思想:运用回溯法可以轻松解决排列问题,也可以应用到c++的STL中的next_permutation()函数,对于不同场景,不同的方法各有各的好处。 next_permutation(下一个排列法)代码展示: #include<bits/stdc++.h> using namespac
阅读全文
摘要:内容提要:简单枚举包括了枚举整数,枚举连续子序列,枚举分数。 枚举整数:1.核心思想:有些题目没必要枚举所有的变量,而是枚举其一变量,后通过等式得出另一个变量,然后在判断另一个量是否在范围内即可。 2.典型例题:洛谷 P uva 725 Division 3.AC代码展示: #include<bit
阅读全文
摘要:某些题目输入数据是采用递归(先序)的方式来输入数据,这时只能用递归的方式来建立树。 例如:1.洛谷p uva 839 天平 2.洛谷P uva 699 下落的树叶 3.洛谷p uva 297 四分树。 洛谷P uva 839 天平 AC代码展示: #include<bits/stdc++.h> us
阅读全文
摘要:相关的概念:1.有向图无环图(Directed acyclic graph 简称DAG):对于一个有向图,任选一个顶点,该顶点经过若干条边都无法到达原来顶点,则该图为DAG,反之则不为DAG。 2.拓扑序列:设G=(V,E)是一个具有n个顶点的有向图,集合V的顶点序列v1,v2,v3.....vn称
阅读全文
摘要:题目链接:https://vjudge.net/problem/UVA-136 主要思路:1.正常思路:用一个for循环挨个判断i值是否是丑数并记录,当到达1500个丑数时就输出该数字.此思路容易想到,但难以实现.我们可以反过来思考. 2.优化思路:已知1是丑数,我们将1放入一个优先队列中,每次取出
阅读全文
摘要:题目的链接:https://vjudge.net/problem/UVA-540 主要思路:这是一道队列套队列的题目,第一个队列为各个队伍的顺序,第二个队列为各个队伍的内部成员的顺序.接下来就是用链表(list)或者队列(queue)来模拟这两个队列的相关操作了.链表比队列更灵活 #include<
阅读全文
摘要:题目链接:https://vjudge.net/problem/UVA-156 主要思想:对每个单词进行标准化,标准化:先将每个单词存下来,然后对单词进行排序,排完序后与原来字符串一起存入到map中,之后在开另一个map来记录出现次数.遍历map时只有出现次数为1的才可以被打印出 来. AC代码展示
阅读全文
摘要:题目链接:https://vjudge.net/problem/UVA-10815 解题思路:题意是说寻找不重复的单词,这时就可以想到用stl中的集合,但是写代码时还是要注意一点细节. AC代码展示: #include<bits/stdc++.h> using namespace std; set<
阅读全文
摘要:题目链接:https://vjudge.net/problem/UVA-10474 解题的主要思路:先用vector存放数据,然后用sort来排序,再用lower_bound()(二分查找)查找数据,思想很简单,但仍有一些细节需要处理. AC代码展示: #include<bits/stdc++.h>
阅读全文
摘要:题目链接:https://www.luogu.com.cn/problem/P1331 解题的主要思路;1.如何判断是否是Bad placement的情况,这里是先观察到如果是Bad placement必然会有如下结构,其实也蛮好想的,如果是一个整体的船则必然是方形,否则就是多边形,这必然带有如下结
阅读全文
摘要:题目链接:https://www.luogu.com.cn/problem/P2802 解题主要思路:1.通过理解题意和观察到题目的变量范围:1<=n,m<=9,便可推断出本题大致要用DFS。 AC代码展示: ——note:题意简简单单,但实际写起来注意事项还蛮多的。 1 #include<bits
阅读全文

浙公网安备 33010602011771号