现在位置: 首页 > sorceress发表的所有文章
  • 08月
  • 29日
算法 ⁄ 共 1279字 评论关闭
题意:平面上有 n (2 ≤ n ≤ 15) 个点,现用平行于坐标轴的矩形去覆盖所有点,每个矩形至少盖两个点,矩形面积不可为0,求这些矩形的最小面积。 题目链接:http://poj.org/problem?id=2836 ——>>因为每个矩形至少要盖两个点,所以,枚举所有的两点组合。。 状态:dp[S] 表示将集合 S 中的所有点覆盖的最小矩形面积 状态转移方程:dp[news] = min(dp[news], dp[S] + r[i].area); 此题为重复覆盖,非精确覆盖,转移时用S ^ r[i].cover是不正确的。。 #include <cstdio> #include <algorithm> #include <cstring&......
阅读全文
  • 08月
  • 06日
综合 ⁄ 共 3665字 评论关闭
转自:http://panpan.blog.51cto.com/489034/104961 最近使用TinyXML进行C++ XML解析,感觉使用起来比较简单,很容易上手,本文给出一个使用TinyXML进行XML解析的简单例子,很多复杂的应用都可以基于本例子的方法来完成。以后的文章里会讲解使用Xerces进行C++ XML解析的例子,希望大家一起交流。 TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。     DOM模型即文档对象模型,是将整个文档分成多个......
阅读全文
如何给推荐系统的结果给予解释? 1. 基于约束的推荐系统:这种系统的商品都有各种属性,用户只知道个大概,但是不完全清楚各种属性,推荐系统在帮助用户一步步接近用户最终的期望。属性就是产生推荐理由的关键。本书中采用了一些推理方法来生成理由,挺玄乎的。我理解,直接告诉用户,我猜你最关心的是xx属性,根据这个属性,我来给你推荐xxx,这样就应该行了。 2. 基于实例的推荐系统:产生的理由和上面差不多,都是关键属性,过程根据推荐新算法不同而有所不同,个人感觉,不值得细看 3. 协同过滤的推荐系统:一般来讲,协同......
阅读全文
  • 12月
  • 14日
操作系统 ⁄ 共 897字 评论关闭
下载jdk-8u25-linux-i586.tar.gz oracle下载:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载完成 思路:新建文件夹-解压-设置环境变量-测试环境变量 命令如下 新建文件夹-解压 并放入新建文件夹中 sudo mkdir /usr/lib/jvm sudo tar zxvf jdk-8u25-linux-i586.tar.gz -C /usr/lib/jvm  设置环境变量 sudo gedit /etc/profile  在打开的文件末尾加入如下环境变量内容 #set java environment export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_25 export JRE_HOME=${JAVA_HOME}/jre   ex......
阅读全文
  • 07月
  • 14日
综合 ⁄ 共 9376字 评论关闭
摘 要: 随着人们对应用程序的要求越来越高,单进程应用在许多场合已不能满足人们的要求。编写多进程/多线程程序成为现代程序设计的一个重要特点,在多进程程序设计中,进程间的通信是不可避免的。Microsoft Win32 API提供了多种进程间通信的方法,全面地阐述了这些方法的特点,并加以比较和分析,希望能给读者选择通信方法提供参考。关键词 进程 进程通信 IPC Win32 API  1 进程与进程通信    进程是装入内存并准备执行的程序,每个进程都有私有的虚拟地址空间,由代码、数据以及它可利用的系统资源(如文件、管道等)组成。......
阅读全文
  • 04月
  • 15日
综合 ⁄ 共 282字 评论关闭
      以R、G、B为轴建立空间直角坐标系,则RGB图的每个象素的颜色可以用该三维空间的一个点来表示,而Gray图的每个象素的颜色可以用直线R=G=B上的一个点来表示。于是rgb转gray图的本质就是寻找一个三维空间到一维空间的映射,最容易想到的就是射影(即过rgb空间的一个点向直线R=G=B做垂线),事实上Matlab也是这样做的,并且有Gray = 0.29900 * R + 0.58700 * G + 0.11400 * B。      灰度可以说是亮度(luminance)的量化值,而RGB的定义是客观的三个波长值,转换时需要考虑人眼对不同波长的灵敏度曲线,所以系数不相等。
阅读全文
  • 02月
  • 21日
综合 ⁄ 共 1996字 评论关闭
昨天和前天学习了DLX,在解决一类搜索问题(精确覆盖和重复覆盖)时具有很好的效果。 精确覆盖的定义:给定一个01矩阵,要求从中选出一些行,使得每列有且只有有一个一; 重复覆盖的定义:给定一个01矩阵,要求从中选出一些列,使得每列至少有一个一。 模板:(参考rabbit的模板) struct DLX { int L[maxn],R[maxn],U[maxn],D[maxn]; int row[maxn],col[maxn]; int ans[maxm],S[maxm],H[maxm]; bool vis[maxn]; int cnt,size; /*common part */ void ini(int m) { for(int i=0; i<=m; i......
阅读全文
  • 02月
  • 20日
综合 ⁄ 共 1485字 评论关闭
题意:n*m的地图,给出L个火星人登陆的坐标,要在火星人登陆地球的瞬间全部消灭他们,有一种激光枪,一次可以消灭一行(或一列),消灭一行(或一列)有不同的代价,总代价是所有激光枪的代价之积。 思路:之前做过类似的题是求最少多少次能消灭,而最少的次数不一定是代价最小的,行跟列建立二分图,每个火星人就是一条边,就是选一些点覆盖所有的边,这些点的权值之积最小,如果是求和的话就是二分图的最小点权覆盖集了,所以要把求积转化成求和,a*b=log(a)+log(b);求出最小割就可以了。 #include<stdio.h> #includ......
阅读全文
   给定一个数组,其中有一个元素的出现次数超过1/2,如何快速的找出这个元素。这个问题在《编程之美》中是这样描述的: “研究院的员工和实习生们都很喜欢在Tango上面交流灌水。传说,Tango有一大“水王”,他不但喜欢发贴,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子总数的一半。如果你有一个当前论坛上所有帖子(包括回帖)的列表,其中帖子作者的ID也在表中,你能快速找出这个传说中的Tango水王吗?”   两个问题殊途同归,都是快速查找数组中出现次数超过一半的元素。   最直接的解法:对数组进行排序,取n......
阅读全文
  • 01月
  • 24日
综合 ⁄ 共 351字 评论关闭
1、比较两个字符串是否相等的办法是:  if [ "$a" = "$b" ]; then     这里的关键有几点:     1 使用单个等号     2 注意到等号两边各有一个空格:这是unix shell的要求     3 $a可以加上引号,也可以不加 2、整数比较     -eq 等于,如:if [ "$a" -eq "$b" ]     -ne 不等于,如:if [ "$a" -ne "$b" ]     -gt 大于,如:if [ "$a" -gt "$b" ]     -ge 大于等于,如:if [ "$a" -ge "$b" ]     -lt 小于,如:if [ "$a" -lt "$b" ]     -le 小于等于,如:if [ "$a" -le "$b" ] 3、判断字符串是否为空: -z 字符串为"null......
阅读全文
解决办法:Access restriction: The type JPEGImageEncoder is not accessible due to restriction   在Eclipse中处理图片,需要引入两个包: import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGImageEncoder; 报错: Access restriction: The type JPEGImageEncoder is not accessible due to restriction on required library C:\Java\jre1.6.0_07\lib\rt.jar 此时解决办法:Eclipse 默认把这些受访问限制的API设成了ERROR。只要把Windows-Preferences-Java-Complicer- Errors/Warnings里......
阅读全文
  • 04月
  • 25日
综合 ⁄ 共 157字 评论关闭
unsigned int BKDRHash(char *str) { unsigned int seed = 131; // 31 131 1313 13131 131313 etc.. unsigned int hash = 0; while (*str) { hash = hash * seed + (*str++); } return (hash & 0x7FFFFFFF); }
阅读全文