自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 字符串折叠

字符串折叠 题解见luogu dp问题要考虑所有完整的情况 1、将问题分治 2、分治后的合并处理(可能会与分无关,就是当做整体处理) 3、状态转换方程 想不通时,从最简单的样例出发 一定要想清楚,什么样的分治方法才是正确的(如何 合理的分解问题为子问题) #include<cstdio> #include<iostream> #include<string> #include<cmath> #include<algorithm> #include&

2021-09-10 16:49:10 179

原创 火星A+B

火星A+B 不要转换为10进制再加,直接按位加,然后进位即可 #include <cmath> #include <iostream> #include <queue> #include <sstream> #define LL long long using namespace std; const int number[]={2 ,3, 5 , 7 , 11 , 13 , 17 , 19 ,

2021-09-10 13:22:06 130

原创 Tree Recovery poj

Tree Recovery #include <cmath> #include <iostream> #include <queue> #define LL long long using 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 155

原创 CCF 201612-4

CCF 201612-4 此题算法与“石子合并问题”一样! 为什么能用这个算法那?有人可能会问,这个方法与哈夫曼编码有什么不一样吗? 答:题目要求字典序编码(不懂什么意思的好好看看题)默认哈夫曼编码过程中,子节点的合并是无序的,即,字典序大的节点可能直接与字典序小的节点合并了。 如果用dp(就是石子合并算法),其执行顺序是顺序(或者说是两两合并)的合并,就不会存在上述情况。 以下为个人想法,可不看: 将算法图形化,就发现实际上是一棵树。该算法可以拓展到任何可以将模型构建成这类树的问题上。 #include

2021-09-09 21:56:00 111

原创 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 104

原创 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 112

原创 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 97

原创 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 99

原创 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 151

原创 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 99

原创 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 105

原创 CCF 201509-4

CCF 201509-4 使用Tarjan算法,详细文章参考 https://blog.youkuaiyun.com/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 111

原创 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 96

原创 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 101 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 96

原创 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 122

原创 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 136 1

原创 数圈

数圈 以1为中心,用2,3,4, …, n, …, n*n的数字围绕着中心输出数圈, 如若n=4,则 7 8 9 10 6 1 2 11 5 4 3 12 16 15 14 13 【输入形式】 一个整数n(1<=n<=10) 【输出形式】 数圈矩阵 【样例输入】 5 【样例输出】 21 22 23 24 25 20 7 8 9 10 19 6 1 2 11 18 5 4 3 12 17...

2019-07-07 17:31:41 667

原创 Huffman算法_优先队列_new与delete

Huffman算法_优先队列_动态生成与删除 一个大一新生写的代码。如有高见,望不吝赐教。没有太多时间,只放代码了。 #include <iostream> #include <queue> #include <vector> #include <stdio.h> #define maxn 222 using namespace std; str...

2019-05-12 00:48:36 193

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除