摘要:
原题链接:https://www.luogu.com.cn/problem/P1113 题意解读:要计算所有任务完成的最早时间,其实取决于最晚完成的那一个任务,计算每一个任务的完成时间,找最大值即可。 解题思路: 下面介绍两种做法:递推法、拓扑排序法 1、递推法 由于杂务k (k>1) 的准备工作只 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P3916 题意解读:寻找每个点所能到达的最大的点。 解题思路: 直观上,可以依次从每个点开始DFS搜索,记录经过的最大点,复杂度是O(n^2)级别,会超时。 可以换一种角度,既然要找每个点可以达到的最大值,那么可以反向建图 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P5318 题意解读:图的建立、DFS、BFS模版题。 解题思路: 本题主要考察建图、图的DFS、BFS遍历。 建图方式:领接表vector<int> g[N]; 需要注意的是,在DFS、BFS搜索领接点时,需要先将领接点编 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P2814 题意解读:已知多组父子关系,找某个人最早的祖先,并查集的应用。 解题思路: 由于存在真正的父子关系,所以在并查集合并的时候,要把p[x] = y中x设置为子,y设置为父,其余都是并查集的常规操作。 由于是计算姓名 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P3879 题意解读:此题本质上是计算倒排索引,所谓倒排索引,即不是通过文章来找单词,而是通过单词来找文章。 解题思路: 要建立单词和文章之间的关系,一个单词对应多篇文章,且要按照文章编号排序,编号还要去重,可以使用如下数据 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P4305 题意解读:对数据进行去重,借助于set、map都可以解决 解题思路: 由于数据范围比较大,不能直接用数组hash,可以借助于set、map,这里采用map 唯一要注意的问题:本题输入输出数据量很大,需要用scan 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P1955 题意解读:要判断约束条件是否可以同时满足,主要是要判断不相等的情况。 解题思路: 对于相等的条件,直接进行集合合并即可; 对于不相等的条件,判断两者是否属于同一个集合,如果形成矛盾,则条件不能成立。 由于i,j的 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P1892 题意解读:此题与关押罪犯问题非常像,本质上就是要合并所有的朋友。 解题思路: 首先,初始化并查集; 对于每一对人的关系,如果是朋友,直接进行合并; 如果是敌人,先查看双方之前是否有记录其他敌人,如果有,则将一方与 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P1621 题意解读:a~b之间的数,把有大于等于p的公共质因数的数进行合并作为一个集合,求一共有多少个集合。 解题思路: 要进行集合合并、统计集合数,可以使用并查集,有两种做法: 1、暴力法 80%的数据在1000范围内, 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P1525 题意解读:有很多罪犯,要关到两座监狱,有一些罪犯之间有仇,并且可以量化出仇恨值,如果关在一起就会冲突,造成的影响就是仇恨值,要使得造成的影响最小,如果可以完全不起冲突,输出0。 解题思路: 首先,要让冲突影响最小 阅读全文