02 2012 档案

未知链表长度的情况下从中随机取k个数 [原]
摘要:问题:有一个未知长度的链表,要求在其中随机抽取k个节点作为样本(即如果有n个节点,则每个节点被取出的概率是k/n,而n是未知的)。链表只能顺序读取一遍。(保证链表节点数>k) 思路:先取出前k个节点,以后没到一个节点,就以一定的概率将其与已取出的k个节点随机交换。具体来说,记链表为A,从A[1]一直扫到A[K],并取出作为最初的k个节点,记为B。继续往下扫,扫到A[i](i>k)时,以k/i的概率将其取出,并与B中的某个节点交换(B中有k个节点,每个节点被换出的概率都是相等的,即1/k);如果A[i]没被取出(概率为(i-k)/i),就继续往下扫。最后扫完A,得到的B即为所求。 证 阅读全文

posted @ 2012-02-28 14:07 龙豆 阅读(1082) 评论(0) 推荐(0) 编辑

解决NVIDIA显卡驱动“没有找到兼容的图形硬件”的问题 [转]
摘要:[经博主验证有效的版本] http://tieba.baidu.com/f?kz=1041263540 因为inf文件很多,不同inf对应不同的厂家,对此我在驱动之家找到了各个inf文件对应的厂家:NVAC.INF = ACER、NVAM.INF = ASUS Mobile、NVAO.INF = APPLE Mobile、NVBL.INF = Compaq/HP mobile 、NVDM.INF = DELL Mobile、NVFM.INF = FUJITSU Mobile、NVGM.INF = GATEWAY Mobile/Laptop、NVIB.INF = IBM、NVLT.IN... 阅读全文

posted @ 2012-02-28 00:12 龙豆 阅读(17264) 评论(0) 推荐(0) 编辑

CUDA4.0 + VS2010 + Win7 64 + VAssistX 安装经验 [转]
摘要:参考了很多网上的教程,自己摸索的几天CUDA4.0安装完毕。再次感谢前辈的各种教程,现把我的安装方法提供出来,给还在探索的新手参考一下。我的环境:Win7 64旗舰 ,GTX580 + ATI5450,使用双显卡为了单机调试,使用ATI卡为了防止搞不清楚程序在那个卡上跑CUDA。要安装的是:CUDA 4.0 64位 + VS2010旗舰基本安装:1. 显卡驱动,ATI装公版驱动,显示器在此卡上连接,GTX580不连接显示器。 N卡驱动,装270.81版,这是CUDA4.0要求的版本,初次安装为了少出错,最好安装指定版本驱动。[注:参见 解决NVIDIA显卡驱动“没有找到兼容的图形硬件”的问题 阅读全文

posted @ 2012-02-27 22:16 龙豆 阅读(2836) 评论(2) 推荐(0) 编辑

连续幂求和 [原]
摘要:求 方法一:O(logn)是由于每次还要计算改进: 方法二: 1 /* 2 * n阶矩阵A, 求A+。。。+A^k, 结果模mod。 3 * 4 * 类比上式:(注意这里从A开始加(而不是1),故略有不同) 5 * m = {{f1}, {x}} 6 * m1 = {{1}, {0}} 7 * m2 = {{x, 0}, {0, x}} 8 * 9 * mm = {{f(r)}, {x^r}}10 *11 * facor = {{1+x^(r/2), 0}, {0, x^(r/2)}}12 */13 14 15 #include <cstdio>16 ... 阅读全文

posted @ 2012-02-26 17:09 龙豆 阅读(943) 评论(0) 推荐(0) 编辑

求数组众数的不同算法分析 [原]
摘要:对于绝对众数(次数一定大于n/2), 可有最坏情况下O(n)的分治算法。(数字两两比较,如果两个数不同,则两个数都丢弃;如果两个数相同,则丢弃其中一个数。对剩下的数同样处理,最后只剩一个数为众数) 而对与一般的众数问题,可有两种方法:一、修改快排:1、取轴值x, 根据快排的过程,小于x的放在左边,大于x的放在右边。同时统计x的出现次数T。2、如果X左边的个数(不算X)多于T,向左递归;同理,如果X右边的个数对于T,向右递归。 时间复杂度:O(nlgn) 二、利用数组统计。如果已知原数组的范围为[0...m], 则可以直接利用数组。否则,需要用散列。时间复杂度为O(n),但空间复杂度较高。 阅读全文

posted @ 2012-02-26 16:06 龙豆 阅读(7501) 评论(1) 推荐(0) 编辑

poj-1064 Cable master **
摘要:1 /* 2 * poj-1064 Cable master.cpp 3 * 4 * Created on: 2012-2-26 5 * Author: LongDou 6 * 7 * 8 * 二分, 化为整数存储,下界为1(cm),上界为最长绳的长度 9 *10 */11 #include<cstdio>12 using namespace std;13 14 const double eps = 1e-7; //注意精度15 const int maxn = 10000 + 10;16 17 int n, k, cable[maxn];18 ... 阅读全文

posted @ 2012-02-26 15:00 龙豆 阅读(624) 评论(0) 推荐(1) 编辑

Latex中插入C代码 [转]
摘要:用LaTeX写论文时,插入C++源代码有专门的宏包,方法如下: 1 \usepackage{listings} 2 3 \lstset{language=C++}%这条命令可以让LaTeX排版时将C++键字突出显示 4 5 \lstset{breaklines}%这条命令可以让LaTeX自动将长的代码行换行排版 6 7 \lstset{extendedchars=false}%这一条命令可以解决代码跨页时,章节标题,页眉等汉字不显示的问题 8 9 \begin{lstlisting}10 11 %paste your C++ code here12 13 \end{lstlisting... 阅读全文

posted @ 2012-02-19 00:06 龙豆 阅读(4124) 评论(0) 推荐(0) 编辑

LaTeX首行缩进 [转]
摘要:LaTeX 默认的第一段不是首行缩进的, 这不符合我们的中文习惯.要实现首行缩进也很简单,在导言区加入宏包首行 \usepackage{indentfirst} 就可以了. (LaTeX 学习博客 (http://latex.yo2.cn) , 白色印记.)使用命令 设置 缩进的距离 \setlength{\parindent}{2em} ,这里的 2em 表示缩进 2 个字符位置.如果有一个段落你不想首行缩进, 在段落前使用命令 \noindent .同样的, 你要保证这一段是首行缩进, 使用命令 \indent, 如果使用了 CJK 宏包, 还可以用\CJKindent. 阅读全文

posted @ 2012-02-19 00:04 龙豆 阅读(2902) 评论(0) 推荐(0) 编辑

LaTeX技巧203:如何实现等号对齐 [转]
摘要:我们在进行公式的输入排版的时候,通常希望公式比较齐整,所以需要一些等号对齐,或者左对齐,关于公式的左对齐前文已经介绍了方法。http://blog.sina.com.cn/s/blog_5e16f1770100ggwo.html 下面我们来介绍如何实现等号的对齐,主要是两种方法,第一是使用align这一环境,第二是使用eqnarray环境。我们演示如下, 演示效果图: 演示代码: 1 \documentclass{article} 2 \pagestyle{empty} 3 \setcounter{page}{6} 4 \setlength\textwidth{207.0pt} 5 6 \.. 阅读全文

posted @ 2012-02-19 00:03 龙豆 阅读(3576) 评论(0) 推荐(0) 编辑

poj-3250 Bad Hair Day **
摘要:1 /* 2 * DA-term-Bad Hair Day.cpp 3 * 4 * 这是一种解法,还可以用 “单调队列” 来做(见后。。) 5 * 6 * Created on: 2011-12-2 7 */ 8 9 #include <iostream>10 using namespace std;11 12 const int maxn = 80000 + 5;13 14 int h[maxn], n;15 int num[maxn], cow[maxn]; //num[i]:第i头牛能看到的牛数16 //cow[i]:在第i头牛东边第一个比i高的牛17 18... 阅读全文

posted @ 2012-02-17 18:46 龙豆 阅读(239) 评论(0) 推荐(0) 编辑

poj-1159 Palindrome **
摘要:1 /* 2 * DA-term-Palindrome.cpp 3 * 4 * DP 5 * 6 * 动态规划求解。 7 8 设ch[1]..ch[n]表示字符串1至n位,i为左游标,j为右游标 ,则i从n递减,j从i开始递增。 9 min[i][j]表示i和j之间至少需要插入多少个字符才能对称,初始置全0 ,我们最终需要得到的值是min[1][n].10 则11 if(ch[i]==ch[j]) //如果两个游标所指字符相同,向中间缩小范围12 mi... 阅读全文

posted @ 2012-02-17 18:43 龙豆 阅读(175) 评论(0) 推荐(0) 编辑

poj-1080 Human Gene Functions **
摘要:1 /* 2 * Human Gene Functions.cpp 3 * 4 * Created on: 2011-12-9 5 * 6 * 类似 最长公共子串 7 */ 8 9 #include <cstdio>10 using namespace std;11 12 const int maxn = 100 + 5;13 14 const int s[5][5] = {{5, -1, -2, -1, -3}, //分数矩阵15 {-1, 5, -3, -2, -4},16 ... 阅读全文

posted @ 2012-02-17 18:40 龙豆 阅读(251) 评论(0) 推荐(0) 编辑

poj-1733 Parity game ****
摘要:1 /* 2 * poj-1733 Parity game.cpp 3 * 4 * Created on: 2012-2-17 5 * Author: LongDou 6 * 7 * 8 * hash离散化 + 并查集 9 * 10 * 设s[0]=0,s[i]=a[1]+a[2]+...+a[i],则信息i j even等价于a[i]+...+a[j]为偶数,即 11 s[j]-s[i-1]为偶数,即s[j]与s[i-1]同奇偶。这样,每条信息都可以变为 12 s[i-1]和s[j]是否同... 阅读全文

posted @ 2012-02-17 17:12 龙豆 阅读(586) 评论(1) 推荐(1) 编辑

OpenGL学习入门之VS2010环境配置 [转]
摘要:OpenGL开发环境简介 基于OpenGL标准开发的应用程序运行时需有动态链接库OpenGL32.DLL、Glu32.DLL,这两个文件在安装Windows NT时已自动装载到C:\WINDOWS\SYSTEM32目录下(这里假定用户将Windows NT安装在C盘上)。OpenGL的图形库函数封装在动态链接库OpenGL32.DLL中,开发基于OpenGL的应用程序,必须先了解OpenGL的库函数。OpenGL函数命令方式十分有规律,每个库函数均有前缀gl、glu、aux,分别表示该函数属于OpenGL基本库、实用库或辅助库。Windows NT下的OpenGL包含了100多个核心函数,均. 阅读全文

posted @ 2012-02-13 22:22 龙豆 阅读(37365) 评论(6) 推荐(3) 编辑

poj-1988 Cube Stacking **
摘要:1 /* 2 * poj-1988 Cube Stacking.cpp 3 * 4 * Created on: 2012-2-12 5 * Author: LongDou 6 * 7 * 并查集: 8 * 每个节点有3个域:1、fa[x]:并查集中x的父节点 (fa[x]必压在x之下,但不一定直接相邻) 9 * 2、rank[x]:在x之下(不包括x)且在fa[x]之上(包括fa[x])的方块数10 * (如果直接记录x之下的总方块数,则每次合并都需更... 阅读全文

posted @ 2012-02-12 16:52 龙豆 阅读(331) 评论(0) 推荐(0) 编辑

poj-1182 食物链 **
摘要:1 // poj1182.cpp 2 // 与 poj-1703 Find them, Catch them 思想类似, 只是多了一种状态,rank取值为0、1、2: 3 // 0 : x 与 fa[x] 同类 4 // 1 : x 被 fa[x] 吃 5 // 2 : x 吃 fa[x] 6 7 #include "stdafx.h" 8 #include <cstdio> 9 using namespace std;10 11 const int maxn = 50000 + 10;12 const int maxk = 100000 + 10;13 14 阅读全文

posted @ 2012-02-12 15:26 龙豆 阅读(241) 评论(0) 推荐(0) 编辑

LaTeX 表格的处理 [转]
摘要:[转] http://space.uibe.edu.cn/u1/ryang/latex-table.html LaTeX 表格的处理LaTeX 表格处理概述一般三线表的处理带表格注释的三线表固定列宽和自动伸缩列宽固定列宽与对齐方式自动伸缩列宽跨页表格表格旋转和后置表格旋转表格后置辅助转换工具LaTeX 表格处理概述与 word 不同,LaTeX 通过一定的语法规则将表格写成纯文本形式。基本规则包括:表格从上到下,每一行从左到右,单元格内容使用 & 分隔,用 \\ 换行。最基本的表格环境是 tabular 环境。下面是一个简单的表格代码和实际效果:\begin{tabular}[t]{l 阅读全文

posted @ 2012-02-10 17:30 龙豆 阅读(15490) 评论(0) 推荐(0) 编辑

LaTex如何正确输入引号“”‘’ [转]
摘要:最近看一些latex用户的文章,输入的双引号和单引号都是用输入法中的中文模式键入,并不是LaTeX的正确输入方式。正确的输入方法如下:使用键盘的 Tab键上侧的`键连续键入两个``然后输入键盘的两个单引号‘’。单引号输入类似。示例如下:演示代码:\documentclass{article} \setlength\textwidth{150pt}\begin{document} \large Pumas are``large, cat-like animals'' which are `found in America'. Whenreports came into L 阅读全文

posted @ 2012-02-10 16:33 龙豆 阅读(5123) 评论(0) 推荐(1) 编辑

latex文档排版时空出一行的命令 [转]
摘要:latex文档中,分行是自动完成的,一般情况下不需要使用分行命令。使用命令\\可以另起一行。直接使用回车键敲出一个空行,可以另起一个新的段落。如果想在上一段和下一段直接空一行的距离,可使用命令\vspace{...},其中花括号里面可以使用cm,in,mm,pt等度量单位,比如 \vspace{12 pt}。推荐使用单位ex,因为ex表示当前字体下小写字母e的高度,它是一个可变长度的单位,随着文章字体设置大小的变化而变化。\vspace{...}命令只能使用在前后都有段落内容的情形,不然的话就会出错(\vskip命令也是如此)。若想在一页开始处就空出一行,可以使用命令\vspace*{...} 阅读全文

posted @ 2012-02-10 13:05 龙豆 阅读(22898) 评论(0) 推荐(0) 编辑

ubuntu安装deb,rpm安装包,tar.gz的方法 [转]
摘要:Ubuntu的软件包格式是deb,如果要安装rpm的包,则要先用alien把rpm转换成deb。sudo apt-get install alien #alien默认没有安装,所以首先要安装它sudo alien xxxx.rpm #将rpm转换位deb,完成后会生成一个同名的xxxx.debsudo dpkg -i xxxx.deb #安装注意,用alien转换的deb包并不能保证100%顺利安装,所以可以找到deb最好直接用deb有时候,我们想要使用的软件并没有被包含到 Ubuntu 的仓库中,而程序本身也没有提供让 Ubuntu 可以使用的 deb 包,你又不愿从源代码编译。但假如软件提 阅读全文

posted @ 2012-02-05 12:56 龙豆 阅读(1660) 评论(0) 推荐(1) 编辑

ubuntu的ADSL拨号上网(主要是无线网情况下) [转]
摘要:我用的以下的“使用新版的NetworkManager ” 的第2、3步,总算能上网了。。。 我在家业余时间学习linux,用ubuntu7.04感觉很爽,但是用电信的ADSL上网和DNS设置确费了一番手脚。下面将我的遭遇说说,和大家一起交流下 1.ADSL 在ubuntu 下拨号用ADSL拨号上网,首先需要用pppoeconf进行用户名和密码的设置。(参看ubuntu帮助) 1. 确认您的以太网卡已被检测到。 2. 输入您的用户名。 3. 输入您的密码。 4. 若您曾经配置过一个 PPPoE 连接的话,您会被询问是否需要改变其设置。 5. 常见选项:您被询问您是否想要 “noauth” ... 阅读全文

posted @ 2012-02-05 12:07 龙豆 阅读(2052) 评论(0) 推荐(0) 编辑

Ubuntu中root用户和user用户的相互切换 [转]
摘要:Ubuntu是最近很流行的一款Linux系统,因为Ubuntu默认是不启动root用户,现在介绍如何进入root的方法。(1)从user用户切换到root用户不管是用图形模式登录Ubuntu,还是命令行模式登录,我们会发现缺省的用户是user但是当我们需要执行一些具有root权限的操作(如修还系统文件)时,经常需要用sudo授权,感觉很麻烦此时我们可以切换到root用户,只需要简单的执行sudo su 即可注意: 出于安全考虑,默认时Ubuntu的root用户时没有固定密码的,它的密码是随机产生并且动态改变的,貌似是每5分钟改变一次,所以用su(switch user)是不可以的,因为我们不知 阅读全文

posted @ 2012-02-04 14:45 龙豆 阅读(360) 评论(0) 推荐(0) 编辑

ubuntu登陆root用户[转]
摘要:和其它发行版本的Linux不同,Ubuntu Linux有一个与众不同的特点,那就是初次使用时,你无法作为root来登录系统,为什么会这样?这就要从系统的安装说起。对于其他Linux系统来 说,一般在安装过程就设定root密码,这样用户就能用它登录root帐户或使用su命令转换到超级用户身份。与之相反,Ubuntu默认安装时,并没有 给root用户设置口令,也没有启用root帐户。问题是要想作为root用户来运行命令该怎么办呢?没关系,我们可以使用sudo命令达此目的。 sudo是linux下常用的允许普通用户使用超级用户权限的工具,该命令为管理员提供了一种细颗粒度的访问控制方法,通过它人们既 阅读全文

posted @ 2012-02-04 14:42 龙豆 阅读(5924) 评论(0) 推荐(0) 编辑

给Ubuntu安装KDE桌面 [转]
摘要:自ubuntu5.10发布以来,我非常难得的让她在我的硬盘上顽强生存了近3个月,仔细想想就连当年我第一个接触的红旗Linux也不过坚持了一个月,呵呵,又写了一段废话──所 谓的“重回Kununtu”并不是指我删除ubuntu然后重新安装Kununtu,而是说在已经安装的ubuntu上直接安装 KDE desktop,实际上就是说在同一个ubuntu上安装了两个桌面管理器:一个默认的gnome和一个新安装的KDE。当然,ubuntu和 Kubuntu的差别本来就是默认桌面管理器的差别。接下来让我仔细介绍如何在ubuntu下安装KDE环境首先,打开终端,输入sudo apt-get install 阅读全文

posted @ 2012-02-04 13:49 龙豆 阅读(3923) 评论(0) 推荐(0) 编辑

导航

点击右上角即可分享
微信分享提示