- 博客(19)
- 收藏
- 关注
原创 字符串折叠
字符串折叠题解见luogudp问题要考虑所有完整的情况1、将问题分治2、分治后的合并处理(可能会与分无关,就是当做整体处理)3、状态转换方程想不通时,从最简单的样例出发一定要想清楚,什么样的分治方法才是正确的(如何 合理的分解问题为子问题)#include<cstdio>#include<iostream>#include<string>#include<cmath>#include<algorithm>#include&
2021-09-10 16:49:10
151
原创 火星A+B
火星A+B不要转换为10进制再加,直接按位加,然后进位即可#include <cmath>#include <iostream>#include <queue>#include <sstream>#define LL long longusing namespace std;const int number[]={2 ,3, 5 , 7 , 11 , 13 , 17 , 19 ,
2021-09-10 13:22:06
92
原创 Tree Recovery poj
Tree Recovery#include <cmath>#include <iostream>#include <queue>#define LL long longusing namespace std;string s1,s2;int p=1;//二叉树节点数据结构struct Node{ char c; Node* L; Node* R;};//此函数功能为:对于对于中序遍历[l,r]范围,构建以c为根节点的树,并返
2021-09-10 11:02:52
126
原创 CCF 201612-4
CCF 201612-4此题算法与“石子合并问题”一样!为什么能用这个算法那?有人可能会问,这个方法与哈夫曼编码有什么不一样吗?答:题目要求字典序编码(不懂什么意思的好好看看题)默认哈夫曼编码过程中,子节点的合并是无序的,即,字典序大的节点可能直接与字典序小的节点合并了。如果用dp(就是石子合并算法),其执行顺序是顺序(或者说是两两合并)的合并,就不会存在上述情况。以下为个人想法,可不看:将算法图形化,就发现实际上是一棵树。该算法可以拓展到任何可以将模型构建成这类树的问题上。#include
2021-09-09 21:56:00
87
原创 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
83
原创 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
88
原创 CCF 201604-3
CCF 201604-3参考:详细讲解地址#include <cstdio>#include <cstring>#include <cmath>#include <iostream>#include <algorithm>#include <queue>#include <sstream>#include <deque>#define MAXN 330using namespace std
2021-08-20 16:26:45
70
原创 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 330using namespace std;int n,m,t;
2021-08-20 14:15:40
71
原创 CCF 201604-5(10分代码)
CCF 201604-5(10分代码)代码量大,得分不高,没有什么参考价值。整体思路是,最小生成树,最后去除不必要点。#include<algorithm>#include <vector>#include <iostream>using namespace std;#define INF 3000long long ans=0;struct Edge //边的结构体{ int a,b,cost; //(a,b)边的权cost}edge
2021-08-20 11:19:33
130
原创 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
74
原创 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
86
原创 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
86
原创 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
71
原创 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
76
1
原创 CCF 201403-3
从前向后一个个字符匹配,没有技巧,注意指到位置就好(无注释,万分抱歉)#include<stdio.h>#include <queue>#include <vector>#include <set>#include <iostream>#include <map>#include <memory.h>using namespace std;/*albw:x4ls -w 10 -x -w 15
2021-06-09 13:06:28
76
原创 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
98
原创 CCF 201312-5
最近很忙,虽然我知道只给代码,不写注释很恶心,但是真的没时间写。。。不好意思呀给点提示,结构体中的state由三个值:1表示可以通过S访问到2表示可以访问到T3表示两者都可以访问到,这样设计是因为3=2&1#include<stdio.h>#include <map>#include <vector>#include <string>#include <iostream>using namespace std;int
2021-06-08 00:32:57
108
1
原创 数圈
数圈以1为中心,用2,3,4, …, n, …, n*n的数字围绕着中心输出数圈, 如若n=4,则7 8 9 106 1 2 115 4 3 1216 15 14 13【输入形式】一个整数n(1<=n<=10)【输出形式】数圈矩阵【样例输入】5【样例输出】21 22 23 24 2520 7 8 9 1019 6 1 2 1118 5 4 3 1217...
2019-07-07 17:31:41
626
原创 Huffman算法_优先队列_new与delete
Huffman算法_优先队列_动态生成与删除一个大一新生写的代码。如有高见,望不吝赐教。没有太多时间,只放代码了。#include <iostream>#include <queue>#include <vector>#include <stdio.h>#define maxn 222using namespace std;str...
2019-05-12 00:48:36
165
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人