codeup
cgsdfc
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2021-02-18
codeup 问题 C: 最短路径 边权是二的整数幂,很大的数,int保存不可能,类似大整数保存下来,模拟加法操作和小于操作,因为是二进制数,操作比一般的大整数要简单,只是用的是稀疏表示,要注意有序。其实不用稀疏表示,也是可以的,因为总共就500个比特位,不多不少,开一个bool[500]的数组,表示一位是否存在,这样加法操作就是O(1)了。 开始的时候想错了,以为直接用指数代替幂进行Dijkstra就行了,最后记录路径再把真正的距离算出来。但是太天真了,错误的具体论证可以看注释,简单来说就是一些在以2的幂原创 2021-02-18 11:40:55 · 124 阅读 · 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 105 bool G[MAXN][MAXN]; int In[MAXN]; bool TopoSort() { qu原创 2021-02-18 10:46:06 · 116 阅读 · 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 · 136 阅读 · 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 · 135 阅读 · 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 · 138 阅读 · 0 评论
分享