![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
codeup
cgsdfc
这个作者很懒,什么都没留下…
展开
-
2021-02-18
codeup 问题 C: 最短路径边权是二的整数幂,很大的数,int保存不可能,类似大整数保存下来,模拟加法操作和小于操作,因为是二进制数,操作比一般的大整数要简单,只是用的是稀疏表示,要注意有序。其实不用稀疏表示,也是可以的,因为总共就500个比特位,不多不少,开一个bool[500]的数组,表示一位是否存在,这样加法操作就是O(1)了。开始的时候想错了,以为直接用指数代替幂进行Dijkstra就行了,最后记录路径再把真正的距离算出来。但是太天真了,错误的具体论证可以看注释,简单来说就是一些在以2的幂原创 2021-02-18 11:40:55 · 83 阅读 · 0 评论 -
2021-02-18
codeup 问题 C Legal or Not#include <cstdio>#include <queue>#include <algorithm>using namespace std;/*有向图判环。两种方法:1. 拓扑排序判环。2. DFS判环。本质上也是拓扑排序。 */int N, M;#define MAXN 105bool G[MAXN][MAXN];int In[MAXN];bool TopoSort() { qu原创 2021-02-18 10:46:06 · 61 阅读 · 0 评论 -
2021-02-18
codeup 问题 D 【宽搜入门】魔板超时/超内存了很久,最后用散列解决了超时,用占空间最小的散列bool数组解决了超内存。应该有比单纯BFS更高效的算法吧。我这个就是BFS暴力搜索。#include <cstdio>#include <queue>#include <cstring>#include <cassert>#include <string> // op是逆序产生的。 using namespace std;cons原创 2021-02-18 09:35:45 · 84 阅读 · 0 评论 -
2021-02-09
codeup 问题 D More is better#include <cstdio>#include <cstring>#include <cassert>/* run this program using the console pauser or add your own getch, system("pause") or input loop *//*并查集求最大联通分量的节点数。 房子里的人必须互相为朋友,说明是一个联通图,题目要求人数尽量多原创 2021-02-09 16:33:21 · 79 阅读 · 0 评论 -
2021-02-09
codeup 问题 B 序列合并#include <cstdio>#include <cmath>#include <algorithm>#include <cassert>using namespace std;#define MAXN (100000+5)int N;struct Heap { int heap[MAXN]; int N; /* 大顶堆。 */ void DownAdjust(int low, int hi)原创 2021-02-09 16:23:06 · 90 阅读 · 0 评论