自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Li_Yufeng的博客

人一我百,人十我万,永不放弃!

  • 博客(83)
  • 收藏
  • 关注

原创 LeetCode 1 ~ 5 题解

题目Two Sum题意给定一个有序数组 nums 和一个目标值 target ,在数组 nums 中找出两个不同位置的数 a 和b,使得 a + b == target,返回a 和 b 在数组 nums 中的下标。题解首先用pair 将数组中的值和下标组合在一起,放在 vector 中,对vector进行排序。然后开两个指针,分别指向数组头部和尾部。相加两个指针所指元素并和 target...

2018-12-01 14:49:25 298

原创 常见计算机指令集名称辨析(Intel/AMD)

X86X86架构是Intel于1978年推出的8086处理器中首度出现的,之后又推出了80186、80286,但它们都是16位的。发展到现在,X86已经不是指具体某个指令集,而是一套向后兼容指令集架构。它代表的是一个家族,包含了16位、32位、64位指令集。X86-32、IA321985年,Intel推出了32位的80386处理器,采用的是X86-32架构,英特尔把它又叫做IA-32(In...

2018-12-01 11:37:53 3391

原创 Python爬虫(爬取百度百科)

视频网站:http://www.imooc.com/learn/563python3源码:https://github.com/zaxlct/baike_spider 程序主要分为五部分:spider_main爬虫总调度程序url_manager url管理器html_downloader html下载器html_parser html解析器html_outpute...

2018-07-22 17:50:34 853

原创 计算机专业课学习清单(书籍+公开课)

OSCSAPP(CS 15-213) xv6(MIT 6.828) 鸟哥的 LINUX 私房菜 程序员的自我修养 UNIX 环境高级编程网络计算机网络自顶向下 TCP/IP 详解 UNIX 网络编程计算机体系结构计算机组成与设计:硬件/软件接口 计算机体系结构:量化研究方法 编码:隐匿在计算机软硬件背后的语言数据库SQL 必知必会 MySQL 技术...

2018-07-06 14:50:30 5964

原创 求最长回文串的几种做法

题目传送门https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1088 https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1089法一:暴力法就是求出所有子串,然后一个一个的判断是否为回文串,最后求出最大的子串时间复杂度为O(n...

2018-06-06 18:39:41 589

原创 CSAPP Lab1-datalab

CSAPP 这本书可以说是程序员必读专业书籍了。这本书以一个 "Hello World" C语言程序为起点,通过跟踪整个"Hello World"程序

2018-06-05 15:27:42 2304 1

原创 POJ-2407 欧拉函数

题目Relatives 题意[1,n]中与n互质的个数。题解欧拉函数模版题。先找出n的质因数p1,p2 …… ,如8 = 2 * 2 * 2,12 = 2 * 2 * 3,然后求出欧拉函数phi(n) = n*(1-1/p1)*(1-1/p2) …… 。代码#include <iostream>#include <cmath>

2018-05-29 20:01:37 261

原创 MIT6.824 Lab1-MapReduce

前言Mit6.824 是我在学习一些分布式系统方面的知识的时候偶然看到的,然后就开始尝试跟课。不得不说,国外的课程难度是真的大,一周的时间居然要学一门 Go 语言,然后还要读论文,进而做MapReduce 实验。 由于 MR(MapReduce) 框架需要建立在 DFS(Distributed File System)的基础上实现,所以本实验是通过使用多线程来模拟分布式环境。虽然难度上大大降...

2018-05-08 22:53:41 2223 3

原创 《数据库系统概念》一二章学习笔记

《数据库系统概念》学习笔记书上的例子以及练习题都是用 Mysql 实现的,操作系统使用的 macOS。在使用 Mysql 遇到问题时,推荐查看官方文档 Mysql Reference Manual。第一章 引言第一章就是综述整本书要讲的知识点,让读者对数据库系统有个大体的了解。我只记了一些比较重要的知识点,其他很多知识在后面章节会有更详细的讲解。数据视图数据抽象物理层(pysical level)

2017-10-09 18:54:02 7371 2

原创 HDU-5970 推公式+分块

题目最大公约数 题解这道题 x 非常大,所以可以通过 x = sy + k, 用 y代换掉x 。 然后易证gcd(k,y) == gcd(x,y),而且这两个 gcd 计算出来的 c 也是一样的。 由于 s 的范围是[0,(x - k)/y], 所以当 x 特别大的时候,s 也特别大。s 也需要分块处理,另 s = j*c + i,i 的范围是[0, 1-c],所以可以按照 i 的不同取值进行分

2017-10-06 10:47:38 447

原创 HDU-5977 树的分治+子集枚举

题目Garden of Eden 题意求树上满足条件的点对的个数,条件是在这两点间不经过重复的点能吃到的苹果类型的总数大于 k。题解这道题和Tree 这道题相似,用树的分治的方法来做。但 Tree 算的是距离,这道题算的是苹果种类数,所以可以用二进制的方法将状态压缩一下。 还有一个地方需要注意的是,在进行路径合并的时候,需要用子集枚举的方法找到满足要求的所有路径。代码#include <algo

2017-10-03 11:17:00 539

原创 POJ-1741 树的分治

题目Tree 题意求树上两点最短距离不超过 K 的对数。题解通过树的分治的方法,从根节点自上而下开始求其不同子树上的两点通过该点的最短距离小于 K 的对数。 有两点需要注意: 1. 求某节点不同子树满足条件的两点不好直接求。可以通过先求该节点的所有子节点满足条件的个数,然后减去其子树内所有满足条件的点的个数。这个通过 dfs 很容易实现。 2. 在分治的过程中,在找某子树满足条件的点对数的

2017-09-30 15:25:57 360

原创 POJ-1655 树的重心(树形 DP)

题意定义一个点的“平衡”值等于将这个点拆去后,形成的子树中节点数的最大值。求一棵树“平衡”值最小的点。题解这其实就是树的重心的概念,通过树形 dp 很容易解决。当去掉抹一点后,它下面的子树的节点个数通过 dfs 可以得到,它上面的子树的节点个数等于总节点个数减去它本身及其子节点的总节点数。代码#include <algorithm>#include <bitset>#include <cstri

2017-09-30 15:10:40 338

原创 HDU-6191 01字典树+启发式合并

题目Query on A Tree题解如果每次查询都是在整棵树查询的话,那么直接用01字典树就可以解决。但是如果查询是在某一子树的话,就没法在线的查询了,需要进行离线处理。用 dfs 从下向上建树,在遇到非叶子结点时,对其子节点进行合并。之所以叫启发式合并,是因为我们通常把将小向大的合并叫做启发式合并。PS. 代码最后注释了一组样例,莫名WA的同学可以试试代码#include <algorithm>

2017-09-23 21:45:52 476

原创 计蒜客-Our Journey of Dalian Ends 拆点+最小费用最大流

题目Our Journey of Dalian Ends题解需要用到最小费用最大流的知识,不会的话可以先学习一下。 有了这个前置知识,这道题就很简单了。首先由于每个城市只能经过一次,所以要先进行拆点。将一个城市拆成两个点,这两个点单向流动,容量为1,路径长度为0。点拆好后,要再加两个点,三条路径。一个超级源点,连接上海,流量为2,路径长度为1;一个超级汇点,分别连大连和上海,流量为1,路径长度为0

2017-09-21 10:54:01 338

原创 HDU-6216 推公式+二分

题目A Cubic number and A Cubic Number题解因为 a3−b3=(a−b)(a2+ab+b2)a^3 - b^3 = (a - b)(a^2 + ab + b^2),如果a3−b3a^3 - b^3为质数,那么 a−b=1,b=a+1a - b = 1, b = a + 1, 带入 a2+ab+b2a^2 + ab + b^2 得 3b2+3b+13b^2 + 3b +

2017-09-21 10:43:18 333

原创 HDU-6206 计算几何+大数

题目Apple题解这道题就是先给你三个点的坐标,再给你一个点的坐标。问这一个点是否在哪三个点构成的圆外,但是要用大数,这里我用的 java 的 BigDecimal。代码import java.io.PrintWriter;import java.math.BigDecimal;import java.math.BigInteger;import java.math.MathContext;

2017-09-21 09:54:14 264

原创 HDU-5973 威佐夫博弈+大数

题目Game of Taking Stones题解大数版的威佐夫博弈,用 java 写简单一点,但是 java 也没有高精度开方的函数,也要写一个牛顿迭代来开根。代码import java.math.BigDecimal;import java.math.MathContext;import java.math.RoundingMode;import java.util.Scanner;pu

2017-09-20 18:33:34 426

原创 HDU-5543 DP

题目Pick The Sticks题解01背包的加强版,由于两端可以放置 length/2 长度的木棍,所以加一维长度为3的状态,分别表示两端不放木棍,只有一端放木棍,两端都放木棍。代码#include <algorithm>#include <bitset>#include <cstring>#include <cstdio>#include <cmath>#include <cstdl

2017-09-20 18:17:15 350

原创 HDU-6038 自环

题目Function题意给两个长度分别为 n 和 m 的数组 a 和 b ,定义一个函数 f(x),该函数满足 f(i) = bf(ai) 。 求不同 f(x) 的数量,答案模109+7。题解图论,这题十分的绕,有点像我们常说的你爷爷的儿子的弟弟的儿子的哥哥是你自己一样 = = 。 这题刚开始只能多举几个例子进行观察,然后会发现规律: 1. 数组 a 中要有子数

2017-09-14 19:55:32 334

原创 HDU-6053 莫比乌斯反演

题目TrickGCD题意给一个数组 {Ai},求能得到多少种数列 {Bi} {Bi} 需要满足: 1. 1 ≤ Bi ≤ Ai 2. 对于(l,r)( 1 ≤ l ≤ r ≤ n ),gcd(bl, bl+1 … br) >= 2题解这道题需要用到莫比乌斯反演的知识,如果不会可以先看一下 http://blog.csdn.net/acdreamers/arti

2017-09-14 19:53:16 319

原创 HDU-6034 贪心

题目Balala Power!题意给 n 个字符串,字符串只有小写字母,然后给字母从0-25进行编号,使得所有字符串按照26进制得的值相加的和最大。字符串不能有前置0,除非该字符串只含1个字母。 求最所有字符串编码后的和的最大值,答案模 109+7 。 题解贪心,这道题思路不难,但是写起来很烦人,算是考察编程的基本功了。 我们可以按照26进制记录每个字母的权值,然

2017-09-14 19:51:24 365

原创 HDU-6043 规律题

题目KazaQ’s Socks题意爱干净的 大Q 每天都洗他的袜子,而且他把每双袜子按照 1 到 n 进行了编号。 他有一个特殊的癖好就是每天早上都会从衣柜里拿编号最小的那双袜子去穿。 到晚上的时候,他会把袜子扔到盆里,如果盆里的袜子达到 n-1 双,他就会把它们洗了,然后第二天晚上再放回衣柜。 问 大Q 第 K 天穿的袜子的编号。题解规律,签到题,而且是道有味道

2017-09-14 19:50:09 300

原创 HDU-6033 数论

题目TrickGCD题意给一个数组 {Ai},求能得到多少种数列 {Bi} {Bi} 需要满足: 1. 1 ≤ Bi ≤ Ai 2. 对于(l,r)( 1 ≤ l ≤ r ≤ n ),gcd(bl, bl+1 … br) >= 2题解这道题需要用到莫比乌斯反演的知识,如果不会可以先看一下 http://blog.csdn.net/acdreamers/article/details/854

2017-09-14 19:40:41 264

原创 HDU-6050 推公式

题目Funny Function题意给三个公式,求 F(m,1)题解推公式。 Fn = Fn-1 + 2 * Fn-2 可以根据特征根(微分方程的知识)推出 Fn = 2n/3 - (-1)n/3 。 然后再根据第三个公式推出 F(m,1)=(2*(2n-1)m-1+(1-(-1)n)/2)/3 。 最后分奇偶用快速幂和逆元算出答案。代码#include <algorithm>#includ

2017-09-14 19:39:15 255

原创 HDU-6055 推公式

题目Regular polygon题意推公式。 给你 n 个坐标(整数点),问这些坐标能构成多少个正多边形题解由于坐标是整数点,所以只能构成正四边形。 然后循环枚举其中的两个点,判断其他两个点是否存在。 最终答案需要除以 C(4,2) - 2 ,“-2”是减去枚举的是对角线的情况。 至于如何由两点推出另外两点的坐标,如果看代码实在理解不了,可以直接作为模版记住就行了。 = =代码#inclu

2017-09-14 19:38:26 224

原创 HDU-6047 优先队列

题目Maximum Sequence题意给两个数组 {ai}, {bi}, 现在要将扩展数组 {ai} 从 an+1 到 a2n,对于每个新增的 ai : 必须从 {bi} 中选出一个 bk, ai 需要满足 ai ≤ max{aj - j│bk ≤ j < i}, bk 只能被选择一次。 你需要找出 max{∑2nn+1ai\sum_{n+1}^{2n} a_i } modulo 109+7

2017-09-14 19:37:48 233

原创 HDU-6045 推公式

题目Is Derek lying?题意Derek 和 Alfia 是两个好朋友,他们回答三个问题,然后 Derek 会将他的成绩 X 和 Alfia 的成绩 Y 告诉 Alfia, 但是 Derek 可能会说谎。现在将这两个人的答案告诉你,请你判断 Derek 是否说谎。题解推公式,签到题。 我们假设 Alfia 的得分是正确的,根据他们俩的答案推出 Derek 得分的区间,然后判断 Derek

2017-09-14 19:36:36 295

原创 HDU-6194 后缀数组+lcp+rmq

题目string string string题意给一个字符串,问该字符串中出现次数正好为 k 次的不同子串个数。题解后缀数组+lcp+rmq。先用后缀数组求出高度数组 lcp。然后遍历 lcp,加上出现 k 次的子串个数: ans+=max(lcp[i]...lcp[i+k−2])ans += max(lcp[i]...lcp[i + k -2]) 还要减去子串出现大于k次的: ans−=m

2017-09-14 19:33:48 300

原创 HDU-6201 树形DP

题目transaction transaction transaction题意给 n 个点,n-1条边,每个点上图书的价格都不同。 一个商人在则个图上旅游,他将会在一点买一本书,在其中另一点卖掉,问他最多能挣多少钱。(这两个点可重复)题解树形 dp。n个点,n-1条边的连通图就是一棵树。开个二维数组dp[MAX][2],dp[i][0]记录在 i 点及 i 的子树买书花费最少值,dp[i][1]记录

2017-09-14 19:32:57 278

原创 HDU-6205 前缀和

题目card card card题意有 n 堆卡片,每堆都有一定数量卡片和一个惩罚值,在游戏开始前可以把第一堆移到最后面。每搬一堆卡片,会增加和该堆卡片数量相等的分数,但是会减去惩罚值,当分数为负或全搬完则结束比赛。问怎么才能在移动最少堆卡片的情况下搬尽量多的卡片。(惩罚值总数和卡片总数是相等的)题解前缀和。因为惩罚值和卡片总数是相同的,所以最多移动 (n-1) 次,就能保证拿走所有卡片。 先假设

2017-09-14 19:32:18 393

原创 HDU-6198 推公式+矩阵快速幂

题目number number number题意推公式,矩阵快速幂。给一个菲波那切数列,然后满足 n=Fa1+Fa2+...+Fak n=F_{a_1}+F_{a_2}+...+F_{a_k} , 其中 0≤a1≤a2≤⋯≤ak0\leq a_1 \leq a_2 \leq \dots \leq a_k 的 n 为 mjf−goodmjf-good ,否则为 mjf−badmjf-bad, 现在给

2017-09-14 19:30:38 317

原创 HDU-6197 DP

题目array array array题意dp,lcs。给你一个 A 数列,和一个数字 k。问你能不能从 A 数列顺序中挑出 k 个元素组成新数列。新数列要满足非递增或非递减。题解就是求最长上升子序列 length1 和最长下降子序列 length2。然后如果 (length(A) - length1 <= k || length(A) - length2 <= k) 就可以,反之则不行。代码#in

2017-09-14 19:29:15 278

原创 HDU-6195 推公式

题目cable cable cable题意推公式,签到题。给 k 个光源(每个光源可以发射一种颜色),m 个显示器,每个光源每次只能发射一光线,但可以有多个电缆和显示器相连。问至少要有多少根电缆,才能保证每次任选 k 个显示器都能显示 k 种颜色。题解简单画图推导可知,每个光线至少要和(m - k + 1) 个 显示器相连。所以一共要(m - k + 1) * k 个电缆。代码#include <

2017-09-14 19:28:13 487

原创 C++ 数字和字符串转换函数的总结

c++学习笔记数据运算混合运算的类型转换当运算符两边的操作数类型不同但类型相容时,系统自动将不同的数据类型转换成相同类型,再进行运算。具体规则如下: 字符可作为整数参与运算,整数值为其ASCII码。对于字符或短整型操作数,系统自动变换成整型。对于单精度型操作数时,系统自动变换成双精度型。当两操作数类型不同时,将精度低(或表示范围小)的操作数的数据类型变换成与另一操作数类型相同,再进行运算。

2017-08-21 18:16:22 1027

原创 《操作系统概念》学习笔记

第一二章明确操作系统的作用明确操作系统包括哪些功能明确用户模式和内核模式的概念及作用 内核模式拥有更高的权限用户模式通过陷阱或中断进入内核模式了解操作系统提供的服务有哪些明确系统调用的工作机制 程序员更偏爱使用api系统调用在内核下运行明确操作系统的结构有哪些,各自优缺点 简单结构:没分层易出错分层方法:有分层微内核:得到更小的基本内核,便于os扩展模块:面向对象,内核的

2017-06-22 23:26:41 1093

原创 Codeforces Round #378 (Div. 2) D 贪心

题目传送门:http://codeforces.com/contest/733/problem/D思路:其实这题挺简单的,当时是过于自信导致错了n发。代码如下:#include #include #include #include #include #include #include #include #include #include #inclu

2016-12-09 21:50:07 345

原创 CF Technocup 2017 - Elimination Round 1 D 贪心

题目传送门:http://codeforces.com/problemset/problem/727/D思路:贪心,注意题目限制:可以穿两种衣服号码的人,这两种号码一定是相邻的。随意按号码从小到大排序,依次满足就好。代码如下:#include #include #include #include #include #include #include #in

2016-12-09 21:39:01 461

原创 Codeforces Round #367 (Div. 2) E 十字链表

题目传送门:http://codeforces.com/problemset/problem/706/E思路:用十字链表存矩阵,然后枚举题意就好了代码如下:#include #include #include #include #include #include #include #include #include #include #include

2016-12-09 21:24:27 339

原创 HDU-1796 容斥+dfs+lcm

题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1796题意:给一个集合set和一个数n,让你构建一个新集合。新集合中的任意一个元素都能被set中某个元素整除,而且新集合中的元素要小于n,问你这个新集合中最多有多少个元素题解:这是cls挂的容斥专题的B题,一开始我的思路就是错的,然后去瞟了一眼题解,然后恍然大悟,又重新搞一发,

2016-12-06 14:55:22 364

空空如也

空空如也

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

TA关注的人

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