- 博客(16)
- 收藏
- 关注
原创 HDU6165(tarjan算法 强连通缩点,拓扑排序)
这里说明一下,tarjan是一个人,他发明的算法都以他命名,所以,tarjan后面要加后缀,不然不知道是哪个算法。一道比较标准的模板题,这里有篇很好的讲强 tarjan求连通分量 的博客点击打开链接我这里直接把新图构建出来了,然后拓扑排序即可,只要那一层出现两个入度为0的点即不能到达。#include#include#include#include#include#inclu
2017-08-30 10:36:53 684
原创 hdu6181 Two Paths
一道A*算法求第k短路的模板题,但是!我有话要说。可能因为学校老师比较水,我们讲迪杰斯特拉算法的时候老师讲了个n^2算法实现的,教科书上也他妈n^2,我也没细想后来比赛的时候我自己优化了,结果一百度发现直接优先级队列,elogn。。。。。伤心,错过一道水题。自己做了个模板,以后直接用。对了,A*算法确实有复杂的用法,但是我们这里只要利用他求第k短就行了。至于估值函数 F=G+H 这
2017-08-25 19:32:22 398
原创 网易2017春招笔试编程题 分饼干
编程题] 分饼干时间限制:1秒空间限制:32768K易老师购买了一盒饼干,盒子中一共有k块饼干,但是数字k有些数位变得模糊了,看不清楚数字具体是多少了。易老师需要你帮忙把这k块饼干平分给n个小朋友,易老师保证这盒饼干能平分给n个小朋友。现在你需要计算出k有多少种可能的数值 输入描述:输入包括两行:第一行为盒子上的数值k,模糊的数位用X表示,长度小于1
2017-08-21 16:04:08 767
原创 2017年校招全国统一模拟笔试(第四场)_逃离农场
[编程题] 逃离农场时间限制:2秒空间限制:32768K牛牛在农场饲养了n只奶牛,依次编号为0到n-1, 牛牛的好朋友羊羊帮牛牛照看着农场.有一天羊羊看到农场中逃走了k只奶牛,但是他只会告诉牛牛逃走的k只奶牛的编号之和能被n整除。你现在需要帮牛牛计算有多少种不同的逃走的奶牛群。因为结果可能很大,输出结果对1,000,000,007取模。例如n = 7 k =
2017-08-18 14:19:51 678
原创 2017 Multi-University Training Contest - Team 7 hard challenge
比赛的时候没有主攻这道题,其实这个题目的关键是那个 l * r 大家都没想出来,遗憾。角度排序,枚举角度即可。这里利用对称性进行了代码优化。 #include #include #include #include #include #include using namespace
2017-08-16 19:21:13 293
原创 腾讯2017秋招笔试编程题_编码
[编程题] 编码时间限制:1秒空间限制:32768K假定一种编码的编码范围是a ~ y的25个字母,从1位到4位的编码,如果我们把该编码按字典序排序,形成一个数组如下: a, aa, aaa, aaaa, aaab, aaac, … …, b, ba, baa, baaa, baab, baac … …, yyyw, yyyx, yyyy 其中a的Index为0
2017-08-16 16:36:03 406
原创 网易2018校招内推编程题_小易喜欢的数列
[编程题] 小易喜欢的数列时间限制:1秒空间限制:32768K小易非常喜欢拥有以下性质的数列:1、数列的长度为n2、数列中的每个数都在1到k之间(包括1和k)3、对于位置相邻的两个数A和B(A在B前),都满足(A 例如,当n = 4, k = 7那么{1,7,7,2},它的长度是4,所有数字也在1到7范围内,并且满足第三条性质,所以小易是喜欢
2017-08-15 11:04:10 1214
原创 网易2018校招内推编程题_疯狂队列
[编程题] 疯狂队列时间限制:1秒空间限制:32768K小易老师是非常严厉的,它会要求所有学生在进入教室前都排成一列,并且他要求学生按照身高不递减的顺序排列。有一次,n个学生在列队的时候,小易老师正好去卫生间了。学生们终于有机会反击了,于是学生们决定来一次疯狂的队列,他们定义一个队列的疯狂值为每对相邻排列学生身高差的绝对值总和。由于按照身高顺序排列的队列的疯狂值
2017-08-15 10:52:28 447
原创 网易2018校招内推编程题_堆棋子
[编程题] 堆棋子时间限制:1秒空间限制:32768K小易将n个棋子摆放在一张无限大的棋盘上。第i个棋子放在第x[i]行y[i]列。同一个格子允许放置多个棋子。每一次操作小易可以把一个棋子拿起并将其移动到原格子的上、下、左、右的任意一个格子中。小易想知道要让棋盘上出现有一个格子中至少有i(1 ≤ i ≤ n)个棋子所需要的最少操作次数.输入描述:输入
2017-08-15 10:46:32 2426
原创 2017 Multi-University Training Contest - Team 6 Kirinriki
技巧性暴力解法,我觉得挺优美的。但是我一开始方向就错了,最后还是没搞出来,水平太差,当然没有我这个渣渣怎么承托出大佬的厉害。因为两个子串不能重叠,所以他们一定会关于某个点对称。枚举每一个对称点,设立两个变量往两头进行迭代,把两个迭代所指向的字母差异值进行累加。当某次累加超过m时,那就记录这个答案,再把最先进入的字母去掉(也就是把他们的差异值减去),直到小于或等于m。最后答案取最大值
2017-08-11 16:34:27 298
原创 基础数据结构算法_DFS and BFS
图的常用遍历方法无非就是BFS和DFS,这也是常用的搜索方法。BFS全称为广度优先搜索,以广度优先,一般采用队列辅助实现。DFS全称为深度优先搜索,以深度优先,一般采用递归实现。这两个用途很广,比如对于优先搜索的题目,常以BFS+优先级队列的形式。还有二分图分的匹配采用BFS比DFS效率高,以及多状态搜索也采用BFS。下面给出一道多状态搜索的题目:假设一个探
2017-08-10 09:29:34 683
原创 大数乘法模板
虽然基本用不上,还是写一下把。 #include<iostream> #include<cstdio> #include<vector> #include<string> using namespace std; string a,b,c; vector<int> aa,bb,cc;
2017-08-09 09:39:32 435
原创 CodeM 数码
给定两个整数 l 和 r ,对于所有满足1 ≤ l ≤ x ≤ r ≤ 10^9 的 x ,把 x 的所有约数全部写下来。对于每个写下来的数,只保留最高位的那个数码。求1~9每个数码出现的次数。 输入描述: 一行,两个整数 l 和 r (1 ≤ l ≤ r ≤ 10^9)。输出描述: 输出9行。第 i 行,输出数码 i 出现的次数。输入例子1: 1 4输出例子1: 4 2 1 1
2017-08-08 10:45:13 753 1
原创 CodeM 黑白树
题目描述:一棵n个点的有根树,1号点为根,相邻的两个节点之间的距离为1。树上每个节点i对应一个值k[i]。每个点都有一个颜色,初始的时候所有点都是白色的。你需要通过一系列操作使得最终每个点变成黑色。每次操作需要选择一个节点i,i必须是白色的,然后i到根的链上(包括节点i与根)所有与节点i距离小于k[i]的点都会变黑,已经是黑的点保持为黑。问最少使用几次操作能把整棵树变黑。 输入
2017-08-05 09:50:09 607
原创 2017 Multi-University Training Contest - Team 4 Counting Divisors
这个题目不算太难,就是几个关键步骤。1.进行筛选素数,这里当然不能到10^12 要开方,最后对每个数而言,大于他根号倍的素数最对就一个,也可能没有。2.我们已经把要用素数求出来了,如果直接对L-R的每个数进行分解的话,对于一些因子比较少的数来说会进行大量无用操作。这里我们用倍数进行筛选,用prime【】表示素数数组,用ar【】表示LR的每个元素,枚举prime数组,把ar【】里面是他倍
2017-08-04 19:22:06 242
原创 2017 Multi-University Training Contest - Team 3 Kanade's sum
这个题目要反过来计算每个数字对那些区间的贡献。但是边界处理比较恶心(我比较水)。至于过程官方说的比较明白了。先把所有元素存入一个链表中,但是用一个数组把每个元素的大小顺序记录下来(从小到大)。然后暴力枚举最小的那个元素,唯一的一种可能是里面所有元素都比他大,这样只需枚举k次。然后把这个元素删除,在枚举链表里面当前最小的元素,那么所有元素又都比他大。然后用记录的下标计算该数对
2017-08-02 19:17:01 367
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人