- 博客(75)
- 收藏
- 关注
原创 Mike and distribution
基本思想:本质上就是要找出n/2+1个数,并且对于这个选中集合里面的数,在非选中的数中都能分别找到一个与之对应的小于它的数(所以这样的对应为两个数为一组,一个数来自选中集合,一个数来自非选中集合),这样就一定能保证选出数大于剩下没有选中的数,因为a>b ------> a*2 > a+b = sum(a为选中集合元素之和,b为非选中集合元素之和), 满足题目要求。例:1,4,9,6,5,2,选
2017-08-15 10:09:48
486
原创 CRC校验原理(cyclic redundancy check)
1、CRC基于“模二运算”。模二运算类似于普通二进制运算,但是区别在于无进位和借位。例如:加法:010+110=100减法:010-110=100无进位和借位使得模二运算的加减法相当于异或操作。乘法: 1010* 101———— 1010 0000 1010———— 100010除法:
2017-04-02 17:21:34
3482
2
转载 二分查找各种情况汇总
http://www.cnblogs.com/ider/archive/2012/04/01/binary_search.htmlhttp://blog.csdn.net/yefengzhichen/article/details/52372407
2017-03-24 17:13:18
707
转载 矩阵法求第n个斐波拉契数
矩阵(matrix)定义一个m*n的矩阵是一个由m行n列元素排成的矩形阵列。矩阵里的元素可以是数字符号或者数学式.形如{acbd}的数表称为二阶矩阵,它由二行二列组成,其中a,b,c,d称为这个矩阵的元素。形如 {x1x2}的有序对称为列向量Column vector设A={acbd}X={x1
2017-03-24 16:47:06
1132
原创 最短路算法理解
多源最短路:核心代码:for(int p=1; p<=n; p++) for(int i=1; i<=n; i++) for(int j=1; j<=n; j++) dis[i][j] = min(dis[i][p]+dis[p][j], dis[i][j]);理解:此代码是由子问题——“特定点i到特定点j的最短路”扩展成“任意两点间的最短路”问题的
2017-02-27 19:09:15
658
转载 socket之recv和send函数
一、send函数函数原型:int send( SOCKET s,char *buf,int len,int flags );功能:不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。参数一:指定发送端套接字描述符;参数二:存放应用程序要发送数据的缓冲
2017-02-22 15:09:51
765
转载 TCP三次握手连接及seq与ack关系
三次握手Three-way Handshake一个虚拟连接的建立是通过三次握手来实现的1. (B) –> [SYN] –> (A)假如服务器A和客户机B通讯. 当A要和B通信时,B首先向A发一个SYN (Synchronize) 标记的包,告诉A请求建立连接.注意: 一个 SYN包就是仅SYN标记设为1的TCP包(参见TCP包头Resources). 认识到
2017-02-21 09:23:45
5429
原创 奶牛卧室
思路:就是两个超时代码:#includeusing namespace std;#define INF 0x3f3f3f3f#define LL long long intint main(){ int n; while(~scanf("%d",&n)) { vectorvec; int a[5005];
2016-12-02 16:07:13
889
原创 DFS算法介绍
BFS与DFS比较:对于BFS,假如起始点有n个分枝点,那么进行第一步扩展的时候,我们queue里维护的点的个数就从1变成n,假如每一个分枝点的分枝都是n,那么我们进行第二步扩展的时候,queue里的个数就变成了n^2个……所以很能明显地看出,当我们的层次较多,分枝数较大的时候,走到后面queue需要的内存空间是相当大的。而DFS就是一路走到底,每次就维护一个点,和BFS比起来内存上有巨大的优
2016-10-21 21:54:46
987
原创 Web学习笔记
1、基础理论css介绍2、常见函数解释:querySelector() canvas.getContext('2d')Math.random():产生一个0-1的随机浮点数context.clearRect()canvas.fillStylecontext.arc()setTimeout()
2016-10-01 17:06:21
453
转载 原码, 反码, 补码
本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.1、机器数一个数在计算机中的二进制表示形式
2016-09-03 11:04:34
579
转载 对结构体初始化
原文地址:http://blog.csdn.net/adaptiver/article/details/7494081对结构体struct a {int b;int c;}有几种初始化方式:struct a a1 = { .b = 1, .c = 2};或者struct a a1 = { b
2016-08-28 11:30:26
976
原创 尤尼克斯鉴定方法
1、锥号:断点>字体>日期2、菊花:材料>缺角>字体3、木柄:条形码>螺丝+溢胶孔4、t头护线管:切面平行>内部数字/字母5、9点半/2点半错位护线管6、锥盖小三角7、防伪标小矩形对角线
2016-08-27 10:11:29
3823
原创 KMP题目
A - Sum ProblemTime Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uSubmit StatusDescriptionHomer: Marge, I just figured out a way to discover some of the
2016-08-24 10:16:09
860
原创 后缀数组
术语解释:后缀数组:常用SA[i]来表示,可以理解成rank[i].flag,意为字典序为i的后缀的起始位置。名次数组:常用rank[i]来表示,可以理解成flag[i].rank,意为起始位置为i的后缀的字典序。简单地说,后缀数组是“排第几的是谁?”,名次数组是“你排第几? ” 。
2016-08-23 11:11:15
453
原创 对LCS进行储存
E - Advanced FruitsTime Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uSubmit StatusDescriptionThe company "21st Century Fruits" has specialized in creati
2016-08-22 16:21:59
570
转载 AC自动机
2.多字符串匹配问题和Trie(字典树): 对于多字符串匹配问题,我们一般会用hash(散列表)或者Trie(字典树)储存。 a.hash: 将字符串利用hash函数映射到对应的hash值,然后将字符串插入对应函数值点的储存空间。(这里不关于hash函数的选择和具体实现方式。) b.Trie:
2016-08-22 11:30:57
663
原创 anti-Nim题目标准代码
JohnTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 2990 Accepted: 1451DescriptionLittle John is playing very funny game with his younger brother. There
2016-08-21 20:33:35
959
转载 博弈知识汇总
博弈知识汇总以下是我从网上收集的关于组合博弈的资料汇总:有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个人轮流从堆中取物体若干,规定最后取光物体者取胜。这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻的数学原理。下面我们来分析一下要如何才能够取胜。(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流
2016-08-21 16:12:10
976
转载 Nim问题讲解
Nim游戏的形象具体论述:Nim取子游戏是由两个人面对若干堆硬币(或石子)进行的游戏。设有k>=1堆硬币,各堆分别含有N1,N2,……NK枚硬币。游戏的目的就是选择最后剩下的硬币。游戏法则如下:1.两个游戏人交替进行游戏(游戏人I和游戏人II);2.当轮到每个游戏人取子时,选择这些堆中的一堆,并从所选的堆中取走至少一枚硬币(游戏人可以取走他所选堆中的全部硬币);3.
2016-08-21 15:21:49
1505
原创 LCS标准代码
Inputabcfbc abfcabprogramming contest abcd mnpOutput420代码:#include#include#include#include#include#include#include#include#include#includeusing namespace st
2016-08-20 11:32:02
734
原创 拓扑法判断有向图回路
操作思想就是不停删除图里面入度为0的点,删到最后如果还有点,那么就有回路;反之,则无回路。当然,删出度为0的点也是一样的,就相当于是把图所有边反向,并不会影响图的回路性质。代码:#include#include#include#include#include#include#include#include#include#includeusing namespa
2016-08-20 10:47:11
988
原创 KMP原始标准代码
B - Number SequenceTime Limit:5000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uSubmit StatusDescriptionGiven two sequences of numbers : a[1], a[2], ...... , a[N],
2016-08-19 18:26:18
475
原创 KMP讲解
原文: http://blog.csdn.net/yutianzuijin/article/details/11954939/kmp算法又称“看毛片”算法,是一个效率非常高的字符串匹配算法。不过由于其难以理解,所以在很长的一段时间内一直没有搞懂。虽然网上有很多资料,但是鲜见好的博客能简单明了地将其讲清楚。在此,综合网上比较好的几个博客(参见最后),尽自己的努力争取将kmp算法思想和实现
2016-08-19 11:20:22
401
原创 快速幂取模
原理:相当于还是用了状态压缩。B - A hard puzzleTime Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uSubmit StatusDescriptionlcy gives a hard puzzle to feng5
2016-08-17 15:18:25
313
原创 素数筛选
#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define MaxSize 100#define inf 0x3f3f3f3fint main(){ int prime[MaxSize]; memset
2016-08-16 10:24:59
388
原创 状态压缩题目
H:约会查看提交统计提问总时间限制: 2000ms 内存限制: 65535kB描述一个acmer想要去和妹子约会,他们处于一个N行M列的方格地图中,acmer在地图左上角坐标为(1,1)的位置,而妹子在地图右下角坐标为(n,m)的位置,acmer一个单位时间只可以移动到上下左右相邻的一个格子上。然而在这个地图中有许多墙和不同颜色的门,墙是不可以穿越的,只有拿到和
2016-08-16 09:22:24
672
原创 位运算状态压缩
位运算状态压缩:用法:有几把钥匙就用几个二进制位来表示,对于每一把钥匙如果手里有就用1来表示,没有就用0表示。比如题中一共有4把钥匙,现在我们手里有1、3把钥匙,于是现在的钥匙状态就是1010。1、判断是否有第n把钥匙假如现在钥匙状态是1101,询问是否有第2把钥匙。做法:首先12、判断现有钥匙是否能开锁假如现在钥匙有三把,为1101,要开两把锁,为
2016-08-15 15:11:16
1323
转载 快速幂取模及其应用
快速幂取模用法:用于求解 a 的 b 次方,而b是一个非常大的数,用O(n)的复杂度会超时。那么就需要这个算法,注意它不但可以对数求次幂,而且可用于矩阵快速幂。假如求 x ^ n 次方我们可以把 n 表示为 2^k1 + 2k2 + 2^k3....,可以证明所有数都可以用前式来表示。(其实就是二进制表示数的原理)那
2016-08-15 11:24:00
625
原创 奇技淫巧之节省输入输出时间
int Scan(){ int res = 0, flag = 0; char ch; if((ch = getchar()) == '-') flag = 1; else if(ch >= '0' && ch <= '9') res = ch - '0'; while((ch = getchar()) >= '0' && ch <= '9')
2016-08-15 10:13:12
382
转载 口语独立题
1 If you were to choose a place to live, what kind of location would you prefer and why? 1. A place close to school 2. A place close to your family 3. A place close to a transportation hub (airport o
2016-08-15 09:03:25
8337
原创 将数组传递给函数
一维数组传递:1.在调用函数中,传递数组首地址(如arr[0]或者直接写函数名arr)。2.在函数定义中,形参的类型必须与数组的原定义相同,不必指定数组的大小。例如://函数传递一维数组void operate(int num[], int x){ . . . . .}int main(){ int arr[MaxSize
2016-08-12 20:34:03
4608
原创 托福准备
https://www.zhihu.com/question/22990672https://www.zhihu.com/question/27244993
2016-08-06 14:59:02
445
转载 手把手教你写批处理-批处理的介绍
标题:手把手教你写批处理-批处理的介绍作者:佚名编者:Climbing出处:中国 DOS 联盟之联合 DOS 论坛题注:willsort日期:2004-09-21--------------------------------------------------------批处理的介绍扩展名是 bat(在 nt/2000/xp/2003 下也可以是 cmd)的文件就
2016-07-31 20:49:31
1713
转载 从while(scanf() != EOF)说到ACM OnlineJuge的评判原理
前言之前在做课程设计时, 无意间想起了以前做ACM题常用的一行语句:[cpp] view plain copy while(scanf("%d", &a) != EOF) 忽然间对这句话作用产生了好奇,想了半天终于有了一点结果。1. EOF是什么东东?EOF是一个宏,许多函数(包括sc
2016-07-29 16:36:47
3532
转载 句柄是什么?
所谓句柄实际上是一个数据,是一个Long (整长型)的数据。 句柄是WONDOWS用来标识被应用程序所建立或使用的对象的唯一整数,WINDOWS使用各种各样的句柄标识诸如应用程序实例,窗口,控制,位图,GDI对象等等。WINDOWS句柄有点象C语言中的文件句柄。 从上面的定义中的我们可以看到,句柄是一个标识符,是拿来标识对象或者项目的,它就象我们的姓名一样,每个人都会有一个,不同的
2016-07-29 11:20:05
1003
原创 DFS专题
D - 连连看Time Limit:10000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uSubmit Status Practice HDU 1175Description“连连看”相信很多人都玩过。没玩过也没关系,下面我给大家介绍一下游戏规则:在一个棋盘中,放了很多的棋
2016-07-27 17:26:30
696
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人