- 博客(20)
- 资源 (1)
- 收藏
- 关注
原创 最小生成树prim模板
#include #include #include #include using namespace std;const int INF = 0x3f3f3f3f;int vis[2000], dis[2000], graph[2000][2000]; //vis标记 dis其实抽象为边的集合 graph[a][b]从a到b长度 int n, m; int prime
2017-03-27 20:53:08 328
原创 hdu1287prim裸算法详细讲解
/*初学时有点懵懂和dijkstra总是搞不懂,简单区别为prim算法为一个连通图总和的最短长度,dijkstra算法为给定起始点一个或多个终点的最短长度*/#include #include #include #include using namespace std;const int INF = 0x3f3f3f3f;int vis[2000], dis[2000], grap
2017-03-27 20:50:26 365
原创 poj3268
#include #include #include #include using namespace std; const int INF=99999999; int maps[2005][2005],v[2005],d[2005],d1[2005]; int n, m, x; int Dijkstra( ) {
2017-03-26 22:30:23 201
原创 dijkstra模板
/*dijkstra用于有权图,权值非负,起点终点已知,算法运行过程不断维护的关键信息是节点集合s。从源点(初始点)开始将路径最小的点u加入到集合s,不断重复该过程,终止条件是终点纳入集合s,他是贪心的策略但是正确的具体证明见算法导论第三版p385*/ /*题意为从1~n的最短路径*/ /*此题的坑主要是两点之间可能有重边在主函数中已解决详情见代码*/ #include #
2017-03-26 14:56:54 462
原创 poj2387最短路径(此题的坑为有重边)
/*dijkstra用于有权图,权值非负,起点终点已知,算法运行过程不断维护的关键信息是节点集合s。从源点(初始点)开始将路径最小的点u加入到集合s,不断重复该过程,终止条件是终点纳入集合s,他是贪心的策略但是正确的具体证明见算法导论第三版p385*//*题意为从1~n的最短路径*//*此题的坑主要是两点之间可能有重边在主函数中已解决详情见代码*/ #include #include
2017-03-26 12:13:35 1193
原创 关于css
<!--CSS 可以通过以下方式添加到HTML中:内联样式- 在HTML元素中使用"style" 属性内部样式表 -在HTML文档头部 区域使用 元素 来包含CSS外部引用 - 使用外部 CSS 文件--> 菜鸟教程(runoob.com) 这是一个标题这是一个段落。
2017-03-23 21:27:51 320
原创 2015蓝桥杯B组第4题
/*这里主要涉及到了一个输出格式的问题自己敲一下就懂了规律了*/#include #include void StringInGrid(int width, int height, const char* s){int i,k;char buf[1000];strcpy(buf, s);if(strlen(s)>width-2) buf[width-2]=0;printf(
2017-03-21 18:18:42 311
原创 2016蓝桥杯第九题
/*该题用贪心的思想不断将当前位置上的数字与下表对应起来,那么将是最优解,为了不超时用了一个for循环通过下标与数字的交题保存。其中交换值时注意维护下标为当前与之对应的下标很巧的一道题,这里用到了一个交换方法也是基于计算机组成原理上的一个移位运算方便,快捷。*/#include #include using namespace std;int main(){ int num[10000
2017-03-20 20:52:21 354
原创 2016蓝桥杯第六题
方格填数 如下的10个格子 (如果显示有问题,也可以参看【图1.jpg】) 填入0~9的数字。要求:连续的两个数字不能相邻。(左右、上下、对角都算相邻) 一共有多少种可能的填数方案? 请填写表示方案数目的整数。 注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。in
2017-03-17 22:01:08 449
原创 stl全排列next_permutation()与prev_permutation()函数用法
/*对于一组给定的序列你可以从小到大或者从大到小排列,stl中有两个库函数很好用:next_permutation和prev_permutation 但是这里要注意 要在do while循环中写才会将所有你想排列都写出来,在for或者while循环中会将第一组排列丢失*//*这是从大到小的全排列*/#include #include #include #include #includ
2017-03-17 11:35:52 643
原创 html5的学习笔记
1. - 标签进行定义的. 定义最大的标题。 定义最小的标题。--> 我是张超 这是第一个标题 这是第二个标题 这是第三个标题 这是第四个标题 这是第五个标题 这是第六个标题 2. 标签在 HTML 页面中创建水平线。-->菜鸟教程(runoob.com) hr 标签定义水平线: 这是段落。 这是段落。
2017-03-16 21:55:27 571
原创 poj1182
#include #include #include #include using namespace std;const int maxn = 50050;int fa[maxn], relation[maxn];int n;int Find(int c){ if(c == fa[c]) return fa[c]; else { in
2017-03-11 22:20:54 293
原创 hdu1166线段树的点跟新模板
#include #include #include #include #define lson l, m, rt<<1//左子树的rt即当前节点在这个树中的位置(编号)为每次乘2#define rson m+1, r, rt<<1|1//右子树树的当前节点的编号为乘2加1using namespace std;const int maxn = 55555;int sum[ma
2017-03-11 12:30:34 218
原创 poj2533纯最长上升子序列
//题意:求最长上升子序列//思路:记录每个状态的最大值,且时刻维护最大值#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>using namespace std;int num[1000+10];int dp[1000+10];in...
2017-03-06 22:05:34 249
原创 codeforces 779A
/*一定度清楚题意,是小领导要求a,b两个小组具有相同多的value的学生*/#include #include #include #include using namespace std;int a[55], b[55];int main(){ int n, num; while(scanf("%d", &n) != EOF){ memset
2017-03-06 20:01:55 393
原创 poj3481(通过stl中的set,以及pair和make_pair简单通过)
/*其实此题就是一个对应关系的题,如果用优先队列需要300多行的代码而且难以理解*/#include #include #include #include #include using namespace std;int main(){ set >s; set >::iterator it;//迭代器有点像for循环是个指针操作用于遍历容器中的元素等
2017-03-05 15:38:31 337
原创 stl函数之lower_bound 与 upper_bound
函数lower_bound()在first和last中的前闭后开区间进行二分查找,返回大于或等于val的第一个元素位置。如果所有元素都小于val,则返回last的位置举例如下:一个数组number序列为:4,10,11,30,69,70,96,100.设要插入数字3,9,111.pos为要插入的位置的下标则pos = lower_bound( number, number + 8,
2017-03-05 14:42:14 359
转载 stl map用法和 make_pair函数
首先make_pairPairs C++标准程序库中凡是“必须返回两个值”的函数, 也都会利用pair对象 classpair可以将两个值视为一个单元。容器类别map和multimap就是使用pairs来管理其健值/实值(key/value)的成对元素。 pair被定义为struct,因此可直接存取pair中的个别值.两个pa
2017-03-05 14:06:58 490
原创 uva12563 Jin Ge Jin Qu
#include #include #include #include using namespace std;const int maxx = 180 * 55;int t[55];//题目所给的歌的每个时长struct Node{ int num, time;//歌的数量和时长}dp[maxx];int main(){ int l; int
2017-03-03 17:26:00 315
转载 背包问题详解
P01: 01背包问题 这是最基本的背包问题,每个物品最多只能放一次题目有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。基本思路这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。用子问题定义状态:即f[i][v]表示前
2017-03-02 18:43:48 208
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人