自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2019腾讯暑期实习常规批笔试技术研究与数据分析卷编程题

2019腾讯暑期实习常规批笔试技术研究与数据分析卷编程题题一 数字拆分解题思路注意点解析python实现代码解释题二 水果运费解题思路注意点解析python实现代码解释题三 找最小数解题思路注意点解析python实现代码解释题一 数字拆分一个数字有两种操作,1 对所有数字减一 2 把所有数字都拆分成两个更小的数之和,问最多拆分K次,把N完全消去最少需要多少轮操作。输入取值范围: 1<=...

2019-04-10 00:24:27 3655 2

原创 hiho刷题日记——第三十一天小Hi小Ho的惊天大作战:扫雷·二

题目这次的扫雷是二维的了。根据三种规则做一次判断,判断出一定是雷和一定不是雷的数量。 1.如果某一个被探明的格子里所标的数字为0,那么它相邻的8个格子里的未探明格子被认作是一定不是地雷的格子。 2.如果某一个被探明的格子里所标的数字为K,且它相邻的8个格子里正好有K个没有探明的格子的话,则这K个没有探明的格子被认作是一定是地雷的格子。 3.如果某两个探明了的格子A和B,他们中标明的数字分别为P

2015-12-18 21:12:42 1368

原创 hiho刷题日记——第三十天小Hi小Ho的惊天大作战:扫雷·一

题目简化版扫雷,只有一行。 给出一行的周围3格中是雷的数量。 判断哪些一定是雷,一定不是雷。 思路因为给出的信息是环环相扣的,不用一个一个去试。 只需要试第一格是否为雷就可以通过数据算出后面是否为雷。 所以只用试两次, 第一次把一格设为雷,算出后面的情况;第二次把第一格设为不是雷,算出后面的情况。 若两次都算出来了,则将两次的情况对比,没有变化的部分就是答案。 若只有一次满足条件,则

2015-12-16 09:11:14 1118

原创 hiho刷题日记——第二十九天最小生成树三·堆优化的Prim算法

题目最小生成树。思路使用小根堆对prim算法进行优化。 参考第二十六天和第二十八天。代码#include<cstdio>#include<cstring>using namespace std;const int MAXN=100000+1;const int MAXM=1000000+1;int N,M,vis[MAXN];int head[MAXN],e=0;int w[MAXM]

2015-12-03 17:34:18 420

原创 hiho刷题日记——第二十八天题外话·堆

题目用prim做最小生成树思路先随便从一个点开始。建立当前节点到各个节点的最短距离。到不了的设为最大值。 然后找到一个未访问的切到达距离最小的节点。将当前节点到该节点的路涵盖进来。将该节点设置为以访问。并重新计算各个节点到已经访问过的节点的最短距离。 重复N-1次。便可以求出最小生成树代码#include<cstdio>#include<cstring>using namespace std

2015-12-02 10:54:11 477

原创 hiho刷题日记——第二十七天最小生成树二·Kruscal算法

题目用prim做最小生成树思路先随便从一个点开始。建立当前节点到各个节点的最短距离。到不了的设为最大值。 然后找到一个未访问的切到达距离最小的节点。将当前节点到该节点的路涵盖进来。将该节点设置为以访问。并重新计算各个节点到已经访问过的节点的最短距离。 重复N-1次。便可以求出最小生成树代码#include<cstdio>#include<cstring>using namespace std

2015-12-01 15:19:50 517

原创 hiho刷题日记——第二十六天最小生成树一·Prim算法

题目用prim做最小生成树思路先随便从一个点开始。建立当前节点到各个节点的最短距离。到不了的设为最大值。 然后找到一个未访问的切到达距离最小的节点。将当前节点到该节点的路涵盖进来。将该节点设置为以访问。并重新计算各个节点到已经访问过的节点的最短距离。 重复N-1次。便可以求出最小生成树代码#include<cstdio>#include<cstring>using namespace std

2015-12-01 15:19:19 519

原创 hiho刷题日记——第二十五天最短路径·三:SPFA算法

题目图中节点的数量级上升至十万,路的数量级上升至百万。思路和我之前在一中写的相似。只是从深度优先改为了广度优先。代码#include<cstdio>#include<cstring>using namespace std;const int MAXN=100000+1;const int MAXM=1000000+1;int N,M,S,T,head[MAXN],queue[MAXM],fr

2015-11-29 19:38:54 554

原创 hiho刷题日记——第二十四天最短路径·二:Floyd算法

题目用Floyd算法求无向图中两两之间的最短距离。代码#include<cstdio>#include<cstring>using namespace std;const int MAXN=100+1;const int MAXL=1000+1;int N,M,g[MAXN][MAXN];int main(){ memset(g,1,sizeof(g)); scanf("%

2015-11-28 14:11:09 449

原创 hiho刷题日记——第二十三天最短路径·一

题目给一个无向有权(距离)图,求两点之间最小距离。思路根据给出的数据建立有个无向图。 从出发点开始深度遍历便可。遍历的时候得出出发点到遍历到的点的最短路径。便可得出答案。代码#include<cstdio>#include<cstring>using namespace std;const int MAXN=1000+1;const int MAXM=10000+1;int N,M,S,T

2015-11-28 01:13:16 401

原创 hiho刷题日记——第二十二天更为复杂的买卖房屋姿势

题目小Hi和小Ho所关注的街道的长度为N米,从一端开始每隔1米就有一栋房屋,依次编号为0..N,在游戏的最开始,每栋房屋都有一个初始价格,其中编号为i的房屋的初始价格为p_i,之后共计发生了M次事件,所有的事件都是对于编号连续的一些房屋发生的,其中第i次事件如果是房屋自发的涨价或者降价,则被描述为三元组(L_i, R_i, D_i),表示编号在[L_i, R_i]范围内的房屋的价格的增量(即正数为涨

2015-11-26 20:28:10 594

原创 hiho刷题日记——第二十一天离散化

题目因为宣传栏和海报的高度都是一样的,所以宣传栏可以被视作长度为L的一段区间,且有N张海报按照顺序依次贴在了宣传栏上,其中第i张海报贴住的范围可以用一段区间[a_i, b_i]表示,其中a_i, b_i均为属于[0, L]的整数,而一张海报能被看到当且仅当存在长度大于0的一部分没有被后来贴的海报所遮挡住。那么问题就来了:究竟有几张海报能被看到呢? 对于100%的数据,满足N<=10^5,L<=10

2015-11-26 00:27:16 488

原创 hiho刷题日记——第二十天线段树的区间修改

题目假设货架上从左到右摆放了N种商品,并且依次标号为1到N,其中标号为i的商品的价格为Pi。小Hi的每次操作分为两种可能,第一种是修改价格——小Hi给出一段区间[L, R]和一个新的价格NewP,所有标号在这段区间中的商品的价格都变成NewP。第二种操作是询问——小Hi给出一段区间[L, R],而小Ho要做的便是计算出所有标号在这段区间中的商品的总价格。 由于题目的数据规模是十万级。直接朴素算法就

2015-11-24 18:15:02 485

原创 hiho刷题日记——第十九天RMQ问题再临-线段树

题目RMQ问题就是在一个范围内求最值的问题。 这个题目还增加了中途可以改变某个值的大小。 这里是利用线段树求最小值。思路线段树其实有二分的思想在里面。比如我知道第1-8个分别的数值。然后我就可以求出1-2,3-4,5-6,7-8的最值,然后求出1-4,5-8的最值,最后求出1-8的最值。以1-8为树根可以建立一棵二叉树。然后在知道范围的时候,可以把要求的范围分解成已经求出的范围最值来更快的得到答

2015-11-23 20:16:07 576

原创 hiho刷题日记——第十八天RMQ问题再临

题目就是RMQ的题目,只是增加了询问中途修改值得可能性。 但是数量级降到了万级。思路直接就是找最小值了。用最朴素的方法都能过。代码#include<cstdio> using namespace std;const int MAXN=10000+5;int N,w[MAXN];int a,b,c;int main(){ scanf("%d",&N); for(int i=

2015-11-22 21:26:40 464

原创 hiho刷题日记——第十七天最近公共祖先·三

问题还是最近公共祖先问题。思路之前用了Tarjan算法来做。但是这里遇到一个问题就是如果只有一个询问,那么将很难决定到底是针对这个询问就直接进行计算还是等待一定数量的询问一起计算。毕竟无论是一个询问还是很多个询问,使用离线算法都是只需要做一次深度优先搜索就可以了的。 所以这一次改用一个在线算法。 先根据输入建立一棵家族树。 建立好家族树之后,深度遍历该树。使用一个数组来记录走过的路径(无论是从

2015-11-21 17:20:58 507

原创 hiho刷题日记——第十六天RMQ-ST算法

这两天有事停了两天。这道题也是调了不少时间。好累呀。真想就直接贴代码。ST定义ST[Len][L]表示左边界为L,长度为2^Len的区间中的最小值。则有 ST[Len][L]=min(ST[Len-1][L],ST[Len-1][L+2^(Len-1)]; 然后就可以循环求出所有的ST。答案取小于这个区间长度的最大的2的非负整数次幂T,则答案为min(ST[Len][L],ST[Len][R+1

2015-11-19 23:31:50 782

原创 C语言register关键字

register关键字:请求编译器尽可能的将变量存在cpu内部寄存器中,以提升访问速度。注意:1,修饰的类型必须是cpu能够接受。2.因为不是在内存而是在寄存器,所以不能使用“&”取址3.这是只是请求不是命令,是尽可能不是一定。

2015-11-19 21:51:37 843

原创 hiho刷题日记——第十五最近公共祖先·二

题目与最近公共祖先·一 将设置关系数量和查询关系数量的数量级都从100提升到100000。思路用邻接表,将家族关系建树,查询情况建图。 使用离线算法的方式,通过一次深度优先遍历家族树,得出所有查询的答案。 遍历时,第一次访问结点,将该节点做个标记1。访问完结点的所有子结点时,标记为2。 在遍历到一个节点时,在查询图中扫描所有该节点的边,检查边的另一个端点的标记。若标记为0,无视;若标记为1,

2015-11-17 01:57:35 596

原创 hiho刷题日记——第十四天无间道之并查集

题目有两种操作。 0是 设置两人同阵营 1是 查询两人是否同阵营输入每个测试点(输入文件)有且仅有一组测试数据。 每组测试数据的第1行为一个整数N,表示总共进行的操作次数。 每组测试数据的第2~N+1行,每行分别描述一次操作,其中第i+1行为一个整数op_i和两个由大小写字母组成的字符串Name1_i, Name2_i,其中op_i只可能为0或1,当op_i=0时,表示判定Name1_i和N

2015-11-15 22:53:16 596

原创 hiho刷题日记——第十三天最近公共祖先·一

题目已知一棵族谱树。查找两个人的最近公共祖先。输入每个测试点(输入文件)有且仅有一组测试数据。 每组测试数据的第1行为一个整数N,意义如前文所述。 每组测试数据的第2~N+1行,每行分别描述一对父子关系,其中第i+1行为两个由大小写字母组成的字符串Father_i, Son_i,分别表示父亲的名字和儿子的名字。 每组测试数据的第N+2行为一个整数M,表示小Hi总共询问的次数。 每组测试数据的

2015-11-14 16:17:21 618

原创 hiho刷题日记——第十二天刷油漆

题目一共N个结点的树(1至N编号),油漆能够涂M个结点。 将包含1号结点的一部分连通的结点进行涂漆(这里的连通指的是这一些涂漆的结点可以互相到达并且不会经过没有涂漆的结点),然后将剩下的结点拆掉!那么究竟选择哪些结点进行涂漆呢?小Ho想了想给每个结点都评上了分——他希望最后留下来,也就是涂漆了的那些结点的评分之和可以尽可能的高!输入每个测试点(输入文件)有且仅有一组测试数据。 每组测试数据的第一

2015-11-13 23:50:31 913

原创 hiho刷题日记——第十一天树中的最长路

题目给出一个无根树(其实就可以之间看作一个特殊的无向图) 求出该无根树的最长路 样例输入 8 1 2 1 3 1 4 4 5 3 6 6 7 7 8 样例输出 6思路对于任意一个节点,将其视为根节点,找到深度最深的节点记录下来。 再将找到的节点作为根节点找出深度最深的节点,两点之间的路便是这无根树的最长路。原因假设我们已知了最长路的两个端点。那么将这颗无根树上的任意一个节点

2015-11-12 23:51:40 766

原创 hiho刷题日记——第十天后序遍历

题目根据给出的二叉树的前序遍历和中序遍历输出后序遍历。输入每个测试点(输入文件)有且仅有一组测试数据。每组测试数据的第一行为一个由大写英文字母组成的字符串,表示该二叉树的前序遍历的结果。每组测试数据的第二行为一个由大写英文字母组成的字符串,表示该二叉树的中序遍历的结果。对于100%的数据,满足二叉树的节点数小于等于26。输出对于每组测试数据,输出一个由大写英文字母组成的字符串,表示还原出的二叉树的后

2015-11-11 18:42:51 510

原创 hiho刷题日记——第九天状态压缩·二

hiho刷题日记——第九天天状态压缩·二题目小Hi和小Ho领到了一个大小为N*M的长方形盘子,他们可以用这个盒子来装一些大小为2*1的蛋糕。但是根据要求,他们一定要将这个盘子装的满满的,一点缝隙也不能留下来,才能够将这些蛋糕带走。这么简单的问题自然难不倒小Hi和小Ho,于是他们很快的就拿着蛋糕离开了~但小Ho却不只满足于此,于是他提出了一个问题——他们有多少种方案来装满这个N*M的盘子呢?代码#in

2015-11-11 01:59:03 858

原创 hiho刷题日记——第八天状态压缩·一

当状态转移方程中状态过多时,进行压缩

2015-11-10 00:17:23 625

原创 hiho刷题日记——第七天完全背包

01背包的进化,完全背包。

2015-11-07 19:38:56 531

原创 hiho刷题日记——第六天01背包

简单的01背包问题,简单的说就是将已有的资源发挥出最大的价值。

2015-11-06 21:50:05 636

原创 hiho刷题日记——第五天数字三角形

一道简单题。

2015-11-05 19:34:58 434

原创 hiho刷题日记——第四天Trie图

用和kmp相似的思路,将trie树变为trie图。以用于在长篇文章中查找是否存在字典中的单词。

2015-11-05 16:10:01 461

原创 hiho刷题日记——第三天KMP算法

用KMP来求模式串在原串中的出现次数.

2015-11-05 15:54:50 608

原创 hiho刷题日记——第二天Trie树

建立Trie树来统计以某字符串为前缀的单词在字典中的个数。

2015-11-05 15:34:11 584

原创 hiho刷题日记——第一天最长回文子串

求个最长回文子串

2015-11-05 15:16:36 552

原创 hiho刷题日记——第一天 A+B

非常简单,无营养。开个头。

2015-11-05 15:14:05 310

空空如也

空空如也

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

TA关注的人

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