算法之路《杂谈》
文章平均质量分 83
学无止境丶
https://github.com/fwdhz998。深度学习的副产品就是广度学习。
展开
-
蘑菇阵:动态规划中每条路径的概率不同
题目描述现在有两个好友A和B,住在一片长有蘑菇的由n*m个方格组成的草地,A在(1,1),B在(n,m)。现在A想要拜访B,由于她只想去B的家,所以每次她只会走(i,j+1)或(i+1,j)这样的路线,在草地上有k个蘑菇种在格子里(多个蘑菇可能在同一方格),问:A如果每一步随机选择的话(若她在边界上,则只有一种选择),那么她不碰到蘑菇走到B的家的概率是多少?输入描述:第一行原创 2017-04-07 14:46:11 · 639 阅读 · 0 评论 -
在ACM比赛中如何加速cin使其效率等同于scanf
在竞赛中,遇到大数据时,往往读文件成了程序运行速度的瓶颈,需要更快的读取方式。相信几乎所有的C++学习者都在cin机器缓慢的速度上栽过跟头,于是从此以后发誓不用cin读数据。还有人说Pascal的read语句的速度是C/C++中scanf比不上的,C++选手只能干着急。难道C++真的低Pascal一等吗?答案是不言而喻的。一个进阶的方法是把数据一下子读进来,然后再转化字符串,这种方法传说中很不错,转载 2017-04-19 14:51:22 · 1915 阅读 · 0 评论 -
霍夫曼编码与priority_queue的千丝万缕
霍夫曼编码:用最短的二进制编码去对一个字符串编码算法处理中,叠加当前最小的两个权值,然后再加入到权值集中正确的位置,这个过程就是一个优先级队列的实现。算法实现:1.频率排序:hash表统计频数,从小到大已排序好的权值(字符出现的频率)k[1],k[2]......k[i]....k[n],2.头部求和再插入:比如,取k[1]+k[2]的值再插入到队列中。3.重复循环步骤2,原创 2017-04-13 17:00:17 · 470 阅读 · 0 评论 -
最短路径算法-Dijkstra算法的实质与变体
DJ算法:求有向网G的v0顶点到其余顶点v最短路径P[v]及带权长度D[v]DJ算法思想:1 用于存储最短路径下标的数组2 用于存储到各点最短路径的权值和。3 用于标记是否已经获得v0至v的最短路径。首先说明两种情况:1 路径上有权值,这种是普遍情况,直接用节点v与节点0之间的路径值作为最短路径一维数组的初始值。2 路原创 2017-04-17 20:00:40 · 1698 阅读 · 0 评论 -
严重不安全:STL map 使用map[key]==0判断key是否存在于map中
题目描述现在我们需要查出一些作弊的问答社区中的ID,作弊有两种:1.A回答了B的问题,同时B回答了A的问题。那么A和B都是作弊。2.作弊ID用户A和作弊ID用户B同时回答了C的问题,那么C也是作弊。已知每个用户的ID是一串数字,一个问题可能有多个人回答。输入描述:每组数据第一行为总问题数N(N小于等于200000),第二行开始每行一个问题,第一个数字为提问人ID,第二个数字为回原创 2017-04-12 15:16:58 · 10122 阅读 · 1 评论 -
在toupper/tolower前面加::,强制指定是C版本的
题目描述请设计一个高效算法,再给定的字符串数组中,找到包含"Coder"的字符串(不区分大小写),并将其作为一个新的数组返回。结果字符串的顺序按照"Coder"出现的次数递减排列,若两个串中"Coder"出现的次数相同,则保持他们在原数组中的位置关系。给定一个字符串数组A和它的大小n,请返回结果数组。保证原数组大小小于等于300,其中每个串的长度小于等于200。同时保证一定存在原创 2017-04-02 17:22:14 · 582 阅读 · 0 评论 -
vector<vector<int>> res=A的可行性有待商榷。
题目描述在4x4的棋盘上摆满了黑白棋子,黑白两色的位置和数目随机其中左上角坐标为(1,1),右下角坐标为(4,4),现在依次有一些翻转操作,要对一些给定支点坐标为中心的上下左右四个棋子的颜色进行翻转,请计算出翻转后的棋盘颜色。给定两个数组A和f,分别为初始棋盘和翻转位置。其中翻转位置共有3个。请返回翻转后的棋盘。测试样例:[[0,0,1,1],[1,0,1,0],[原创 2017-04-02 17:18:12 · 1104 阅读 · 0 评论 -
去哪儿网实习生笔试题
去哪儿网实习生笔试题目:.第一题:1.由前序遍历和中序遍历构造二叉树。2.层次遍历二叉树并打印。#include#includeusing namespace std;struct TreeNode{ TreeNode*left; TreeNode*right; int val; TreeNode(int x):left(NULL),rig原创 2017-04-01 20:40:28 · 855 阅读 · 0 评论 -
简单错误记录:小心用hash值==0判断是否存在。最好用find.
题目描述开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。 处理:1.记录最多8条错误记录,对相同的错误记录(即文件名称和行号完全匹配)只记录一条,错误计数增加;(文件所在的目录不同,文件名和行号相同也要合并)2.超过16个字符的文件名称,只记录文件的最后有效16个字符;(如果文件名不同,而只是文件名的后16个字符和行号相同,也不要合并)3.输入的文件原创 2017-03-31 16:31:43 · 2944 阅读 · 0 评论 -
微软:Spring Outing
题目描述You class are planning for a spring outing. N people are voting for a destination out of K candidate places.The voting progress is below:First the class vote for the first candidate place.转载 2017-03-30 22:33:05 · 457 阅读 · 0 评论 -
数独:深搜+剪枝 == 递归+回溯
题目描述数独是一个我们都非常熟悉的经典游戏,运用计算机我们可以很快地解开数独难题,现在有一些简单的数独题目,请编写一个程序求解。输入描述:输入9行,每行为空格隔开的9个数字,为0的地方就是需要填充的。输出描述:输出九行,每行九个空格隔开的数字,为解出的答案。思路:深搜+剪枝 == 递归+回溯凡是类似于迷宫的寻找路径的问题,均可由“递归+回溯”。原创 2017-04-09 13:25:58 · 2098 阅读 · 0 评论 -
动态规划在概率论中的应用:产生N种不同结果的概率之间的联系
动态规划的应用十分常见,今天介绍一种在概率论中求期望时所用的动态规划方法。因为在求期望时,我们需要知道N种结果中,每种结果的概率p[i]和每种结果值k[i],那么最终的期望值即为E=p[1]k[1]+p[2]k[2]+...p[N]k[N]。某种题意要求下,各个p[i]的值之间有关系,p[i]=f(p[i+1]),这种情况下,我们便可以用动态规划来解决。背景:这次招聘会一共有N个人,我原创 2017-04-20 15:25:36 · 1394 阅读 · 0 评论