- 博客(30)
- 收藏
- 关注
原创 markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:- **Markdown和扩展Markdown简洁的语法**- **代码块高亮**- **图片链接和图片上传**- ***LaTex*数学公式**- **UML序列图和流程图**- **离线写博客**- **导入导出Markdown文件**- **丰富
2017-12-23 18:42:40 152
原创 2018暑假集训楼下第十场(拓扑排序+dijkstra+floyd+Bellman ford)
最短路(HDU 2544) 题意:中文题意不解释。 题解:题意里说的很清楚,就是求A到B之间的最短路。最短路的源点是A,源点只有一个,所以用dijkstra就行,顶点个数少于100,用floyd也可以。#include <stdio.h>#include <string.h>#include <algorit
2018-08-08 08:30:24 276
原创 并查集+最小生成树(prim+kruskal)
并查集并查集,从名字上来看可以知道,是一个集合,而且这个集合可以合并和查询。查询,主要是查询集合中的某一个元素的祖先是谁,某一些元素是不是拥有相同的祖先。合并,是把两个不想交的集合合并为一个集合。 并查集的思想就是朋友的朋友就是朋友(虽然现实生活中并不是这样)。 并查集的第一步初始化,自己是自己的祖先。一个人来到一个陌生的环境谁也不认识,自己的小团体里只有自己一个人。for (int ...
2018-08-04 17:39:53 1259
原创 2018暑假集训楼下第九场(并查集,prim,kruskal)
The Suspects(POJ 1611) 题意: SARS 是一种传染性疾病,在某大学爆发了这种既疾病。为了减少对他人的传播,最好的方式是将病人与其他人隔离开。 现在一名学生可能加入多个团体。一个团体的一名学生疑似患病,其他学生也要被隔离。编写一个找到所有患病嫌疑人的程序。 输入:输入文件包含几种情况。每个测试用例以一行中的两个整数n和m开始,其中n是学生数,m是团体的数量。0 &l...
2018-08-03 17:58:39 354
原创 2018暑假集训楼下第八场(深广搜)
A - Red and Black 题意:一个被方形瓷砖覆盖的矩形房间,瓷砖分为红黑两种颜色。一个人站在一块黑色的瓷砖上,他可以移动到相邻(上,下,左,右)的瓷砖上。但是他不可以移动到红色的瓷砖上。写一个程序计算有多少块黑色的瓷砖这个人可以到达. 包括多组输入,两个零代表输入结束。 输入:’.’代表一块黑色的瓷砖 ’#‘代表红色的瓷砖 ’@‘代表这个人所在的位置 题解: 根据题意,要找...
2018-08-01 21:08:29 223
原创 2018暑假集训楼下第四场(栈,队列,优先队列)
A-Windows Message Queue#include<stdio.h>#include<string.h>#inc
2018-07-26 11:13:42 189
原创 2018暑假楼下集训第二场(GCD,哈希,二分)
A 题解: 裸的GCD,注意先除再乘,否则可能会超数据范围#include <iostream>#include <cstdio>using namespace std;int gcd(int n,int m){
2018-07-19 21:47:49 302
原创 2018暑假楼下集训第一场(递推,递归,素数筛选)
A - Fibbonacci Number 题解:求斐波那契数列(注意:开 long long )#include <iostream>using namespace std;long long f[60];//打表void init(){ f[0]=0; f[1]=1; for (int i=2;i<=50;i++) ...
2018-07-17 11:29:51 252
原创 STL - list 常用方法总结
1.头文件#include<list>2.函数构造list<int> L0// // 空链表list<int> L1(9)// // 建一个含9个默认值是0的元素的链表list<int> L2(5,1)// // 建一个含5个元素的链表,值都是1list<int> L3(L2)// // 建一个...
2018-04-29 22:36:44 172
原创 STL - map 常用用法详解
STL 通用函数总结 1.头文件:#include<map>2.定义:建立Key - value的对应map<int, string> mapStudent; //定义一个用int作为索引,并拥有相关联的指向string3.常用操作: 3.1在map中插入元素mapStudent.insert(pair<int, string>...
2018-04-28 11:38:45 277
原创 STL - set 常用用法总结
STL 通用函数总结 1.头文件:#include <set> 2.定义://set 内的元素只允许出来一次,如果需要集合中的元素允许重复那么可以使用multiset,multiset.earse(a)将删除容器内所有的a元素//Set 默认容器内的元素升序排序set<int> s //定义一个set容器 类型为int型set<int, ...
2018-04-28 10:38:17 253
原创 STL 通用函数总结
set<int>::iterator it;//set<int>为迭代器类型,根据自己定义的容器类型定义 set<int>::reverse_iterator r_it;//反向迭代器//查找类函数,查找失败均返回end()begin()//返回指向第一个元素的迭代器end()//返回指向最后一个元素+1的迭代器rbegin()//返回指向集合中最后...
2018-04-28 10:13:25 184
原创 STL-vector常用用法
1.头文件:#include <vector>定义方法:a)vector<int>v1;//vector元素为 int 型 b)vector<string>v2;// vector元素为string型 vector<node>v3;//入队元素为结构体型,结构体可以自行定义3.常用操作:push_back(...
2018-04-28 09:08:42 165
原创 第八节省赛题解-Return of the Nim(尼姆博奕)
Return of Nim DescriptionSherlock and Watson are playing the following modified version of Nim game:There are n piles of stones denoted as , and n is a prime number;Sherlock always plays first, an...
2018-03-28 12:11:54 209
原创 第四届省赛题解-The number of steps(概率DP+数学期望)
The number of steps Problem Description Mary stands in a strange maze, the maze looks like a triangle(the first layer have one room,the second layer have two rooms,the third layer have three rooms ...
2018-03-26 22:24:57 366
原创 树状数组入门
树状数组比线段树要简单,可以用树状数组解决的问题都可以用线段树解决 把树状数组及时树状的数组,可以借助二叉树记忆、理解: 二叉树变形之后,如下图: 定义每一列的顶端结点C[]数组 ,如下图: C[i]代表 子树的叶子结点的权值之和 如图可以知道 C[1]=A[1]; C[2]=A[1]+A[2]; C[3]=A[3]; C[4]=A[1]+A[2]+A[3]+A[4]...
2018-02-22 17:58:33 121
原创 第五届省赛题解——J Weighted Median(排序求和)
J - Weighted MedianDescription For n elements x1, x2, …, xn with positive integer weights w1, w2, …, wn. The weighted median is the element xk satisfying and , S indicates Can you compute th
2018-01-28 17:32:57 208
原创 第五届省赛题解——A angry_birds_again_and_again(求二次函数表达式+不定积分)
A - angry_birds_again_and_againDescription The problems called “Angry Birds” and “Angry Birds Again and Again” has been solved by many teams in the series of contest in 2011 Multi-University Traini
2018-01-26 18:02:40 254
转载 第五届省赛题解——G Hearthstone II(组合数学+第二类stirling数)
原博客网址:http://blog.csdn.net/Puppet__/article/details/79163888Stirling数概念Stirling数出现在许多组合枚举问题中。对第一类Stirling数s(n,m),可记为。表示将 n 个不同元素构成m个圆排列的数目。同时还分为无符号第一类Stirling数su(n,m) 和带符号第一类Stirling数ss(n,m)。
2018-01-26 17:01:51 390
原创 大数(相加+相减+相乘)
把一个数当成一个字符串进行运算 大数相加:#include <cstdio>#include <cstdlib>#include <cstring>char s1[2000];char s2[2000];void Add1();int main(){ gets(s1); gets(s2); Add1(); ...
2018-01-24 16:40:17 383
原创 第五届省赛题解——F Full Binary Tree
F - Full Binary TreeDescription In computer science, a binary tree is a tree data structure in which each node has at most two children. Consider an infinite full binary tree (each node has two chi
2018-01-24 15:44:54 182
原创 第五届省赛题解 ——E
E - FactorialDescription Homelesser hates mathematics. He cannot even do addition and subtraction, not to mention computing factorial. He asks Cainiao2hao for help. Cainiao2hao is always busy solvi
2018-01-22 20:33:29 189
原创 课程设计——路经查询相关代码
#include #include #include #include #include using namespace std;const int inf=0x3f3f3f3f;const int N=8;int mapp[N][N]; //存放校园路径长度int path[N][N]; //存放校园路径长度的临时数组int short0[N][N];
2018-01-21 19:16:37 177
原创 HDU 1242 Rescue(优先队列+广度优先搜索)
Rescue Problem Description Angel was caught by the MOLIGPY! He was put in prison by Moligpy. The prison is described as a N * M (N, M <= 200) matrix. There are WALLs, ROADs, and GUARDs in...
2018-01-20 12:22:45 439
原创 博弈
(博弈要求每次取物品,都为最优取法)巴什博弈基本题意:两人轮流从一堆物品,取走一些物品,最后取光物品者为胜,求最后的结果。规定:共有n件物品,每人每次最少取1个,最多取m个。解题思路:如果n=m+1,因为一次最多取m个,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果n=(m+1)r+s,(r为任意自然数,s≤m),那么先取者要拿走...
2018-01-19 15:13:12 162
原创 折半查找和顺序查找
折半查找(二分):#include <stdio.h>#include <stdlib.h>#define MAX_NUM 100typedef struct{ int key;} ElemType;typedef struct{ ElemType elem[MAX_NUM]; int length;} SSTable;int s(SSTable st,in
2017-12-19 20:23:06 363
原创 希尔排序
直接插入排序: 基本思想是,当插入第i个记录时,前面的R[1],…,R[i-1]已经排好序,这时,用R[i]的关键字依次与R[i-],…,R[1]比较,直到找到插入位置,假设为j;然后将第i-1个至第j个记录依次后移,最后将R[i]插入到位置j。//代码实现for (int i=2; i<=n; i++) { int t=a[i]; int j=i-1;
2017-12-16 19:14:47 270
原创 快速排序
从待排序区间中任取一个记录(通常是第一个)作为枢纽记录(即基准记录),所有比基准记录小的记录一律放在其左侧,所有比基准记录大的记录一律放在右侧,形成两个子表;枢纽记录放在两个子表中间的位置(也是枢纽记录最终的位置)。然后对两个子表重新选择枢纽记录,重复上述操作。#include <stdio.h>#define N 200int a[N];int quick(int i,int j){
2017-12-12 14:53:56 182
原创 邻接矩阵实现深度优先搜索,广度优先搜索
#include<stdio.h>const int N=20;#define TRUE 1#define FALSE 0int visited[N];typedef struct /*队列的定义*/{ int data[N]; int front,rear;} queue;typedef struct /*图的邻接矩阵*/{ int vexnu
2017-11-30 15:14:08 1150
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人