自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

taotao 的大学墓志

keep thinking! keep learning!

  • 博客(324)
  • 资源 (1)
  • 收藏
  • 关注

原创 makefile 学习笔记

参考链接: 阮一峰 Make 命令教程ac.out: ac.cpp @g++ -W -S ac.cpp; \ g++ -W -O2 ac.cpp -o ac.out.PHONY: cleanclean: @rm *.out *.s *.txt# 注释# 变量与赋值# .PHONY: test # 假目标# txt = hello world!# t...

2018-08-25 23:45:01 213

原创 HDU 6348 序列计数(2018百度之星资格赛04,dp+树状数组)

题目链接序列计数给定一个 nnn 排列,求长度为 lll 的排列总数(l=1,2,3…,nl=1,2,3…,nl = 1,2,3\dots , n)分析code#include <bits/stdc++.h>using namespace std;#define MAXN (10009)#define MOD 1000000007...

2018-08-12 20:51:51 277

原创 B-Tree 设计与实现总结--《算法导论》

总结自《introduction to algorithm》第3版,第18章的B-Tree。实现是用的java代码定义B-Tree 的高度B-Tree get 查B-tree insert 增插入主代码删除完整代码B-Tree其实是一种多路平衡树,主要是用在对辅存中的数据做增删改查,所以更大的时间消耗其实是在读写辅存。不过为了实现的简便我在实现中并不考虑辅存...

2018-08-09 20:38:45 720 1

原创 hihocoder #1799 : 基因合成(最长回文子串+暴力剪枝)

题目链接#1799 : 基因合成分析可以递归的想,如果有回文,那么肯定是做2操作划算一些,记R[i]R[i]R[i] manacher 算法中以 iii 为中心的回文串半径,注意这里只能是偶数长度的回文串。具体来说 str[l,r] 的操作代价为cost(l,r)=minni=1{r−l+1+1+cost(i,i+R[i]/2−1)}cost(l,r)=mini=1n{r−l+1+...

2018-08-05 23:49:10 252

原创 manacher's Algorithm: 寻找最长回文串的O(n) 算法

这是一种 时间复杂度为 O(n)O(n)O(n) 的高效的求解字符串回文子串的动态规划算法。 网上文章一大堆,我主要参考 : 最长回文子串——Manacher 算法他的思想如下:算法描述code复杂度分析练习算法描述对一个字符串,str,(e.g: str = “agga”) 由于他的回文子串有两种情况,1是以字符串中字母为中心,即长度为奇数的串,2是以间隔为中...

2018-08-05 23:38:11 439

原创 [Java Collections Framework] 浅析java 集合框架(七) : Set,HashSet,LinkedHashSet,TreeSet

其实这部分只需要一句话,你就明白了,HashSet 的底层是一个HashMap, 也就是说所有操作都和HashMap一样,就将value 设为了 一个固定的Object。。。。,同理TreeSet也一样,所以源代码不足500 行,而HashMap一个文件就接近3000行Set interface这部分比较有意思的是他提供的交并补操作 s1.containsAll(s2) — ...

2018-07-31 15:30:35 224

原创 Codeforces Round #500 D. Chemical table(图论)

题目链接D. Chemical table给一个 nXm,n≤2e5,m≤2e5nXm,n≤2e5,m≤2e5nXm, n \le 2e5,m\le 2e5 的格子,其中有 qqq 个点 q≤min{n∗m,2e5}q≤min{n∗m,2e5}q \le min\{n*m,2e5\}, 有一种操作,存在这样的三个点 : (r1,c1),(r2,c1),(r1,c2)(r1,c1),(r...

2018-07-31 14:48:56 234

原创 [Java Collections Framework] 浅析java 集合框架(六) : TreeMap

特性higherEntry,ceilingEntry迭代器的时间复杂度疑问特性底层是红黑树,算法基于经典书籍 《Introduction to Algorithm》key 需要实现comparable 接口,或者提供comparatorViews: - EntrySet: Set OF Map.Enty OF Key-Value - ...

2018-07-30 15:41:35 250

原创 [Java Collections Framework] 浅析java 集合框架(五) : Map,HashMap,LinkedHashMap

MapviewmultimapMap.entryHashMapMap这部分可以参见官方文档的介绍The Map Interfaceview有意思的是这个 视图集 View, keySet — the Set of keys contained in the Map. values — The Collection of val...

2018-07-30 10:42:55 310

原创 [Java Collections Framework] 浅析java 集合框架(四) : priorityQueue

priorityQueue 是一个堆 (heap) 的数据结构,底层就是一个数组,逻辑上是一棵完全二叉树。并且PQ的堆顶idx 是0。也就是说 对于任意的节点,xxx, lc=2x+1,rc=2∗(x+1),par=(x−1)>>1lc=2x+1,rc=2∗(x+1),par=(x−1)>>1lc = 2x+1,rc = 2*(x+1),par = (x-1)>>1, 这里...

2018-07-27 16:51:10 198

原创 [Java Collections Framework] 浅析java 集合框架(三) : ArrayList,LinkedList,ArrayDeque源码解析

原本以为我能深入解析,源码,发现我还是太native了,,,有很多深入的方法和设计我发现并不是短时间内能理解了,所以还是改为浅析算了。ArrayListtoArraysublistLinkedListArrayList transient Object[] elementData; // non-private to simplify nested cl...

2018-07-27 14:53:24 763

原创 [java 源码思考] O(1)时间找到一个数的最小二次幂(Find the best power of two)--ArrayDeque

就是说给定一个数 nnn, 找到 x,s.t.n&lt;x,x=2kx,s.t.n&lt;x,x=2kx,s.t. n < x, x = 2^k打开 ArrayDeque,我看见在分配元素的时候有这样一段代码 private void allocateElements(int numElements) { int initialCapacity = MIN_INITI...

2018-07-27 11:22:15 369

原创 [Java Collections Framework] 浅析java 集合框架(二) : 线性结构(List,Queue,Deque)

本篇文章总结自 Java Collections Framework Tutorial interfaceCollection Interface基本操作遍历集合批处理数组操作ListQueueDequeCollection Interface基本操作int size(), boolean isEmpty(), boolean contains...

2018-07-26 16:43:42 377

原创 [Java Collections Framework] 浅析java 集合框架(Collection Framework)(一) : 接口概述

我把java Collection 里面的所有类做了一张 UML 图(去掉了 aggregation 关系)可以看到里面主要分了 4部分 :Iterator辅助类 : Arrays, CollectionsCollection ( List, Queue,Set)Map值得注意的是,Map 和Collection(以后无特别说明类均指以上4个部分中的一部分) 并没有继承和...

2018-07-25 16:17:18 368

原创 阶乘中末尾0的个数和及其扩展--记一道牛客小白月赛题

题目描述题目链接求 1!2!…n!1!2!…n!1!2!\dots n! 中末尾0的个数。分析首先需要解决的是 n!n!n! 末尾0 的个数,我们记 : f(n):n!f(n):n!f(n):n! 中末尾0 的个数那么原问题就变成了: ans=∑ni=1f(i)ans=∑i=1nf(i)ans = \sum_{i=1}^nf(i), 记 S(n)=∑ni=1f(...

2018-07-23 14:11:36 359

原创 [OS] 分段和分页存储管理的比较

分段分页分段分段存储管理引入主要是为了方便 用户(程序员)编程的需要分段对程序猿是可见的,即编程的时候断的大小完全是在写程序的时候决定的,段起始地址可以从任意地址开始(e.g.:代码段数据段,堆栈段.)分段存储方式下,源程序中的(段号,段内偏移)经过链接编译后仍然保持二维地址结构分页从固定分区到动态分区,从分区到分页都是为了提高内存使用效率。分页对用户是不...

2018-06-26 16:09:24 672

原创 [OS] 地址重定位

静态重定位动态地址重定位reference在操作系统中我们知道地址生成主要有以下3个阶段: 编译期: 对于各个目标模块儿生成一张符号表记录各个符号名及在本模块中的相对地址链接期: 对于各个模块解析内部和外部符号表,生成可重定程序,及将其中涉及地址引用的地方转换为数值地址,存放于磁盘中,可在装入主存或执行时重定位,生成物理地址(实际的主存中的地址),由于他在内存中的地...

2018-06-26 15:15:10 790

原创 [dfs+组合数学] Codeforces Round #491 (Div. 2) E. Bus Number

题目链接E. Bus Number分析题解,官网已经有啦,我就不详细写了。对于每种数字,就算他的个数,那么原题就转化为每种数字至少出现一次并且不包含前导0的排列个数了,枚举(dfs)出每种数字的出现个数,然后就算组合出的不包含前导0的数的个数,后一个问题见这篇blog给定每种数字的个数计算不包含前导0的数的个数前一个问题就是直接dfs,我昨晚打比赛时,出了点错误有啦重复枚举,见...

2018-06-24 17:08:01 292

原创 [组合数学]给定每种数字的个数计算不包含前导0的数的个数

这个问题源于昨日的 CF E题。让我想了好久.问题定义给定每种数字(0,1,2,3,…,90,1,2,3,…,90,1,2,3,\dots, 9)的个数 ci:i有ci个ci:i有ci个c_i: i有c_i个,问用完其中每种数字,组合成一个数,其中不包含前导0的数有多少个。比如:c={1,1,1,0,0,0,0,0,0,0}c={1,1,1,0,0,0,0,0,0,0}c = \{...

2018-06-24 16:46:20 1102

原创 中断、异常、和系统调用的区别总结

中断、异常、和系统调用在OS和计算机组成原理中都经常被提到,很难区分,并且不同版本的教材往往有不同的说法。这里主要采用《CSAPP》中的说法区分一下中断、异常、和系统调用。主要内容如下:术语说明异常流异常流的处理异常与过程调用的区别异常流的分类中断陷阱故障终止Linux/x86-64 中的异常总结术语说明逻辑控制流: 指的是程序从开始第一条...

2018-06-14 21:34:09 12759

原创 [java language] 浅析java IO Stream

这里简要总结java io 流相关操作,不涉及底层源码。java 中的IO 流机制简单来说就是将数据源从一个地方输出到另外一个地方.这里主要总结3种流,字节流,字符流,缓冲流。测试说明:1M 字符文件机器是 Surface pro4 4+128ByteStream其实ByteStream才是常规意义上的Stream, 是面向字节的,所以对于读入文件是字符来说通常非常慢。读...

2018-06-10 20:36:26 375

原创 应对高校C++考试(六) : 模版

这节是最后一节了,讲模版 (template)所有文章目录在这里应对高校C++考试(一) : 从C到C++ 应对高校C++考试(二) : 函数 应对高校C++考试(三) : 指针和引用 应对高校C++考试(四) : 认识类 应对高校C++考试(五) : 运算符重载与有元本节内容,实现模版类和模版函数目录模版函数模版类总结模版 template 的作用...

2018-06-06 11:31:06 737

原创 应对高校C++考试(五) : 运算符重载与有元

这里谈谈c++里面两个特别的语法糖 —-运算符重载和有元。为什么说是特别?难以理解,特别装逼,完全可用其他方式替代,比如运算符重载就是一个函数,完全可用函数替代,而且重载的运算符函数根本无法重名字理解函数的意思….很多语言都没有,比如java 不会有这么复杂的事情,感觉像块鸡肋如果不是考试,我永远不会学这种东西。目录运算符重载重载 []重载 &lt;&lt; 流输入输...

2018-06-06 00:56:16 540

原创 应对高校C++考试(四) : 认识类

这一讲初步讲解关于类的东西,我们先来看一个日期类, Date 的设计,Date 有一个有年月日成员,然后有一些访问成员函数,看不明白不要紧,我们慢慢来理解下面这段代码就行了,这一节就是理解这段代码中的语法类的相关语法类的声明类的成员变量和成员函数访问控制成员函数常量成员函数构造函数默认构造函数析构函数复制构造函数(copy construct function)...

2018-06-05 19:46:33 727

原创 应对高校C++考试(三) : 指针和引用

这节主要讲指针和引用的区别指针引用常引用引用作为函数参数引用作为返回值指针c++ 里面的指针和c语言完全一样。 理解指针需要理解地址和值的区别。 T* 就表示到类型 T 的地址,例如:#include &lt;iostream&gt;using namespace std;int main(){ char c = 'a'; char...

2018-06-05 00:50:28 755

原创 应对高校C++考试(二) : 函数

这节讲c++的某些特殊函数语法糖,主要讲 函数递归调用,默认参数,函数重载。目录函数声明函数的递归调用默认参数函数重载函数声明你应该很熟悉声明一个函数的方法&amp;lt;返回值类型&amp;gt; &amp;lt;函数名字&amp;gt;(变量类型){.....return &amp;lt;返回值类型相同的值&amp;gt;}尖括号中是你需要替换的东西。为什么要引入函数呢? 如果你经常编程...

2018-06-04 09:48:09 941

原创 应对高校C++考试(一) : 从C到C++

写在前面本系列是为了应对敝校C++考试帮同学辅导,而写。所有内容仅涉及C++基本语法,加之我并不擅长C++(ps: 准备以后将java作为发展方向 :) .)而且长期只是 C with STL 选手,所以所写均很简单。不过好在考试仅考语法,语法这东西就像说明书,其实用到的时候再学也是不会影响程序设计的。这不是c++程序设计,而是简单的c++语法总结……使用前请保证:已掌握基本c语...

2018-06-04 00:39:08 3672

原创 ACM算法竞赛生涯总结---ACM-ICPC墓志铭

其实去年打完 ECL-FINAL就应该写这个墓志铭了的,奈何当时由于各种原因,心情不好,前途无望,加上考试周在即就一直没有写。算起来我的算法竞赛生涯占了整整1.5年,3/8 的大学生涯。大学以前是一点也不了解这个东西的,甚至没有接触过计算机,大学所学专业(信息与计算科学)也与计算机不太沾边。大一上期在MOOC上学了C语言,接着学了C++、JAVA算是有基本的编程能力了吧,大一下学了THU在学堂...

2018-05-28 12:34:29 8793 10

原创 《黑客与画家》--2黑客与画家

这本书果然充满了离经叛道的言论,作者 Paul Graham 果然”骨骼清奇”在这篇文章中作者说出了,黑客与画家,等等艺术家的共性,也说出了与科学家的区别。记得黑客曾经也是我的梦,在我对计算机一无所知的时候,我也想着自己有着一日能成为黑客,那时自己并不知道黑客是什么,只知道,是很优秀的程序设计者,对计算机世界一无所知的人。直到后来入了ACM这个大坑,忘了曾经还有这个梦(:( ), 不过,A...

2018-05-25 21:59:25 853

原创 latex 插入java 代码模版

废了好大劲 把下面那堆东西添加到头文件就好了,(PS :( UI真难做) [TOC]模版 \usepackage{listings}\usepackage{color}\usepackage{xcolor}\definecolor{dkgreen}{rgb}{0,0.6,0}\definecolor{gray}{rgb}{0.5,0.5,0.5}\definecolor{ma...

2018-05-20 20:31:15 5814 5

原创 LeetCode Weekly Contest 85 题解+总结(模拟,概率dp,dfs)

这次题目依旧很简单,很遗憾没能AK,立个 flag 连续AK一个月后不再打LC题目依旧是 模拟+ 简单dp+hard是一个图论基础836. Rectangle Overlap(easy)java code838. Push Dominoes(模拟,easy)技巧总结java code837. New 21 Game(概率dp,medium)java cod...

2018-05-20 14:56:41 768

原创 [几何]求两个矩形的交

描述分析题目链接描述设两个矩形 r1: [(minx1,miny1),(maxx1,maxy1)][(minx1,miny1),(maxx1,maxy1)][(minx1,miny1),(maxx1,maxy1)] r2: [(minx2,miny2),(maxx2,maxy2)][(minx2,miny2),(maxx2,maxy2)][(minx2,mi...

2018-05-20 14:25:46 595

原创 《黑客与画家》-1 为什么书呆子不受欢迎?

作者Paul Graham 给了这个问题非常深刻的洞见: 他们的脑袋里想着别的事情,他们的注意力都放在读书或者观察世界上面,而不是穿衣打扮,开晚会上面。 …… 那些受欢迎的孩子从小就在琢磨如何受欢迎,打心眼里追求的就是这个,但是,书呆子从小琢磨的却是如何更聪明,心底里也是这样最求的。在中国的教育中,似乎小学和初中教育是这样的。这群人不太会受到关注,老师也不会放更多的精力在...

2018-05-20 14:10:08 596

原创 Codeforces Round #480 (Div. 2) E. The Number Games (Sparse Table + greedy)

题目链接分析总结java code题目链接E. The Number Games分析题目是比较好的题首先应该想到贪心的策略,对于 iii 来说他爱的贡献是指数的即 2i2i2^i, 那么,我们可以这样想,尽量保留最大的 iii, 而且答案要求是一个联通图,因此我们会保留 iii 到树根路劲上所有节点。 for i = n-1 to 1,判断i是...

2018-05-17 21:02:49 378

原创 Codeforces #481 D. Perfect Groups (number theory, math,dp) (medium)

题目链接分析题目链接D. Perfect Groups分析首先考虑完全平方数 sss 的特征, 那么有 sss 的任意一个质因子的次数一定是偶数,也就是说对于 ai=pr11…prkkai=p1r1…pkrka_i=p_1^{r_1}\dots p_k^{r_k} 我们可以去掉偶数次幂 e.g.: 20=2∗2∗520=2∗2∗520 = 2*2*5 ,20可...

2018-05-15 20:01:11 316

原创 java ACM竞赛IO优化Petr模板

相信ACMer 用java的时候不少遇到超时的现象吧,今天做CF的时候就遇到了,$10^5$ Int 就超1s了,根本不能忍,这里留下一个petr 大佬的模板,果然速度提高10倍输入输出例子输入class InputReader{ private final static int BUF_SZ = 65536; BufferedReader in; StringToke

2018-05-09 20:17:18 2043

原创 hihocoder #1400 : Composition 2017微软秋招(dp)

题目链接分析java code题目链接#1400 : Composition分析想到dp应该还是不难的 以字符 ccc 结尾的能保存的最大长度一定是,以他前一个字符结尾能保存的最优解设 cnt[c]cnt[c]cnt[c]: 以字符 ccc 结尾能保存的最大串长度。那么遍历整个串,对于其中每个字符 eee cnt[e]=max{c...

2018-05-06 19:43:00 421

原创 LeetCode Weekly Contest 83 Solution

噗~,手速太慢了这次没能AK,最后一题看错题意,我也是醉了……Positions of Large Groups831. Masking Personal Information829. Consecutive Numbers Sum828. Unique Letter StringPositions of Large GroupsPositions of Larg...

2018-05-06 11:37:44 272

原创 2017微软秋季校园招聘在线编程笔试hihocoder 1399 Shortening Sequence(异或/乱搞)

题目链接分析Java code题目链接hihocoder 1399 Shortening Sequence分析开始我以为是dp,后来发现没那么难,首先想到仅与每个数的奇偶性有关。那么我们记偶数为0,奇数为1。 那么对于这个数组来说只要有0和1同时存在我们就可以消除一对。也就是说最终仅能有一种元素存在。所以答案是元素个数多的减去小的。Java code...

2018-05-01 20:53:57 283

原创 hihocoder [offer收割机]编程练习赛57 C 逃离迷宫5(最短路,dp)

题目链接分析总结code题目链接逃离迷宫5分析其实很简单,它限制了每个点的状态并且整条路径只能够修改一次,那么我很很容易的出一个dp状态更新方程:设 u−&gt;vu−&gt;vu->v, 其中,dist[u][0/1]分别表示从起点到这里有用掉更改或者没用掉的最短距离dist[u][0/1]分别表示从起点到这里有用掉更改或者没用掉的最短距离dist[u]...

2018-05-01 19:39:27 504 1

空空如也

空空如也

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

TA关注的人

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