摘要: Leveldb是一个C++库,它有提供标准的C接口,头文件在include/leveldb/c.h中levigo是leveldb 的一个go wrapper,它主要基于Leveldb中inlude/leveldb/c.h提供的方法做二次开发开发过程,以添加一个简单的计算功能为例:修改leveldb源码在include/leveldb/c.h中添加以下声明:extern int andre_add(const int a,const int b);在db/c.cc中添加andre_add对应的实现:int andre_add(const int a,const int b) { re... 阅读全文
posted @ 2013-08-27 12:38 AndreMouche 阅读(769) 评论(0) 推荐(0) 编辑
摘要: github上有个比较好用的leveldb go wrapperlevigo, 安装之前需现在机器上安装leveldb当前版本的LevelDB没有带安装脚本,需自行编译安装,过程如下:install leveldb:$ tar zxvf leveldb-1.12.0.tar.gz$ leveldb-1.12.0/$ make$ sudo cp -r include/leveldb /usr/include/$ sudo cp libleveldb.* /usr/lib/install levigo:$ go get github.com/jmhodges/levigo不知道为什么,如果把lev 阅读全文
posted @ 2013-08-24 15:23 AndreMouche 阅读(1089) 评论(1) 推荐(0) 编辑
摘要: 如题,在使用leveldb go wrapper levigo的时候,本地安装好levigo后,通过命令行编译代码正常并能work,但在Idea中使用时出现:can't find import "github.com/jmhodges/levigo"参考https://github.com/mtoader/google-go-lang-idea-plugin/issues/159我是这么解决的:分别创建源码和.a文件所在目录的软连接:其中/home/fun/software/go/go/fun@fun:~$ echo $GOROOT/home/fun/softwar 阅读全文
posted @ 2013-08-24 15:11 AndreMouche 阅读(995) 评论(0) 推荐(0) 编辑
摘要: 跳表是个概率性数据结构,可以被看作是二叉树的一个变种。跳表是由William Pugh在1990年发明的。它是一种用户维护有序元素的数据结构。一个跳表,应该具有以下特征:1.一个跳表应该有几个层(level)组成;2.跳表的第一层包含所有的元素;3.每一层都是一个有序的链表;4.如果元素x出现在第i层,则所有比i小的层都包含x;5.第i层的元素通过一个down指针指向下一层拥有相同值的元素;6.在每一层中,-1和1两个元素都出现(分别表示INT_MIN和INT_MAX);7.Top指针指向最高层的第一个元素。跳表的构造过程是:1、给定一个有序的链表。2、选择连表中最大和最小的元素,然后从其他元 阅读全文
posted @ 2013-08-05 11:31 AndreMouche 阅读(425) 评论(0) 推荐(0) 编辑
摘要: 太久没写代码了,今天看视频教程,谈到用非递归方法实现斐波那契数列,居然愣了一下,煞笔了……#includeint fab(int a) { if(a<=2)return 1; int pre = 0; int cur = 1; for(int i=2;i<=a;i++) { int temp = pre; pre = cur ; cur = temp + pre; } return cur;}int main(){ int a; //1 1 2 3 5 8 13 while(scanf("%d",&a)!=EOF){ printf("%d\n& 阅读全文
posted @ 2012-06-06 20:15 AndreMouche 阅读(353) 评论(0) 推荐(0) 编辑
摘要: 1.插入排序算法导论第一部分,基础知识。P17 插入排序,复杂度O(n^2)View Code 1 #include 2 const int N = 100; 3 int a[N]; 4 5 /** 6 算法导论第一部分,基础知识。 7 P17 插入排序,复杂度O(n^2) 8 */ 9 void insertion_sort( int *a,int n)10 {11 for(int i = 1;i =0&&a[j]>key)16 {17 a[j+1]=a[j];18 j--;19 }20 ... 阅读全文
posted @ 2012-03-22 21:37 AndreMouche 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 曾经省吃俭用买下《算法导论》,却一直放于桌角。 也许一切都源自我的贪心,眼高而手低,因为每次打开书,总想在短时间内将它消灭。 曾经大学给我提供了一个很好的学习算法的平台,但是我没有好好珍惜。 一直以来都很喜欢算法,但扪心自问,却是从未好好学过。 也许真的像很多人所言,我很笨很笨,但是笨不能成为借口。 对,就从今天起,好好学算法,我很笨,但我相信,业余的时候,坚持一份爱好,总是不错的。 虽然这个爱好,让我自卑,但它终究是一份爱好。 不喜欢别人对我的书、我的学习动机产生议论,一直以来,我想好好学习一些东西,真的只是兴趣。 管它呢,走自己的路,总是没错的。 对,... 阅读全文
posted @ 2012-03-22 21:32 AndreMouche 阅读(217) 评论(0) 推荐(0) 编辑
摘要: ZOJ 3578 Matrixinput:第一行:N M C 后面C行:ai,bi,hi,xi,yiproblem:一个N*M的网格平面,开始时平面上所有网格值为0定义操作T(ai,bi,hi,xi,yi):1.挑选出网格矩阵[xi,yi,xi+ai,yi+bi]中的最大值max2.将网格矩阵[xi,yi,xi+ai,yi+bi]中的所有值赋为max+hi求C次操作后,网格矩阵N*M中的最大值数据范围N__27 #include28 const int N = 1000+10;29 class Matrix {30 public:31 int left,right;32 int... 阅读全文
posted @ 2012-03-07 20:51 AndreMouche 阅读(512) 评论(0) 推荐(0) 编辑
摘要: 原始资料:http://www.howtoforge.com/setting-up-webdav-with-apache2-on-debian-etchapache+webdav的安装配置需求:1.开启一个web服务,使得客户端能够像操作本地磁盘一样操作服务端某个文件目录下的文件在服务器上安装配置apache+webdav模块说明:服务端:1.安装apache2+webdav 安装apache2:sudo apt-get install apache2激活webdav模块:sudo a2enmod dav_fssudo a2enmod davps:禁用某个模块:a2dismod ~重启apac 阅读全文
posted @ 2012-01-17 13:27 AndreMouche 阅读(3913) 评论(0) 推荐(0) 编辑
摘要: Hadoop集群搭建指南集群环境修改hosts前提条件安装hadoophadoop的简单使用其它集群环境(hadoop00作为namenode)hadoop00:10.34.14.60hadoop01:10.34.14.47hadoop02:10.34.14.31host配置:配置hosts,分别修改三台机器的/etc/hosts如下:1.hadoop00:能识别自己和所有的datanode机器10.34.14.60 hadoop0010.34.14.47 hadoop0110.34.14.31 hadoop022.hadoop01:能识别自己和namenode机器10.34.14... 阅读全文
posted @ 2011-12-16 14:34 AndreMouche 阅读(604) 评论(0) 推荐(0) 编辑
摘要: 几个Java的网络爬虫,有兴趣的可以参考一下,也可以改成C#的。我用过其中J-spider,只爬取网页,不做解析。感兴趣的可以把这个下载下来,看看源代码。我最初的爬虫就是用J-spider扩展的,后来因为字符的编码问题,就放弃了改用C#。页面:http://www.open-open.com/68.htmHeritrix点击次数:9563Heritrix是一个开源,可扩展的web爬虫项目。Heritrix设计成严格按照robots.txt文件的排除指示和META robots标签。WebSPHINX点击次数:7273WebSPHINX是一个Java类包和Web爬虫的交互式开发环境。Web爬虫( 阅读全文
posted @ 2011-09-08 11:01 AndreMouche 阅读(911) 评论(0) 推荐(0) 编辑
摘要: 本安装过程是基于http://www.cnblogs.com/AndreMouche/archive/2011/07/06/2099390.html安装solr的基础上展开的。1.只要将example/multicore拷贝到某个目录,以此目录作为solr.home:这里我将该文件拷贝到了/var/lib/tomcat6/下:sudo cp -R software/apache-solr-1.4.1/example/multicore/ /var/lib/tomcat6/2.然后设置”solr.home=/path/to/multicore”:根据上次部署的solr情况,找到 /var/lib 阅读全文
posted @ 2011-07-31 18:08 AndreMouche 阅读(1605) 评论(0) 推荐(0) 编辑
摘要: 安装php-solr扩展下载安装:libxml2 2.6.31或以上版本libcurl 7.18.0或以上版本到php官网下载solr:http://pecl.php.net/package/solr然后:/usr/local/php5/bin/phpize./configure --with-php-config=/usr/local/php5/bin/php-configsudo makesudo make testsudo make install安装完后会有类似这样的提示:Installing shared extensions: /usr/local/lib/php/extensio 阅读全文
posted @ 2011-07-31 18:05 AndreMouche 阅读(3698) 评论(0) 推荐(0) 编辑
摘要: 半个月了吧?貌似什么忙也没帮上,一直都在索取…学习效率很低,不知道该拿什么去回报…欠得越多,心里越是难安…为什么这么笨呢?好好睡一觉,明天又是美好的一天,加油! 阅读全文
posted @ 2011-07-14 00:45 AndreMouche 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 在linux和unix环境中,源码安装是最常用的软件安装方式,一些软件出了提供源码外,也提供各种发行版的二进制安装包(如基于redhat包管理工具的rpm包),但强烈建议使用源码安装方式。原因是:(1)没有类似rpm那样让人恼火的包依赖关系,(2)源码安装灵活自由,适用于不同的平台,维护也十分方便。源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install),具体的安装方法一般作者都会给出文档,这里主要讨论配置(configure)。Configure是个可执行脚本,他有很多选项,使用命令./configure –help输出周详的选项列表,如下 阅读全文
posted @ 2011-07-10 14:45 AndreMouche 阅读(388) 评论(0) 推荐(1) 编辑
摘要: 资料来源:http://datasearch.ruc.edu.cn/~mingcheng/?p=24x86和x64的含义和区别 On 2011 年 05 月 10 日, in 操作系统, by cmmp6 在下载使用与Windows和Linux上使用的软件时,常常会看到不同版本的软件里面含有x86和x64字样。那么x86和x64到底代表什么含义呢?x86是英特尔Intel首先开发制造的一种处理器体系结构的泛称。该系列较早期的处理器名称是以数字来表示,并以“86”作为结尾,包括Intel 8086、80186、80286、80386以及80486,因此其架构被称为“x86”。由于数字并不能作为注 阅读全文
posted @ 2011-07-08 21:57 AndreMouche 阅读(2102) 评论(0) 推荐(0) 编辑
摘要: http://lucene.apache.org/solr/tutorial.html 阅读全文
posted @ 2011-07-08 10:37 AndreMouche 阅读(507) 评论(0) 推荐(0) 编辑
摘要: 资料来源:http://www.pblog.lpcastle.com/2011/06/solr_ubuntu11-04/结合《在ubuntu11.04安装solr》、自己的实际安装修改。1 在ubuntu11.04下安装tomcat 6sudo apt-get updatesudo apt-get upgradesudo apt-get install tomcat6 tomcat6-admin tomcat6-common tomcat6-usertomcat6-docs tomcat6-examples2.下载apache-solr-1.4.1.zip并解压cd ~/wget -c htt 阅读全文
posted @ 2011-07-06 17:11 AndreMouche 阅读(729) 评论(0) 推荐(0) 编辑
摘要: referenced file contains errors http struts.apache.org dtds struts-2.0...解决方法(两种): 1. 这个可能是你的DTD文件找不到,或者解析有错,才发生的错误.你可以在地址栏里输入http://struts.apache.org/dtds/struts-2.0.dtd 这个看能查看不,如果不能,应该是网络的问题或XML解析的问题,解决的方法就是你把DTD文件(struts2-core-2.1.6.jar里面)拷贝到你的CLASSPATH目录下,把http://struts.apache.org/dtds/struts-2. 阅读全文
posted @ 2011-06-23 14:27 AndreMouche 阅读(521) 评论(0) 推荐(0) 编辑
摘要: 盛大创新院许式伟:影响我一生的五个重要选择资料来源:http://www.programmer.com.cn/4206/作者: wuzhimin分类:坊间人语阅读:40,227 次添加评论文/许式伟每个人的际遇是不同的,面临选择时,人们的处理方式也各不相同,从而形成不同但各有精彩的人生。而今天要说的是我的选择。跟随着这些选择背后的,可能是完全不同的生活方式。每当我想起这些有趣的事儿,我都会有意识地去思考其中的道理,并以此作为我面临下一次选择时思考的起点。第一个选择:考中专还是考高中?我的第一个重要选择,是在初中毕业的时候。我面临的选择是:到底考中专还是考高中。这个问题对于如今这个时代的人来说, 阅读全文
posted @ 2011-06-11 10:59 AndreMouche 阅读(389) 评论(0) 推荐(0) 编辑
摘要: 资料来源:http://www.cnblogs.com/leonjoon/archive/2008/07/19/1246791.html 使用Thread建立的线程默认情况下是前台线程,在进程中,只要有一个前台线程未退出,进程就不会终止。主线程就是一个前台线程。而后台线程不管线程是否结束,只要所有的前台线程都退出(包括正常退出和异常退出)后,进程就会自动终止。一般后台线程用于处理时间较短的任务,如在一个Web服务器中可以利用后台线程来处理客户端发过来的请求信息。而前台线程一般用于处理需要长时间等待的任务,如在Web服务器中的监听客户端请求的程序,或是定时对某些系统资源进行扫描的程序。下面的代码 阅读全文
posted @ 2011-06-10 18:44 AndreMouche 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 绘制半长轴和半短轴分别为a,b的椭圆//绘制半长轴和半短轴分别为a,b的椭圆void ellipse(double a,double b){ int n = 1000; double t = 0.0; glBegin( GL_LINE_LOOP); for (int i = 0; i < n; ++i) { t = i * 2 * 3.14159 / n; glVertex2f(a*cos(t), b*sin(t)); } glEnd();} 阅读全文
posted @ 2011-06-05 09:57 AndreMouche 阅读(907) 评论(0) 推荐(0) 编辑
摘要: opengl中的gluOrtho2D【转】gluOrtho2D(-5.0,5.0,-5.0,5.0); 参数分别代表(左下角x坐标,右上角x坐标,左下角y坐标,右上角y坐标)——坐标全相对于窗口左下角--原点),near和far默认为-1和1,此函数决定一个平行六面体,即View Volume! View Volume越大,里面的物体显得越小!如,一个点的坐标是(0,0,0)就是在平行六面体的中间,也就是在viewport的中间;又如一个点的坐标是(-5.0,-5.0,0),是在平行六面体的左下角,也就是在vieport的左下角。注:viewport是指视窗的大小,就好像我们的眼睛!viwep 阅读全文
posted @ 2011-06-04 11:20 AndreMouche 阅读(2064) 评论(0) 推荐(0) 编辑
摘要: 转自网站:http://www.router.net.cn/Article/24297.html昨天晚上update了一下svn上的项目,运行的瞬间我傻了眼了,晓萍妹妹竟然把界面设置的如此漂亮。通过晓萍妹妹的描述,我才知道原来C#还有一个可以使用皮肤的功能。今天下午查了一下具体的用法:C#皮肤使用方法如下:C#皮肤使用第一步先把IrisSkin2.dll文件【我机器上的位置是:C:\Documents and Settings\Administrator\Local Settings\Application Data\Microsoft\VisualStudio\8.0\ProjectAsse 阅读全文
posted @ 2011-05-30 22:08 AndreMouche 阅读(947) 评论(0) 推荐(0) 编辑
摘要: 浅析C# get set的简单用法http://developer.51cto.com 2009-09-10 15:27 tianlai122114 网易博客 我要评论(0) 在属性声明中,C# get set访问器都必须在属性体的内部声明。使用get访问器更改对象的状态是一种错误的编程样式。关于C# get set的文章很多,但是笔者的这篇文章有它的特别之处,笔者用简单的语言把c# get set讲述的十分明了。C# get set释一:属性的访问器包含与获取(读取或计算)或设置(写)属性有关的可执行语句。访问器声明可以包含get 访问器或set 访问器,或者两者均包含。声明采用下列形式之一 阅读全文
posted @ 2011-05-05 20:01 AndreMouche 阅读(795) 评论(0) 推荐(0) 编辑
摘要: POJ 1201 Intervalshttp://poj.org/problem?id=1201问题概述: 提供n组ai,bi,ci,表示在区间[ai,bi]中最少的整数个数,求所有提供区间中所包含的最小整数个数转化: 用S[i]表示[0,i]区间内的整数个数,则 1.S[bi+1]-S[ai]>=ci 2.1>=S[i+1]-S[i]>=0 求:MIN(S[e]-S[s]); 思路:从不等式中易想到差分限制系统 即若a-b>=c,建立从b指向a的边,边的权重为c, 那么最终问题转化为从s到e的最长路,用SPFA即可View Code 1 #include 2 #inc 阅读全文
posted @ 2011-04-03 20:43 AndreMouche 阅读(850) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1511POJ 1511 Invitation Cards大意:求有向图中从源点到每个节点的往返距离和分析: 1.根据题意建立两幅图,分别对应于正向图和反向图 2.分别对正向图和反向图求从源点即题中的1结点出发求単源最短路径, 3. 由2易得,正向图中求得的dis[i]为s到i的最短路,反向图中求得的dis[i]为i到s的最短路 那么s到i的往返距离即为两个dis相加 4.在求単源最短路时用SPFA,两次SPFA即可完成 重点注意:需要读入的数据较大,使用getint()函数可大大减少读数据时间 View Code 1 #include .. 阅读全文
posted @ 2011-03-31 20:03 AndreMouche 阅读(481) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3259POJ 3259 Wormholes大意:给出由n个顶点组成的有向图所有边信息,判断该图中是否存在负回路分析: 由于不知道图中的负环路会包含哪些顶点,故自定义一源点s,对于每个顶点k,有一条s到k权值为0的有向边,此时便可初始化s到每个顶点的距离dis[k]为0,然后用Bellman-Ford计算从源点s到各点的単源最短路,若存在某条边有第n+1次松弛操作,则存在负环,否则没有负环重点注意:引出源点s的定义,并创建从s到每个点的单向边的目的是为更好地理解dis[i]的初值问题,当然,对于初值dis[]不一定要是0,也可以是其他任意数, 阅读全文
posted @ 2011-03-31 17:57 AndreMouche 阅读(449) 评论(0) 推荐(0) 编辑
摘要: 再次感谢原作者的分享:http://hi.baidu.com/jzlikewei/blog/item/94db7950f96f995a1038c2cd.htmlBellman-Ford 算法及其优化Bellman-Ford算法与另一个非常著名的Dijkstra算法一样,用于求解单源点最短路径问题。Bellman-ford算法除了可求解边权均非负的问题外,还可以解决存在负权边的问题(意义是什么,好好思考),而Dijkstra算法只能处理边权非负的问题,因此 Bellman-Ford算法的适用面要广泛一些。但是,原始的Bellman-Ford算法时间复杂度为 O(VE),比Dijkstra算法的时 阅读全文
posted @ 2011-03-29 15:02 AndreMouche 阅读(3841) 评论(0) 推荐(3) 编辑
摘要: http://poj.org/problem?id=2960POJ 2960 S-Nim大意:有n堆石子,每堆石子个数已知,两人轮流从中取石子,每次可取的石子数x满足x属于集合S(k) = {s1,s2,s3...sk-1},问先拿者是否有必胜策略?分析:1.可将问题转化为n个子问题,每个子问题分别为: 从一堆x颗石子中取石子,每次可取的石子数为集合S(k)中的一个数2.分析(1)中的每个子问题, 易得:SG(x) = mex(SG[x-s[i]])(0<i<k-1); 3.后面就是SG函数的应用,根据Sprague-Grundy Therem:g(G)=g(G1)^g(G2)^g 阅读全文
posted @ 2011-03-27 20:48 AndreMouche 阅读(1011) 评论(0) 推荐(0) 编辑
摘要: 不记得是哪里搞的资料了,先贴上来再说,说我邪恶吧~~~~(>_<)~~~~ SG函数: 给定一个有向无环图和一个起始顶点上的一枚棋子,两名选手交替的将这枚棋子沿有向边进行移动,无法移动者判负。事实上,这个游戏可以认为是所有ImpartialCombinatorialGames的抽象模型。也就是说,任何一个ICG都可以通过把每个局面看成一个顶点,对每个局面和它的子局面连一条有向边来抽象成这个“有向图游戏”。下面我们就在有向无环图的顶点上定义Sprague-Garundy函数。首先定义mex(minimalexcludant)运算,这是施加于一个集合的运算,表示最小的不属于这个集合的非 阅读全文
posted @ 2011-03-27 19:07 AndreMouche 阅读(317) 评论(0) 推荐(0) 编辑
摘要: POJ 1704 Georgia and Bobhttp://poj.org/problem?id=1704大意:Georigia和Bob玩棋子游戏,棋子排成一行,类似于落入x坐标上,最左端为原点0所在位置,棋子i坐落于x轴上的chess[i](chess[i]>0)位置,游戏规则如下:1.每人每次可以且只能移动一个棋子2.每次移动棋子的格子数不限3.只能向左移动棋子4.移动过程中不能覆盖或越过其它棋子5.当谁没有棋子可以移动时,就输了6.两人轮流移动石子,女士优先,Georigia总是先移动7.最左端所在坐标为0,亦即放在1位置的棋子不能再往左移假设两人一样聪明,给定棋子的初始位置,判 阅读全文
posted @ 2011-03-27 10:35 AndreMouche 阅读(1169) 评论(0) 推荐(0) 编辑
摘要: 引言:有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个人轮流从堆中取物体若干,规定最后取光物体者取胜。这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻的数学原理。下面我们来分析一下要如何才能够取胜。(一)巴什博奕(BashGame):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果n=(m+1)r+s,(r为任意自然数,s≤m),那么先取者要拿走s个物品, 阅读全文
posted @ 2011-03-26 21:32 AndreMouche 阅读(499) 评论(0) 推荐(0) 编辑
摘要: POJ 1067 取石子游戏大意:有两堆石子,数量为A,B.两个玩家轮流从中取石子,每次可从一堆中取若干颗或从两堆中取相同数目石子,最后取完者为胜,问先取者是否有必胜策略?分析: 比较裸的威佐夫博奕(Wythoff Game) 有黄金分割知,不安全局面(an,bn)满足: an = floor(a*n),bn = floor(b*n); 其中: a = (1+sqrt(5))/2b = (3+sqrt(5))/2 在本题中,已知石子个数A,B,判断A,B是否能满足上述条件,即 若存在n能使得: floor(n*a)==A,floor(n*b)==B (1) 那么便必输,否则必胜 逆推上式,若存 阅读全文
posted @ 2011-03-26 21:06 AndreMouche 阅读(659) 评论(0) 推荐(0) 编辑
摘要: POJ 1155 TELEhttp://poj.org/problem?id=1155大意:某电台要广播一场比赛,该电台网络是由N个网点组成的一棵树,其中M个点为客户端,其余点为转发站。客户端i愿支付的钱为pay[i],每一条边需要的花费固定,问电台在保证不亏损的情况下,最多能使多少个客户端接收到信息?广播台所在的节点编号为1分析:树形DP1.user[i].dp[j]表示从转发站i开始计算,满足其子树中j个顾客的最大报酬 分析节点i的孩子节点s a.放弃该孩子s,值不变 b.取该孩子的若干的节点:user[i].dp[j-k]+user[s].dp[k]-cost[i][j](cost[i] 阅读全文
posted @ 2011-03-26 10:52 AndreMouche 阅读(733) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2897HDU 2897 邂逅明下大意:一堆石子共有n个,A,B两人轮流从中取,每次取的石子数必须在[p,q]区间内,若剩下的石子数少于p个,当前取者必须全部取完。最后取石子的人输。给出n,p,q,问先取者是否有必胜策略?Bash博弈的变形假设先取者为A,后取者为B,初始状态下有石子n个,除最后一次每次取的石子个数必须在[p,q]区间内,则:1.若当前石子共有n = (p+q)*r个,则A必胜,必胜策略为: A第一次取q个,以后每次若B取k个,A取(p+q-k)个,如此最后必剩下p个给B,A胜2.若n = (p 阅读全文
posted @ 2011-03-26 10:10 AndreMouche 阅读(469) 评论(0) 推荐(0) 编辑
摘要: POJ 1947 Rebuilding Roadshttp://poj.org/problem?id=1947大意:有n个点组成一个树,问至少要删除多少条边才能获得一棵有p个结点的子树?分析:树形DP 满足上诉条件的子树必由某个结点和它的若干子树组成,1.用dp[i][j]表示结点i恰好保留j个子树时至少需要删除的边数,若结点i有子树s a.删除子树s,dp[i][j]+1 b.子树s保留k个结点:dp[s][k-1]+dp[i][j-k] 综上:dp[i][j] =min(dp[i][j]+1,dp[s][k-1]+dp[i][j-k])(0 2 #include 3 constint N 阅读全文
posted @ 2011-03-26 09:56 AndreMouche 阅读(856) 评论(0) 推荐(0) 编辑
摘要: POJ 3207 Ikki's Story IV - Panda's Trick大意:已知圆上均匀分布着n个点,编号按逆时针数分别为0,1,2,。。。n-1由上述点够成m条边,这些边可分布于圆内或圆外,问这些边有没有可能不相交?分析:2-SAT1.构图: 每条边可在圆内或圆外,对应于两个点,Ai,Ai'2.若边i与边j相交,a.若选择Ai边则必须选Aj'边,b.若选择Ai'边则必须选择Aj边,故对应于上图: 建立边(Ai,Aj'),(Ai',Aj)3.若存在边i,有Ai,Ai'属于同一个强连通分量,则一定会相交View Code 阅读全文
posted @ 2011-03-19 12:15 AndreMouche 阅读(529) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2896HDU 2896 病毒侵袭大意:有n种病毒,编码已知。有m个网站源码,求带病毒的网站个数以及其对应的病毒Sample Input3aaabbbccc2aaabbbcccbbaaccSample Outputweb 1: 1 2 3total: 1hint:有3种病毒,编码分别为aaabbbccc2个网站,其中网站1包含了编号1,2,3病毒关键字分析:AC自动机。PS:学长出的题,算是模板题吧。。。。贴上来,备着O(∩_∩)O~View Code 1 #include<iostream> 2 阅读全文
posted @ 2011-03-16 22:19 AndreMouche 阅读(723) 评论(0) 推荐(0) 编辑
摘要: HDU 2222 Keywords Searchhttp://acm.hdu.edu.cn/showproblem.php?pid=2222大意:给出n个关键字,问在串str中出现了多少关键字。如有5个关键字如下:5shehesayshrher串str = "yasherhs"那么当前str中包含3个关键字,分别为:"she","he","her"分析:AC 自动机这里用的模板是根据网上修改的,子树节点是在插入时new的,寻找失配指针中使用的队列是用数组模拟的。PS:第一道AC自动机,拷完别人的代码。。。。弱。。。 阅读全文
posted @ 2011-03-16 21:11 AndreMouche 阅读(358) 评论(0) 推荐(0) 编辑