自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

theArcticOcean

博观而约取,厚积而薄发

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

原创 模拟退火算法

一些求解极值的问题不能通过函数特性直接求解,只能暴力枚举,但是单纯的枚举效率不高,通过模拟退火算法可以高效的找到答案。学习好博文:http://www.cnblogs.com/heaad/archive/2010/12/20/1911614.html相关题目:最小圆覆盖:hdu 3007 Buried memoryhttp://acm.hdu.edu.cn/

2016-02-11 18:45:51 824

原创 linux 软件包管理

环境:ubuntu 15.04软件包主要有:.deb debian的安装格式.tar/.tar.gz  unix/linux压缩包,不过.tar只是将多个文件集中起来了,本身没有压缩.rpm 在红帽系统下可直接安装。以shutter为例说明tar.gz软件包的安装:tar的压缩和解压的命令:edemon@linux:~/Downloads$ tar

2016-02-11 10:38:06 1043

原创 MySQL 存储引擎

环境: 5.6.17 MySQL Community Server (GPL)MySql中的数据信息通过不同的技术存储在文件或者内存中,这些不同的技术被称之为存储引擎。选择不同的存储引擎可以达到不同的服务效果。查询MySql支持的存储引擎:mysql> show variables like 'have%';+----------------------+--------

2016-02-10 23:27:30 512

原创 法雷级数(数列)

关于法雷级数:法雷级数R.亨斯贝尔格著李忠翻译的《数学中的智巧》一书,介绍了法雷级数。这里每一行从0/1开始,以1/1结尾,其它数自左至右将所有的真分数(分子和分母互质)按增加顺序排列;第n行是由所有分母小于或等于n的真分数组成,我们称为n阶法雷级数。如下表:F1: 0/1 1/1F2: 0/1 1/2 1/1F3: 0/1 1/3 1/2 2/3 1/1F4: 0

2016-02-10 21:52:35 1402

原创 海明码的生成

海明校验码具有检测错误的能力,同时还具有找出错误所在位置的能力。海明码的编码原理:给出信息,组成信息位:,其余位置填充位置码,海明码由此组成。给定信息. 构建海明码:其中,pi的值由和bi的位置关系决定。我们称pi是校验位,bi是信息位。3=1+2 ——>b15=1+4 ——>b26=2+4 ——>b37=1+2+4 ——>b4那么:hunnu OJ

2016-02-10 14:52:50 3098

原创 Latin方及Hadamard矩阵

Latin方:N个元素在N*N的矩阵中每一行每一列仅仅出现一次。普通Latin方的构造:int g[105][105];void paint(int n){ for(int i=1;i<=n;i++){ g[1][i]=i; } for(int i=2;i<=n;i++){ for(int j=n;j>1;j--){

2016-02-09 23:28:50 1853

原创 猴年大吉之开心刷题

过年了,各种走亲访友,大吃大喝。为了不让自己忘了算法为何物,做了几道练手的题。nyist 46 最少乘法次数http://acm.nyist.net/JudgeOnline/problem.php?pid=46给你一个非零整数,让你求这个数的n次方,每次相乘的结果可以在后面使用,求至少需要多少次乘。如24:2*2=22(第一次乘),22*22=24(

2016-02-09 17:34:01 939 3

原创 三维凸包之增量算法

算法工作过程:选取点集中的四个点构成一个初始的四面体:选两个点p1, p2,再选一个点p3,p3和p1, p2不在同一条直线上,这样形成了一个面。再选一个点,不在同一个面上,形成一个四面体。然后继续研究剩余的点:点在四面体内部,略过。点在四面体外部,删除此点能“看见”的面,扩大凸包体积。POJ 3528 Ultimate Weaponhttp://poj

2016-02-09 08:53:18 4566

原创 斐波那契之通项公式

以前没有发现,斐波那契通项公式能直接KO一题。记录一下,许多的过程细节值得回味。nyist 461 Fibonacci数列(四)http://acm.nyist.net/JudgeOnline/problem.php?pid=461大意:求出斐波那契f[n]的前4个数字因为不是后几位所以不能矩阵快速幂。利用通项公式:#include #include #

2016-02-08 19:38:22 1019

原创 nyist 297 GoroSort

http://acm.nyist.net/JudgeOnline/problem.php?pid=297大意:对于一个数组进行排序。可以按住部分元素,对剩余的元素“洗牌”式操作。求解最少的洗牌的次数。最开始的天真思路:一个N个元素的集合进行正确排列的操作数应该是排列数N!  所以结果应该是各个子集的操作数的和。#include #include #include

2016-02-08 17:39:10 814

原创 矩阵乘法经典应用之坐标变化

nyist 298 点的变换http://acm.nyist.net/JudgeOnline/problem.php?pid=298大意:给出n个,对其进行m个操作,平移,旋转,缩放,翻转。其中n分析:对于旋转:x'=rcos(p+r)=xcosp-ysinpy'=rsin (p+r)=xsinp+ycosp然后是超时问题。想过用一个“基向量”先进行变换操作,然后再给每

2016-02-08 16:24:28 1830

原创 linux 文件及目录

bin文件夹存放各种命令的文件bash是shell命令的主程序.home存放用户文件夹boot是存放系统启动的相关文件 dev存放各种设备文件  #fd软盘 disk硬盘等lib存放各种库文件media存放可移动介质的安装点proc目录存储进程信息tmp存放临时文件sbin存放系统操作文件我们设一个用户组来练习共享文件操作。edemon@li

2016-02-07 20:43:22 619

原创 MySQL 视图更新及删除

mysql的视图更新是指通过update,insert,delete等操作来更新基本表(自己权限内)。/* 就以上次建立的有?乱码的视图表person_view1和基本表person为操作的对象。基本表和视图表改变之前:*/mysql> select * from person;+----------+------+| name | age |+----------+

2016-02-06 23:00:19 3676

原创 完美数

完美数:除了它本身外的约数的和恰好等于它本身不完美数有两类:真因子的和大于它本身的数——盈数,小于的是亏数。ecnu 1197 完美数输入一个数字判断是盈数,亏数,还是完美数。利用因子和公式解决。(代码不知道正确不,进不了OJ)#include #include using namespace std;typedef long long LL;// rh

2016-02-06 10:39:18 1040 3

原创 MySQL 视图之创建、查看、修改

视图是从数据库中一个或多个表中导出来的虚拟表,方便用户对数据的操作。数据库中只有数据的定义,没有存放视图的数据,那些数据是在原来的表里。视图具有这些作用:数据安全;数据表与应用程序独立;简化用户的操作。查询用户是否有select和create view的权限。mysql> use mysql;Database changed/*我有两个mysql,当我将WampSe

2016-02-05 21:53:52 2131

原创 PHP和Mysql简单的交互

建立连接:php.ini 中的 extension=php_mysql.dll 前面的分号去掉。同时检查extension_dir=“”是否正确,填写php中ext的位置开启 MySQL 链接:  mysql_connect("主机", "用户名", "密码")打开一个数据库: mysql_select_db("打开数据库",连接标识符);如果连接标识符默认,则默认为是上一次打开的

2016-02-05 17:52:22 1626

原创 线性规划之单纯性算法

线性函数:按比例,一阶导数为常数的函数。松弛变量:引入新的变量,且保持变量间的关系不变提到线性规划,最先想起的是高中的各种数学题。线性规划问题的标准形式:用松弛变量技术把不等式化成等式:单纯性算法的思想:从一个基本可行解出发,寻找能使得目标函数更优的拎一个解,迭代下去直到找不到。使用这种方法避免大量的无用比较。例子:从FOREVER284LOVE的《

2016-02-04 23:49:50 7092

原创 MySQL 时间和日期函数

下面是MySql各种内置时间函数:1. curdate() ,  current_date() 用于获取当前的日期。2. curtime() ,  current_time() 用于获取现在的时钟时间。3. now(),current_timestamp(),localtime(),sysdate() 四类函数可以获取当前的日期和时钟时间4. datediff()用于获

2016-02-03 23:16:11 1064

原创 常用快捷键及shell基本命令

环境:ubuntu 15.04常用操作:Ctrl+Super+Up 键:最大化当前窗口Ctrl+Super+Down键:最小化当前口Ctrl+Super+Left:半最大化当前窗口(左边)Ctrl+Super+Right:半最大化当前窗口(右边)打开终端:Ctrl+Alt+T回到上一步(撤销):ctrl+R

2016-02-03 20:35:26 1131

原创 积性函数

积性函数:对于正整数n的一个算术函数 f(n),若f(1)=1,且当a,b互质时f(ab)=f(a)f(b)若对于某积性函数 f(n) ,就算a, b不互质,也有f(ab)=f(a)f(b),则称它为完全积性的如果f是积性函数,那么其和是积性函数,其积也是积性函数设有 , 那么其因子个数是 ,其因子和是 此外,欧拉函数,最大公约数gcd(a,b)=gcd(a1,b)*gcd

2016-02-03 10:21:47 860

原创 三个特殊的同余式

欧拉定理:如果a、p是正整数,且互质,那么有证明:设和P互质且小于P的正整数集合是进一步: gcd(q_ia,p)=1" alt="">所以      在集合S内。那么, 有: 而当P是素数的时候,欧拉定理就是费马小定理:费马小定理除了能用于求解逆元之外,还有一个强大的功能:在满足条件下,降幂。设正整数那么:一个例子:POJ 1845

2016-02-02 21:40:11 760

原创 四面体体积求法

四面体(三棱锥)体积 : 设 有:不过这是有向的。如果知道那四个顶点,用这个公式即可求出体积。如果不知道四点仅知道6条边长,就得用下面的方法——欧拉四面体公式写成行列式:那么有:转置:行列式乘法:其中,因为:所以:有:进一步简化:题目:HDU 1411http://acm.h

2016-02-02 14:23:44 8715

原创 三维空间——点线面关系

最基础最重要的概念——叉积,说到叉积就要聊聊行列式。行列式的代数意义与Cramer法则联系密切,先来个简单的例子,消除x2得到这样的结果: .    行列式 正是那个分母,其计算和叉积一样。行列式的几何意义更加丰富,面积,体积……如上面的那个行列式就是向量为 的叉积。也就是他们构成的平面的有向面积。推广到三阶就是在x,y,z轴向量方向上的有向体积。故在三维空间中,向

2016-01-31 22:35:12 5080

原创 Pollard Rho 大数分解

核心思想:同时产生多个随机数让差值=goal的概率提高例子: 在1--1000中随机查找一个数字等于345, p=1/1000查找两个数字的差是345的概率则是 :于是通过这种方法也能查找N的因子,通过随机函数和随机数种子来产生一系列的随机数。随机函数为 的形式最开始的随机数通常用2,即 ;比如查找8051的因子: (97是8051的因子)然而出现了

2016-01-31 10:26:17 1030

原创 置换与Polya 计数原理-应用部分

下面的代码只是先写出来,还没有用过。// polya定理 求解循环节数const int N=1e3+10;int per[N];bool vis[N];int gcd(int a,int b){ return b==0?a:gcd(b,a%b);}int polya(int n){ int pos,sum=0; memset(vis,0,sizeof(vis)

2016-01-30 15:50:25 826

原创 置换与Polya 计数原理-理论部分

背景:一个正方形用红色和蓝色涂色给顶点涂色,方案有多少种呢?如果不考虑对称,答案就该是2^4=16,考虑对称,结果就该是:一共六种。Polya定理就是研究这样的分布问题。定义一一映射关系 假设有:  那么推广映射关系:定义恒等排列:我们有: 关于f的逆排列:设第一行和第二行互换:然后第一行以自然数的顺序排列:有:

2016-01-29 20:32:47 1813

原创 矩形切割-面积求并

离散化:将无限空间的有限个体映射到有限的空间上,做到逻辑上的有限和有序,避免重复。学习矩形切割就不得不认识线段切割。进而和离散化扯上了关系。关于线段切割:设线段ab和cd有交集:k1k2当a当b>k2,ab分解(切割)成k2b相关题目:VIJOS 1165 火烧赤壁https://vijos.o

2016-01-28 22:44:17 1179

原创 PHP学习之MySql函数·微型博客

PHP与MySql是通过MySql组件通信的。到PHP.ini文件中开启:;extension = php_mysql.dll  (去除前面分号即可)mysql_query(SQL语句或命令) 括号内的SQL语句最好用括号引起来PHP_MySql常用函数:mysql_connect(数据库地址,用户名,密码)mysql_select_db(数据库名)my

2016-01-27 20:47:29 1365

原创 回溯算法之骑士旅行问题

回溯法不同于纯暴力的瞎走,它通过不断的试探,层次变化,攻击问题,实现”保留现有信息“高效作战。骑士旅行问题:在N*N的国际象棋棋盘中有一个骑士在一角,问能否通过类似于中国象棋中马的走法走完所有的格子。所有的格子只能走一次。最开始一看这个问题觉得,啊,这不就是个深度优先搜索吗,随便写写。嗯,我的噩梦就这样开始了。处理好越界,访问格子,回溯等问题后,程序就是死循环!

2016-01-26 23:29:19 3187

原创 hdu 2159 Fate (二维完全背包)

http://acm.hdu.edu.cn/showproblem.php?pid=2159题意:最近xhd正在玩一款叫做FATE的游戏,为了得到极品装备,xhd在不停的杀怪做任务。久而久之xhd开始对杀怪产生的厌恶感,但又不得不通过杀怪来升完这最后一级。现在的问题是,xhd升掉最后一级还需n的经验值,xhd还留有m的忍耐度,每杀一个怪xhd会得到相应的经验,并减掉相应的忍耐度。当忍耐度降到0

2016-01-26 18:35:30 688

原创 POJ 2079 Triangle(凸包,最大三角形)

http://poj.org/problem?id=2079大意:在一堆点中寻找三个点,能围成面积最大的三角形。分析:可以想象最大的三角形一定是凸包上的点围成的。(反证法,想想就知道)接下来是求解最大的面积。简单的做法是直接来个n^3枚举,这应该会超时。再一次利用凸多边形的凸性,旋转卡壳。寻找最大的三角形,先是两个点不动,接着点3个点不断在凸包上跑动,到最大三角形的位置时,更新最大

2016-01-26 16:40:45 851

原创 Miller_Rabin · 大数

http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1186给出一个很大的数字N,2分析:数字很大,使用java的BigInteger解决。在这个过程中犯了许多低级错误。哎,我的java基础啊。相关知识点记录:==比较的是对象的地址,也就是是否是同一个对象;equal比较的是对象的值。Mat

2016-01-26 10:17:21 676

原创 Miller-Rabin 素数测试

相关定理——费马小定理:假设P是素数,且(a,p)=1,那么由此我们知道这样一个事实: p是素数,(a,p)=1 -> ; -> p不是素数定义:a是正整数,p是合数,且, 那么称p是以a为基的伪素数。Miller-Rabin算法原理: 取多个a(底)进行试验,次数越多,p是素数的概率越大。相关例题:POJ 3641 Pseudoprime numbersht

2016-01-25 18:42:56 617

原创 随机数

本文所涉及的内容主要和C函数rand()相关。生成随机数通常用rand()函数,自己用的不多——但是只要需要产生随机数马上想到的就是它。#include #include //随机函数文件#include using namespace std;int main(){ int i; srand(time(NULL));//设置随机数种子——当前系统的毫秒值

2016-01-25 14:13:42 538

原创 基本数据的范围

翻到了自己曾经做的笔记,觉得基础但是重要,记录下来:short int 的取值范围是-32768~32767.unsigned int:  0~4294967295   int: 2147483648~2147483647   --> 10位数(简单认为2后面9个0)  足以表示2^31-1unsigned long 0~4294967295   --> 2^32-1lon

2016-01-25 14:02:47 574

原创 POJ 1203 I NEED A OFFER!(背包、概率)

http://acm.hdu.edu.cn/showproblem.php?pid=1203大意:Speakless去申请学校了。要申请国外的任何大学,你都要交纳一定的申请费用。Speakless攒了n万美元。他将在m个学校中选择若干的。每个学校都有不同的申请费用a(万美元),并且Speakless估计了他得到这个学校offer的可能性b。不同学校之间是否得到offer不会互相影响。计算一下,

2016-01-23 23:06:52 737

原创 POJ 3608 Bridge Across Islands(旋转卡壳求凸多边形最短距离)

http://poj.org/problem?id=3608大意:求解两个凸多边形的最短距离。分析:依然是旋转卡壳来解决。用一对平行支撑线围绕两个凸多边形来寻找最短的距离。计算P多边形y最小的端点和y最大的端点,即ymin,ymax通过ymin,ymax构造两条支撑射线LP和LQ,方向相反。两个ymin,ymax的端点的距离作为所求距离的初始值,然后旋转两条支撑线。

2016-01-23 21:49:09 1337 2

原创 POJ 3348 Cows (凸包+多边形面积)

http://poj.org/problem?id=3348大意:用已有的树围成最大的牧场来养牛,每头牛生活至少需要50平方米。求出能养多少头?听说此题不难,然而我因为打错了一个变量看了一晚上(外加一早上T_T)。大致思路是:用凸包确定能构造的最大多边形,然后求解凸包多边形的面积。耻辱句:最后求面积的:for(int i=2;itop;i++){不是:for(int

2016-01-23 09:45:36 650

原创 POJ 2187 Beauty Contest(凸包优化 || 凸包+旋转卡壳)

http://poj.org/problem?id=2187大意:求解点和点之间的最大距离的平方。记得曾经有一道CF的题自己写了一个3重循环也过了,当时自己怀疑计算机一秒是运算10^9吗,还是数据太弱。。。写了一个1e9的程序,果断超时。看来1e8才是保险值#include #include using namespace std;const int N=5e4+10;st

2016-01-22 21:38:38 942

原创 凸包——Graham-Scan算法

Graham-Scan算法是一种灵活的凸包算法,时间复杂度是O(nlogn)算法细节:1. 选出最左下角的点(排序:x最小,其次是y最小)2. 其余点按极角排序,在极角相等的情况下距离极点(p[0])最近的优先3. 用一个栈(数组)存储凸包上的点,先把p[0],p[1]压入栈。4. 扫描每一个点,用叉积判断新点和栈顶头两个点形成的拐向。顺时针就弹出栈顶元素,继续判断。否则压入新

2016-01-22 19:58:01 5289

空空如也

空空如也

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

TA关注的人

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