- 博客(130)
- 收藏
- 关注
转载 HDU 6050
Funny Function Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
2017-08-26 16:49:41
239
转载 HDU 6047
题意是说有两个数组,a和b,然后让你扩展a数组后面的n位,扩展的方法是先在b数组中随意挑出一个数(这个数只能挑一次),之后ai≤max{aj-j│bk≤j 为了让a数组后面和最大,这里肯定不能小于max,选的一定是这个区间内最大的一个数,先把aj-j都处理出来,然后再去赋值。在挑选b的时候,因为越往后越是减出来的数字,所以为了保证得到最大的,b数组必须从最小的一个数开始拿起,这样在处理的
2017-08-26 16:47:29
214
原创 虚树习题
什么是虚树?比方说有一棵很大很大的树但是每次会指定一些节点,这些点的个数很少,我们需要在树上进行DPn的范围会达到百万级别然而点的个数不会超过1000个显然很多点都是没有用的点我们需要把信息浓缩一下,构造出一棵新的树出来恩。那么哪些会是虚树上的关键节点呢?除了给定的点外还有一些点的LCA不会构造怎么办?!不用担心!构造
2017-08-25 15:44:01
360
原创 RMQ算法浅析
RMQ算法,是一个快速求区间最值的离线算法,预处理时间复杂度O(n*log(n)),查询O(1),所以是一个很快速的算法,当然这个问题用线段树同样能够解决。问题:给出n个数ai,让你快速查询某个区间的的最值。算法分类:DP+位运算算法分析:这个算法就是基于DP和位运算符,我们用dp【i】【j】表示从第 i 位开始,到第 i + 2^j -1 位的最大值或者最小值
2017-08-25 15:38:15
239
转载 OJ提交题目中的语言选项里G++与C++的区别
一、OJ提交题目中的语言选项里G++与C++的区别http://www.th7.cn/Program/cp/201405/199001.shtml首先更正一个概念,C++是一门计算机编程语言,G++不是语言,是一款编译器中编译C++程序的命令而已。那么他们之间的区别是什么?在提交题目中的语言选项里,G++和C++都代表编译的方式。准确地说,选择C++的话,意味着你将
2017-08-23 20:41:22
314
转载 写给立志做码农的大学生
确定方向选择比努力更重要。 关于方向的选择其实越早确定越好,生活中我们要面临无数个选择,前几天看的一个黑客相关的美剧中有句台词说的不错:life is binary. 生活就是二进制,一个个0101组成的。每一次抉择,选了就是1,不选就是0。另外也有一句话说:“人一生要面临很多选择,但是真正能决定你命运的只有几个”。没错其实就是这样。 如果你是计算
2017-08-23 16:45:32
244
原创 多校赛01
题意 输入m 输出2m的位数-1设2m=10a+b,其中a是整数,b是小数.那么a就是2m的位数-1两边同时取对数log102m=log1010a+bm∗log102=(a+b)∗log1010⌊m∗log102⌋=acode:#include#includeint main(){ double lg=log10(2.000
2017-08-23 01:34:00
206
转载 hdu 4858 图的模拟+vector 简单题
http://acm.hdu.edu.cn/showproblem.php?pid=4858项目管理Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2367 Accepted Submission(s)
2017-08-22 17:19:13
276
转载 STL 的题目练习(HDU1263 HDU1075 HDU 1004 ZOj 2724)
现在STL对我熟了,我对它还不熟,加油啊 这种循环输入的不清空容器则要在主函数中定义…… map容器运用STL,由于map存储是按KEY值的字母顺序排序,所以这里呢省去了排序的步骤HDU 1263[cpp] view plain copyprint?#include #include #include #include
2017-08-22 16:25:11
412
转载 HDU上的专题训练(背包问题-线段树+树状数组+DP优化+网络流+字符匹配+最短路+矩阵
就是DIY上的专题训练【背包问题】2602 Bone Collector 1114 Piggy-Bank 1203 I NEED A OFFER!1171 Big Event in HDU1059 Dividing 2844 Coins 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 2159 FATE 1561 T
2017-08-22 15:02:53
889
转载 Trie树(字典树)
1. Trie树Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。Trie的核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。它有3个基本性质:
2017-08-21 20:27:35
369
转载 HDU 1728 逃离迷宫 + HDU 1072 Nightmare
KIDx 的解题报告HDU 1728 逃离迷宫 http://acm.hdu.edu.cn/showproblem.php?pid=1728对于代码31行,为什么等于不能随便剪掉如果剪掉就会出现下图结果:【假如转弯数k=1,起点终点如图】那么如果你的代码是优先向右搜索就会出错红色的线是先搜的,由于最多转一次弯,所以不合题意;蓝色是后搜的,因为遇到转弯数相等所以不往下
2017-08-21 20:21:31
261
转载 HDU1072-Nightmare【广度优先搜索】
NightmareTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 7069 Accepted Submission(s): 3397Problem DescriptionIgnatius had a nightma
2017-08-21 20:19:08
201
转载 BFS/DFS 模板 代码
[cpp] view plain copyprint?#include #include #include #include using namespace std; const int maxn=100; bool vst[maxn][maxn]; // 访问标记 int dir[4][2]={0,1,0,-1,1,0,-1,0}; // 方向向量
2017-08-21 20:07:05
993
转载 排列组合(四)
转自:http://wuchong.me/blog/2014/07/28/permutation-and-combination-realize/全排列和全组合实现记得@老赵之前在微博上吐槽说,“有的人真是毫无长进,六年前某同事不会写程序输出全排列,昨天发邮件还是问我该怎么写,这时间浪费到我都看不下去了。” 那时候就很好奇全排列到底是什么东西,到底有多难?今天复习的
2017-08-21 17:13:58
228
转载 排列组合(三)
1 . 无重复元素的全排列当然stl有next_permutation()函数,用起来更方便[cpp] view plain copyprint?#include #include using namespace std; int n,a[100],count; void permutation(int k){ if(k==n){
2017-08-21 17:11:29
237
转载 排列组合(二)
[cpp] view plain copyprint?1.dfs回溯法输出组合 1.dfs回溯法输出组合[cpp] view plain copyprint?#include #include #include #include using namespace std; int visit[10
2017-08-21 17:07:42
307
转载 排列组合(一)
方法一:递归求解(1)、从 n 个元素中,选择 m 个元素的组合 #include using namespace std; int ans[10],a[20],m,n; bool visited[20]; void output() { int i; for(i=1;i" "; coutendl; } void work(int i,i
2017-08-21 17:04:52
267
转载 卡特兰数的应用(易懂版)
参考http://blog.csdn.net/wuzhekai1985四种典型的应用:(括号化/出栈顺序/凸多边形三角划分/给顶节点组成二叉树的问题)1、递推公式令h(0)=1,h(1)=1,catalan卡特兰数满足递推式:h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)h(0) (n>=2)例如:h(2)=h(0)
2017-08-21 16:42:24
496
转载 HDU1023 (卡特兰数入门)
Train Problem IITime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 2830 Accepted Submission(s): 1562Problem DescriptionAs we all k
2017-08-21 16:27:17
277
转载 【算法小总结】广度优先搜索剖析
广度优先搜索以前一直用搜索用的都是深搜,因为听说有很多题能用广搜就能用深搜什么的。今天老老实实的去看广搜了,结果发现我之前想的太天真的,DFS和BFS不仅在性质上不同,而且对于某些题和某些情况,用BFS比DFS要快(不是绝对)。 今天好好说道说道这个BFS(广度优先搜索) 很多问题(如过迷宫问题),每走下一步,都要考虑很多种情况,这个时候,就要每一步每一步的去试探,去找到合适的
2017-08-20 13:55:11
442
转载 滚动数组
使用范围:使用在递推或动态规划中 作用:节约空间注意:时间上没什么优势举例1)作用在一维数组:普通方法:[cpp] view plain copyprint?int d[]=new int[100]; d[0]=1;d[1]=1; for(int i=2;i{ d[i]=d[i-1]+d[i-2] }
2017-08-19 04:46:36
418
转载 卡特兰数的应用(二)
Catalan数——卡特兰数 今天阿里淘宝笔试中碰到两道组合数学题,感觉非常亲切,但是笔试中失踪推导不出来后来查了下,原来是Catalan数。悲剧啊,现在整理一下一、Catalan数的定义令h(1)=1,Catalan数满足递归式:h(n) = h(1)*h(n-1) + h(2)*h(n-2) + ... + h(n-1)h(1),n>=2该递推关系的解为:h(n) = C(2n
2017-08-18 20:31:25
224
转载 卡特兰数的应用
卡特兰递推公式1. 2. 3. 4. 5. 卡特兰数的应用1. 由n个+1和n个-1构成2n项其部分和满足的序列个数等于第n个Catalan数。假设不满足条件的序列个数为,那么就有。而对于不满足的序列,必然存在某一个奇数位使,而且+1的个数恰好比-1的个数少一个,此时我们将前k项中的+1变为-1,将-1变为+1,那么就得到一个有(n+1)个+1和
2017-08-18 20:17:42
451
转载 HDU 动态规划(46道题目)
HDU 动态规划(46道题目)原作者网址:http://www.cppblog.com/doer-xee/archive/2010/01/28/102629.html#Post先标记 以后慢慢学习。Robberies http://acm.hdu.edu.cn/showproblem.php?pid=2955 背包;第一次做的时候把概率当做背包(放大100000
2017-08-18 19:14:11
412
转载 分割问题
(1) n条直线最多分平面问题 题目大致如:n条直线,最多可以把平面分为多少个区域。 析:可能你以前就见过这题目,这充其量是一道初中的思考题。但一个类型的题目还是从简单的入手,才容易发现规律。当有n-1条直线时,平面最多被分成了f(n-1)个区域。则第n条直线要是切成的区域数最多,就必须与每条直线相交且不能有同一交点。这样就会得到n-1个交点。这些交点将
2017-08-18 16:19:47
180
转载 递推专题(一)HDU2044——2050
在Hdu上是下面几题:Hdu 2041 超级楼梯下面是解题报告(因为有的题有点水,和贴发)Hdu 2044 一只小蜜蜂... 分析:数一下前几种可能的走法,不难发现这是个斐波那契数。但是题目给定任意两个数a和b(ao(╯□╰)o:只知道是斐波那契数,但是布吉岛斐波那契数数的增长很快,很容易爆int。下面是代码:[html] view pl
2017-08-18 15:35:40
254
转载 菜鸟都能理解的线段树入门经典
线段树的定义首先,线段树既是线段也是树,并且是一棵二叉树,每个结点是一条线段,每条线段的左右儿子线段分别是该线段的左半和右半区间,递归定义之后就是一棵线段树,图示如下图1.线段树示意图定义线段树的数据结构struct Line{ int left, right, count; Line *leftChild, *rightChild;
2017-08-18 15:25:07
666
转载 菜鸟都能理解的KMP算法
KMP算法其实是一个O(n)的字符串匹配算法A = "ababacbacab"B = "baca"假设位置从1开始这样可以说B是A的一个子串,首先我们想到的办法是枚举A的位置,比如1.首先枚举位置A[1],即字符'a',然后从A[1]开始比较"abab"是否等于"baca",显
2017-08-18 15:21:28
533
转载 大数加法模板
提出问题:为什么要提出大数的运算?(注Java中有大数类,这里不再讲解,题目代码中略有java代码)答案:因为计算机的数字类型是有限制的,例如int:2^32-1; long long 2^64-1;(以C++数据类型为例),因此在某些运算中需要高精度的运算,此时大数的模拟运算就应运而生了。这里只谈一下大数的加法,首先给出大整数的加法,再给出大实数的加法。1、大整数加法的模拟,这里
2017-08-17 17:02:53
345
转载 HDU2057(__int64 与long long 的区别)
问题链接:HDU2057 A + B Again。入门训练题,用C语言编写程序。投机取巧,按照许多人的做法来做,程序是AC了。即便如此,也是一脸困惑,不知道解了这种题意义何在?因为定义变量的类型是__int64,十分的不满意。还是希望用long long定义变量,但是输入输出格式。看一下下表,可以知道__int64 与long long 的区别。变量定义输出方式
2017-08-17 02:52:15
420
转载 hdu 2089(初学数位DP)
其实是做topcoder的时候碰到不会的题,看人家说要用数位dp,所以拿http://acm.hdu.edu.cn/showproblem.PHP?pid=2089来学习了一下数位dp适合在一段数的区间内找出满足某些条件的数的个数,这个时候往往不能之间遍历,肯定会超时,则一般使用数位dp来解决数位dp的常见形式是dp[i][j],表示开头是j的i位数满足条件的有多少个,当然也有其他dp[i
2017-08-17 02:37:55
361
转载 #pragma warning(disable 4786)
此warning产生的原因是因为标识符过长,超过了最大限定255个字类名超过了255个字,使用时就会报4786的waring。在使用STL(C++标准模板库)的时候经常引发类似的错误,尤其是vector,map这类模板类,模板中套模板,一不小心就超长了。解决方法有两种,一种是直接定义别名: #ifdef _DEBUG #define VeryLongClassNameA A
2017-08-17 01:17:57
336
转载 【背包专题】01背包
暑假集训开始了,按照队里的分配,我是弄DP的,嘛,于是我又一次的开始了从01背包开始学习,昨天将杭电的几道01背包重新做了一遍,下面讲讲我自己对于01背包的理解。 首先01背包题目的雏形是有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。从这个题目中可以看出,01背包的特点就是:每种物品仅有一件,可以选择放或不放。
2017-08-16 20:38:35
282
转载 HDU2036 多边形面积模板
利用向量叉乘:三角形ABC面积可以利用向量 (↑AB) ×(↑AC)*(1/2)得出,对于多边形,可以随意选取多边形某一点为源点然后一次计算.对于如下:的多边形我们可以以P1为扇面中心,连接P1Pi就得到N-2个三角形,由于凸性,保证这些三角形全在多边形内,那么,这个凸多边形的有向面积: A=sigma(Ai) (i=1…N-2)
2017-08-16 19:59:16
215
转载 一般筛法求素数+快速线性筛法求素数
TAG 素数 数论素数总是一个比较常涉及到的内容,掌握求素数的方法是一项基本功。基本原则就是题目如果只需要判断少量数字是否为素数,直接枚举因子2 。。N^(0.5) ,看看能否整除N。如果需要判断的次数较多,则先用下面介绍的办法预处理。 一般的线性筛法首先先介绍一般的线性筛法求素数[cpp] view plain copy
2017-08-16 15:50:14
320
转载 hdu1071(抛物线弓形面积阿基米德算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1071题意:给出抛物线的顶点和它与一直线的两交点,求他们围成的面积; 思路:可以直接求出他们的方程式,再积分,这个方法就不说了; 偶然看见另一个解法,觉得蛮有意思的,就记一下好了。。抛物线与直线为成的面积等于直线的平行线与抛物线的切点和该直线与抛物线两交点组成的三角形面积 s
2017-08-15 17:06:30
4447
转载 线段树基础大入门
线段树的入门级 总结 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。 对于线段树中的每一个非叶子节点[a,b],它的左儿子表示的区间为[a,(a+b)/2],右儿子表示的区间为[(a+b)/2+1,b]。因此线段树是平衡二叉树,最后的子节点数目为N,即整个线段区间的长度。 使用线段树可以
2017-08-15 15:16:13
228
转载 线段树模板(刘汝佳版本)
一、线段树(点修改)Update(x,v): 把Ax修改为vQuery(L,R): 计算区间[qL,qR] 最小值。代码:[cpp] view plain copyprint?// Dynamic RMQ // Rujia Liu // 输入格式: // n m 数组范围是a[1]~a[n],初始化为0。操作有m个
2017-08-15 15:13:46
2201
1
转载 HDU 2110 (母函数)
Problem Description话说上回讲到HDU大战东洋小苟,结果自然是中方大胜,这一战也使得海东集团在全球同行业中的地位更加巩固。随着集团的发展,很多创业时期的元老逐步功成身退,先是8600移民海外,然后是linle夫妇退隐山林,逐渐的,最初众多的元老只剩下XHD夫妇和Wiskey三人了。到了2020年,因为扩张过度加上老鼠数量逐年减少,公司的发展遇到了前所未有的危机,此时集团已
2017-08-15 15:08:49
256
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅