CCF
RemのHero
github网址:https://github.com/RemHero
Even if hurt, but also to the full, gentle run.
展开
-
CCF 201612-4
CCF 201612-4 此题算法与“石子合并问题”一样! 为什么能用这个算法那?有人可能会问,这个方法与哈夫曼编码有什么不一样吗? 答:题目要求字典序编码(不懂什么意思的好好看看题)默认哈夫曼编码过程中,子节点的合并是无序的,即,字典序大的节点可能直接与字典序小的节点合并了。 如果用dp(就是石子合并算法),其执行顺序是顺序(或者说是两两合并)的合并,就不会存在上述情况。 以下为个人想法,可不看: 将算法图形化,就发现实际上是一棵树。该算法可以拓展到任何可以将模型构建成这类树的问题上。 #include原创 2021-09-09 21:56:00 · 74 阅读 · 0 评论 -
CCF 201609-3
CCF 201609-3 #include <cmath> #include <iostream> #include <queue> using namespace std; int n; struct Fellow{ int health,posi,attack; }; struct Leader{ int health,attack; }L[2]; vector< vector<Fellow> > f; inline voi原创 2021-08-26 18:23:15 · 68 阅读 · 0 评论 -
CCF 201609-4
CCF 201609-4 迪杰斯特拉算法微调,重点看一下核心算法怎么写的 #include <cstdio> #include <cstring> #include <cmath> #include <iostream> #include <algorithm> #include <queue> using namespace std; const int M=100105; const int oo=2147483647; int n原创 2021-08-23 21:55:45 · 75 阅读 · 0 评论 -
CCF 201604-3
CCF 201604-3 参考:详细讲解地址 #include <cstdio> #include <cstring> #include <cmath> #include <iostream> #include <algorithm> #include <queue> #include <sstream> #include <deque> #define MAXN 330 using namespace std原创 2021-08-20 16:26:45 · 60 阅读 · 0 评论 -
CCF 201604-4
CCF 201604-4 当做一个三维处理(x,y,t)。即位置x,位置y,时间t。 然后BFS处理,找到最短路径。 #include <cstdio> #include <cstring> #include <cmath> #include <iostream> #include <algorithm> #include <queue> #define MAXN 330 using namespace std; int n,m,t;原创 2021-08-20 14:15:40 · 60 阅读 · 0 评论 -
CCF 201604-5(10分代码)
CCF 201604-5(10分代码) 代码量大,得分不高,没有什么参考价值。 整体思路是,最小生成树,最后去除不必要点。 #include<algorithm> #include <vector> #include <iostream> using namespace std; #define INF 3000 long long ans=0; struct Edge //边的结构体 { int a,b,cost; //(a,b)边的权cost }edge原创 2021-08-20 11:19:33 · 118 阅读 · 0 评论 -
CCF 201512-4
CCF 201512-4 #include <algorithm> #include <iostream> #include <queue> #include <set> #include <stack> using namespace std; bool vis[10010][10010]={false}; int D[10010]={0}; struct Node{ bool flag=false; int num,l;原创 2021-08-18 22:26:32 · 62 阅读 · 0 评论 -
CCF 201509-3
201509-3 思路简单,就是字符替换。如果没得满分,就是你代码的一些细节有问题。 #include <iostream> #include <queue> #include <stack> #include <algorithm> #include <math.h> #include <map> using namespace std; vector<string> val; map<string,string&原创 2021-08-18 11:08:43 · 70 阅读 · 0 评论 -
CCF 201509-4
CCF 201509-4 使用Tarjan算法,详细文章参考 https://blog.csdn.net/tigerisland45/article/details/54865933 #include <iostream> #include <queue> #include <stack> #include <algorithm> #include <math.h> using namespace std; stack<int> S;原创 2021-08-17 23:11:21 · 73 阅读 · 0 评论 -
CCF 201412-2
CCF 201412-2 主要是设置了一个flag来判断其输出方向,OK简单,初学者可以琢磨一下逻辑(实在不会,可以私信) #include<stdio.h> #include <iostream> #include <string> #include <map> #include <algorithm> using namespace std; int m[600][600]; int main(){ int n; cin &原创 2021-07-01 21:08:54 · 58 阅读 · 0 评论 -
CCF 201412-4
CCF 201412-4 思路是Kruskal算法,简单易懂,不好意思没写注释。 #include<stdio.h> #include <iostream> #include <string> #include <map> #include <algorithm> using namespace std; int path_num,node_num; int fa[1010]; struct Path{ int from,des;原创 2021-07-01 20:28:31 · 65 阅读 · 1 评论 -
CCF 201403-3
从前向后一个个字符匹配,没有技巧,注意指到位置就好 (无注释,万分抱歉) #include<stdio.h> #include <queue> #include <vector> #include <set> #include <iostream> #include <map> #include <memory.h> using namespace std; /* albw:x 4 ls -w 10 -x -w 15原创 2021-06-09 13:06:28 · 64 阅读 · 0 评论 -
CCF 201403-4 无线网络
复杂度分析:因为节点数目少,所以暴力求解。 思路: 1、构建树。 2、BFS搜索。 需要注意使用vector进行push_back()时,最好传入指针,否则会超时! (没时间写注释,请谅解) #include<stdio.h> #include <queue> #include <vector> #include <set> #include <iostream> #include <cmath> using namespace st原创 2021-06-09 10:32:56 · 78 阅读 · 0 评论 -
CCF 201312-5
最近很忙,虽然我知道只给代码,不写注释很恶心,但是真的没时间写。。。不好意思呀 给点提示,结构体中的state由三个值: 1表示可以通过S访问到 2表示可以访问到T 3表示两者都可以访问到,这样设计是因为3=2&1 #include<stdio.h> #include <map> #include <vector> #include <string> #include <iostream> using namespace std; int原创 2021-06-08 00:32:57 · 97 阅读 · 1 评论