随笔分类 -  数据结构 & 算法

1
摘要:1. Vijos 萌萌的糖果博弈 && 吃糖果游戏 每次可以任意拿走其中一堆糖果;如果这时候另一堆糖果数目多于1粒,就把它任意分成两堆,否则就把剩下的一粒糖果取走并获得这次博弈的胜利。 1 #include<iostream> 2 #include<cstdio> 3 #include<string 阅读全文
posted @ 2017-05-04 10:28 马丁黄瓜啊
摘要:1. HDU 1232(并查集模板题) 1 #include<iostream> 2 #include<cstdio> 3 #include<string.h> 4 using namespace std; 5 #define MAX 1002 6 int pre[MAX];///用来标记关系 7 阅读全文
posted @ 2017-04-25 12:01 马丁黄瓜啊
摘要:单源最短路: Bellman-Ford 可以解决存在负边问题,复杂度:O(|边||点|) Dijkstra 不能解决负边 邻接矩阵、邻接表复杂度:O(|点|^2),优先队列复杂度:O(|边|) 任意两点间的最短路问题: Floyd-Warshall 可以解决负边问题,复杂度O(|点|^3) 路径还原 阅读全文
posted @ 2017-04-19 11:00 马丁黄瓜啊
摘要:背包问题初始值: 恰好装满: d[0]=0, d[1].d[2].d[3]....d[n-1]= 负无穷; 尽可能的满: d[0].d[1].d[2].....d[n-1] = 0; 背包九讲:初始化的f数组事实上就是在没有任何物品可以放入背包时的合法状态。如果要求背包恰好装满,那么此时只有容量为0 阅读全文
posted @ 2017-04-12 10:33 马丁黄瓜啊
摘要:1. Team Formation 链接:https://cn.vjudge.net/contest/157826#problem/B 问题:N个数,找出符合条件的对的个数。符合条件的一对为:两个数 相异或 的值大于该两个数,则符合。 例如: 3 1 2 3 输出: 1 解释: 1 异或 2 = 3 阅读全文
posted @ 2017-04-08 22:18 马丁黄瓜啊
摘要:1.数独 DFS 问题:用数字1-9填充该9×9的数据块,条件:空位置填数,该行、该列、该所在的3×3(黑线划分)小块,不得有重复出现的数字 思路:DFS 用三个二维数组分别存储:值为 1则说明出现过 r[i][x] 第 i 行 x 值 是否出现过 c[j][x] 第 j 列 x 值 是否出现过 b 阅读全文
posted @ 2017-04-06 21:15 马丁黄瓜啊
摘要:1. HDU 1003 最大和连续子序列 状态方程:dp[i]=max(dp[j-1]+num[i],num[i]); 解:存放dp数组每个元素都是从左至右最大连续子序列的值,即dp[i]为从0~i处最大连续子序列的值 注意边界 1 #include<stdio.h> 2 #include<algo 阅读全文
posted @ 2017-03-29 20:20 马丁黄瓜啊
摘要:循环次数 100000 ,N 为 10 结果如下 循环次数 100000 ,N 为 15 结果如下 -循环次数 100000 ,N 为 20 结果如下 可以看出递归最为耗时:代码简单易懂 向量由于做了大量的下标工作,相对来说次之 公式法再次之(在N=15时,公式法与迭代法性能不确定):公式推导,性能 阅读全文
posted @ 2016-11-18 09:21 马丁黄瓜啊
摘要:参考: 1.HDU 1856 More is better 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1856 题目大意: 给出N对关系 2*n 个人,求关系圈最大的人数。 解题思路: AC Code: 阅读全文
posted @ 2016-10-08 22:38 马丁黄瓜啊
摘要:题目链接:http://codeforces.com/problemset/problem/719/C 题目大意: 留坑。。。 阅读全文
posted @ 2016-09-29 14:14 马丁黄瓜啊
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4006 题目大意: 第一行 输入 n k,后有 n 行,对于每一行有两种状态 ,①“I x” : 插入 x ② “Q” : 输出当前 第 K大的数 解题思路: 利用优先队列保证插入新数据后的队列是有序的。 阅读全文
posted @ 2016-09-28 11:35 马丁黄瓜啊
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1873 题目大意: 三个医生看病,病人排队看病,病人有优先级,优先级高的提前看病,同样的优先级按先后。IN A B : A医生有B病人。OUT A:A医生看完病人。输入看完病的病人是第几个来的。如果当前的 阅读全文
posted @ 2016-09-27 16:07 马丁黄瓜啊
摘要:1 /*数组形式描述链表:链表不一定要用指针。 2 题目链接:UVa 11988 Broken Keyboard 3 题目大意: 4 小明没有开屏幕输入一个字符串,电脑键盘出现了问题会不定时的录入 home end 两个键, 5 我们知道如果录入home则将光标定位到字符首,如果录入end则是将光标定位到字符尾。现 6 在让你输出这段坏了文本。 表示:h... 阅读全文
posted @ 2016-09-26 12:43 马丁黄瓜啊
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1010 题目大意: 输入 n m t,生成 n*m 矩阵,矩阵元素由 ‘.’ 'S' 'D' 'X' 四类元素组成. S'代表是开始位置; 'D'表示结束位置;'.'表示可以走的路;'X'表示是墙。 问: 阅读全文
posted @ 2016-09-24 11:56 马丁黄瓜啊
摘要:参考:http://conw.net/archives/9/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io 阅读全文
posted @ 2016-09-24 10:05 马丁黄瓜啊
摘要:筛选法:对于不超过n的每个非负整数p,删除2p,3p,4p...当处理完所有数之后,还没没删除的就是素数。 代码中进行了相应的优化。 本代码功能,输入一个数,输出从1-该数之间的素数。功能待完善,可将所有素数存放到vis数组中。int k=0;vis[k++]=j;//待验证 阅读全文
posted @ 2016-09-22 22:49 马丁黄瓜啊
摘要:递归: 非递归: 不用考虑那个数值大小的问题,直接进行运算 数据测试: gcd(8,12) 1.while r=8%12=8 m=12 n=8 2.while r=12%8=4 m=8 n=4 3.while r=8%4=0 //跳出循环 cout n //n=4 阅读全文
posted @ 2016-09-09 22:52 马丁黄瓜啊
摘要:文章、图片参考:http://www.jianshu.com/p/1b4068ccd505?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io 这里用C++实现了部分排序,待更新。。。 名词解释: n: 数据规模k:“桶”的个数In 阅读全文
posted @ 2016-09-09 22:46 马丁黄瓜啊
摘要:题目链接:http://codeforces.com/problemset/problem/701/C 题意:找到字符串中能包含所有元素的最短字符串长度。 利用“滑动窗口”解题 解题思路: 1. 遍历找到所有元素进行统计,元素数sum 2.设置两个”指针“ st、en,双重while 循环 3.先清 阅读全文
posted @ 2016-09-03 16:27 马丁黄瓜啊
摘要:Java--大数计算,妈妈再也不用担心我的学习了 . BigInteger 英文API: http://docs.oracle.com/javase/8/docs/api/ 中文API: http://tool.oschina.net/apidocs/apidoc?api=jdk-zh -C++ 阅读全文
posted @ 2016-07-17 09:48 马丁黄瓜啊

1