zhang20072844的专栏

一些当前好走的路,会越走越窄,而一些看上去很难走很辛苦的路,越走却越宽广 。
私信 关注
AndyZhang
码龄12年

一些当前好走的路会越走越窄,而一些当前艰难的路却会越走越宽广。

  • 587,908
    被访问量
  • 293
    原创文章
  • 6,141
    作者排名
  • 250
    粉丝数量
  • 于 2008-11-19 加入CSDN
获得成就
  • 获得139次点赞
  • 内容获得128次评论
  • 获得62次收藏
荣誉勋章
TA的专栏
  • ACM解题报告
    125篇
  • linux
    5篇
  • 个人日志(心情、生活)
    3篇
  • winCE驱动开发总结
    13篇
  • mfc知识点备忘录
    9篇
  • Mobile开发总结
    9篇
  • C/C++
    4篇
  • 嵌入式
    8篇
  • 翻译
    5篇
  • windows
    4篇
  • 线段树
    6篇
  • dp
    15篇
  • 搜索
    7篇
  • 数论
    21篇
  • 计算几何
    11篇
  • 图论
    29篇
  • 模拟
    11篇
  • 枚举
    5篇
  • hash
    1篇
  • 二分 分治
    7篇
  • 贪心
    3篇
  • 数据结构
    4篇
  • C#
  • 中位数
    2篇
  • 排序
    1篇
  • 组合数学
    2篇
  • leetcode
  • 设计模式
  • 大数据,机器学习,统计
  • python
  • 51nod
    10篇
  • 大数据
    1篇
  • 机器学习
    5篇
  • 统计
    1篇
  • 服务架构
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

朴素贝叶斯法

朴素贝叶斯法是基于贝叶斯原理与特征条件独立假设的分类方法。对于给定的训练数据集,首先基于特这条件独立假设学习输入输出的联合概率分布了然后基于此模型,对于给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。朴素贝叶斯法实现简单,学习与预测的效率都和高,是一种常用的方法。朴素贝叶斯法的学习和分类:
原创
4854阅读
2评论
2点赞
发布博客于 5 年前

机器学习之决策树

决策树是一种基本的分类与回归方法。这里主要讨论用于分类的决策树。
原创
5056阅读
0评论
2点赞
发布博客于 5 年前

机器学习之KNN(K近邻)

简介k近邻法(K-NN)是一种基本的分类与回归方法。分类时,对新的实例,根据k个最近邻的训练实例的类别,通过多数表决等方式进行预测。k近邻的三要素:k值的选择、距离度量以及分类决策规则。k近邻算法简单、直观,给定一个训练数据集,对于输入的实例,在训练数据集中找到与该实例最近邻的k个实例,这k个实例多数属于某个类,就把该输入实例氛围这个类。k-近邻模型k值的选择k值减
原创
1356阅读
0评论
1点赞
发布博客于 5 年前

nod-1625-夹克爷发红包

题目:在公司年会上,做为互联网巨头51nod掌门人的夹克老爷当然不会放过任何发红包的机会。现场有n排m列观众,夹克老爷会为每一名观众送出普通现金红包,每个红包内金额随机。接下来,夹克老爷又送出最多k组高级红包,每组高级红包会同时给一排或一列的人派发 ,每个高级红包的金额皆为x。派发高级红包时,普通红包将会强制收回。同时,每个人只能得到一个高级红包
原创
701阅读
2评论
0点赞
发布博客于 5 年前

机器学习之感知机

感知机是二类分类的线性分类模型,输入为实例的特征向量,输出为实例的类别,取+1和-1二值,感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型。感知机学习旨在求出将训练数据进行线性划分的分离超平面,为此,导入基于误分类的损失函数,利用梯度下降法对损失函数进行极小化,求得感知机模型。感知机模型:f(x)=sign(w*x +b)其中,w和b是感知机的模型参数,
原创
1949阅读
1评论
0点赞
发布博客于 5 年前

nod-1631-小鲨鱼在51nod小学

题目鲨鱼巨巨2.0(以下简称小鲨鱼)以优异的成绩考入了51nod小学。并依靠算法方面的特长,在班里担任了许多职务。每一个职务都有一个起始时间A和结束时间B,意为小鲨鱼在[A, B]时间内,担任了某职务(inclusively)。现在给定小鲨鱼的职务履历表,你可以高效的给出小鲨鱼在某天担任了哪些职务吗?p.s. 由于小鲨鱼担任的职务太多,所有任期小
原创
1026阅读
1评论
0点赞
发布博客于 5 年前

nod-1629-B君的圆锥

题目:B君要用一个表面积为S的圆锥将白山云包起来。B君希望包住的白山云体积尽量大,B君想知道体积最大可以是多少。注意圆锥的表面积包括底面和侧面。Input一行一个整数,表示表面积S。(1 Output一行一个实数,表示体积。Input示例8Output示例1.504506思路:
原创
1122阅读
0评论
0点赞
发布博客于 5 年前

nod-1089-最长回文子串 V2

题目回文串是指aba、abba、cccbccc、aaaa这种左右对称的字符串。输入一个字符串Str,输出Str里最长回文子串的长度。Input输入Str(Str的长度 Output输出最长回文子串的长度L。Input示例daabaacOutput示例5思路:              最
原创
621阅读
0评论
0点赞
发布博客于 5 年前

nod-1416-两点

题目福克斯在玩一款手机解迷游戏,这个游戏叫做”两点”。基础级别的时候是在一个n×m单元上玩的。像这样: 每一个单元有包含一个有色点。我们将用不同的大写字母来表示不同的颜色。这个游戏的关键是要找出一个包含同一颜色的环。看上图中4个蓝点,形成了一个环。一般的,我们将一个序列 d1,d2,...,dk 看成一个环,当且仅当它符合下列条件时:1.
原创
682阅读
0评论
0点赞
发布博客于 5 年前

nod-1770-数数字

题目:统计一下 aaa ⋯ aaan个a × b 的结果里面有多少个数字d,a,b,d均为一位数。样例解释:3333333333*3=9999999999,里面有10个9。Input多组测试数据。第一行有一个整数T,表示测试数据的数目。(1≤T≤5000)接下来有T行,每一行表示一组测试数据,有4个
原创
1027阅读
0评论
1点赞
发布博客于 5 年前

nod-1639-绑鞋带

题目:有n根鞋带混在一起,现在重复n次以下操作:随机抽出两个鞋带头,把它们绑在一起。可以想象,这n次之后將不再有单独的鞋带头,n条鞋带系成了一些环。那么有多大概率刚好所有这些鞋带只形成了一个环?Input仅一行,包含一个整数n  (2Output输出一行,为刚好成环的概率。Input示例2Output示例0.666667
原创
840阅读
0评论
0点赞
发布博客于 5 年前

nod-1640-天气晴朗的魔法

题目:这样阴沉的天气持续下去,我们不免担心起他的健康。51nod魔法学校近日开展了主题为“天气晴朗”的魔法交流活动。N名魔法师按阵法站好,之后选取N - 1条魔法链将所有魔法师的魔力连接起来,形成一个魔法阵。魔法链是做法成功与否的关键。每一条魔法链都有一个魔力值V,魔法最终的效果取决于阵中所有魔法链的魔力值的和。由于逆天改命的魔法
原创
1033阅读
0评论
0点赞
发布博客于 5 年前

nod-1483-化学变换

题目有n种不同的化学试剂。第i种有ai升。每次实验都要把所有的化学试剂混在一起,但是这些试剂的量一定要相等。所以现在的首要任务是把这些化学试剂的量弄成相等。有两种操作:·        把第i种的量翻倍,即第i种的量变成2ai。·        把第i种的量减半,除的时候向下取整,即把第i种的量变成 ⌊ ai2 ⌋ 。现在所有的化学试剂的量已知,
原创
1357阅读
0评论
0点赞
发布博客于 5 年前

机器学习之1-概论

机器(统计)学习一之概论1、统计学习1.1特点1、以计算机及网络为平台,建立在计算机网络之上的;2、以数据为研究对象,是数据驱动的学科;3、目的是对数据进行预测与分析;4、以方法为中学,构建模型并应用模型进行预测与分析5、是概率论、统计学、信息论、计算理论、最优化离线以及计算机科学等多个领域的交叉学科;1.2统计学习的对象对象是数据,从数据出发,提取数据特征,抽
原创
622阅读
0评论
0点赞
发布博客于 5 年前

nod-1418-放球游戏

有N个球排成一排,每个球都是R、G、B三种颜色之一。现在想重新排列这一排球,你要重复以下过程N次:1)从原来的那排球中的最左侧取出一个球;2)将取出的求插入新的球排列的任意位置,即可以放在最左或最右端,也可以插入那排球的任意两个相邻球之间;3)计算这轮得分,如果是第一个球那么得0分;如果放在两端(最左或最右端)得分为除了新放入的球外,剩余球的颜色种数;如果放在两个球之间,那么得分为这个
原创
816阅读
0评论
0点赞
发布博客于 5 年前

python之文件操作

文件对于python来讲,内置open函数会创建一个python文件对象,可以作为计算机上的一个文件链接。在调用open之后,你可以通过返回的文件对象的方法来读写相关的外部文件。常见文件运算output = open(r'c:\spam', 'w') 创建输出文件 w写入input = open('data, 'r'')创建输入文件 r指读写input = open('da
原创
1402阅读
1评论
0点赞
发布博客于 5 年前

整数划分问题

整数划分问题数 n 的划分是将 n 表示成多个正整数之和的形式划分可以分为两种情况:A  划分的多个正整数中,正整数的数量是任意的   这又可以分为划分的正整数中,正整数可以相同与不同两类 1.  划分的多个正整数可以相同, 递推方程可以表示为:      (1)   dp[n][m]= dp[n][m-1]+ dp[n-m][m]           
转载
1206阅读
0评论
0点赞
发布博客于 7 年前

由于应用程序配置不正确,应用程序未能启动.重新安装应用程序可能会纠正这个问题

转自:http://wenwen.soso.com/z/q305937674.htm老是在win7编译的软件到xp或者其他电脑没法使用,下面就是方法,屡试不爽。方法一:在类似C:\Program Files\Microsoft Visual Studio 8\VC\redist\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT 下找到了下列文件
转载
2446阅读
0评论
0点赞
发布博客于 7 年前

git服务器

转自:http://blog.csdn.net/yuan892173701/article/details/7775002一、安装配置git1、安装git和openssh:howie@ubuntu-12-04:~$ sudo apt-get install git-core openssh-server openssh-client添加用户git, 该用户将作为所有代码
转载
1040阅读
0评论
0点赞
发布博客于 8 年前

在win7上装vitualBox再装ubuntu12.04,安装samba服务器问题

1 安装samba:sudo apt-get install sambasudo apt-get install sambafs下面我们来共享群组可读写文件夹,假设你要共享的文件夹为: /home/andy/sharemkdir /home/andy/sharechmod 777 /home/andy/share备份并编辑smb.
原创
2113阅读
0评论
0点赞
发布博客于 8 年前

ubuntu 下的PDF阅读器(超级好使)

转至:http://blog.csdn.net/yangzhongxuan/article/details/8242740step 1: 安装      sudo apt-get install okular      step 2: 注释      按 F6 快捷方式打开注释功能,你会发现太神奇了。      step 3: 中文配置      如果安
转载
1283阅读
0评论
0点赞
发布博客于 8 年前

整数分解为2的幂-清华复试上机题

题目:任何数都能分解成2的幂,给定整数n,求n的此类划分方法的数量!比如n = 7时。7=1+1+1+1+1+1+1  =1+1+1+1+1+2  =1+1+1+2+2  =1+2+2+2  =1+1+1+4  =1+2+4共有6种划分方法。解法:来自:http://www.cnblogs.com/skyiv/archiv
原创
5021阅读
1评论
3点赞
发布博客于 8 年前

Minimum Modular单纯数学

题目描述N个不同的数a[1],a[2]...a[n],你可以从中去掉K个数,并且找到一个正整数M,使得剩下的N - K个数,Mod M的结果各不相同,求M的最小值。Input第1行:2个数N, K,中间用空格分隔,N表示元素的数量,K为可以移除的数的数量(1 <= N <= 5000, 0 <= K <= 4, 1 <= a[i] <= 1000000)。Ou
原创
1379阅读
2评论
1点赞
发布博客于 8 年前

[转]pongo英雄会-修路题解

转自:http://blog.csdn.net/shuyechengying/article/details/9821745题目用图论的语言来叙述就是:一个起初没有边的图,不断随机选择未直接相连的两点连边直到图连通,求连边的期望。p[n][m]表示加m条边使得n个点连通的概率。那么p[n][m]-p[n][m-1]就表示加了m-1条边图尚未连通,加了第m条边后图连通
转载
1105阅读
0评论
0点赞
发布博客于 8 年前

第K大数-二分原来还可以这样

题目:数组A和数组B,里面都有n个整数。数组C共有n^2个整数,分别是A[0] * B[0],A[0] * B[1] ......A[1] * B[0],A[1] * B[1]......A[n - 1] * B[n - 1](数组A同数组B的组合)。求数组C中第K大的数。例如:A:1 2 3,B:2 3 4。A与B组合成的C包括2 3 4 4 6 8 6 9 12共9个数。
原创
1490阅读
0评论
0点赞
发布博客于 8 年前

N的倍数-鸽巢原理

知道的定理,原理,推论太多了,但是真正有个问题放在你面前的时候,你是否能够通过分析解决呢? 什么是鸽巢原理 也没有一个比较官方的说明,大都是一些例子,比如:鸽巢原理即抽屉原理(抽屉原理)。桌上有十个苹果,要把这十个苹果放到九个抽屉里,无论怎样放,我们会发现至少会有一个抽屉里面至少放两个苹果更多的例子及证明:http://baike.baidu.com/view/88
原创
2564阅读
0评论
0点赞
发布博客于 8 年前

直线分割圆-公式递推

题目:圆上有N个点,每个点和其他所有点之间都有直线相连。并且任意3线不共点。计算这些直线把圆分割所得的区域的数量K。 例如:N = 2,K = 2,N = 3,K = 4。由于结果可能会很大,输出K Mod (10^9 + 7)的结果。Input输入:1个数N。(2 Output输出数量 Mod 10^9 + 7Input 示例2Output 示例
原创
3683阅读
0评论
0点赞
发布博客于 8 年前

斜率小于0的连线数量-归并排序

题目:二维平面上N个点之间共有C(n,2)条连线。求这C(n,2)条线中斜率小于0的线的数量。二维平面上的一个点,根据对应的X Y坐标可以表示为(X,Y)。例如:(2,3) (3,4) (1,5) (4,6),其中(1,5)同(2,3)(3,4)的连线斜率 Input第1行:1个数N,N为点的数量(0 <= N <= 50000)第2 - N + 1行:N个点的坐
原创
1953阅读
0评论
0点赞
发布博客于 8 年前

Pongo建立信号基站-实际上还是考中位数

题目:要建立一个信号基站服务n个村庄,这n个村庄用平面上的n个点表示。假设基站建立的位置在(X,Y),则它对某个村庄(x,y)的距离为max{|X – x|, |Y – y|}, 其中| |表示绝对值,我们的目标是让所有村庄到信号基站的距离和最小。 基站可以建立在任何实数坐标位置上,也可以与某村庄重合。输入: 给定每个村庄的位置x[],y[],x,y都是整数,满足:
原创
1537阅读
0评论
0点赞
发布博客于 8 年前

最小距离之和-中位数

1 中位数 中位数:将数组大小为n的数据,从大到小,或者是从小到大排列,那么当n为奇数的时候,中位数就是(n+1)/2的这个数,当n为偶数的时候,中位数就是n/2和(n+1)/2这二个数据的平均数。中位数:也就是选取中间的数。一种衡量集中趋势的方法。要找中位数,首先需要从小到大排序,例如这组数据:23、29、20、32、23、21、33、25;我们将数据排序20、21、23
原创
7486阅读
1评论
3点赞
发布博客于 8 年前

最大全1子矩阵

题目描述:给出1个M*N的矩阵M1,里面的元素只有0或1,找出M1的一个子矩阵M2,M2中的元素只有1,并且M2的面积是最大的。输出M2的面积。Input第1行:2个数m,n中间用空格分隔(2 <= m,n <= 100)第2 - N + 1行:每行m个数,中间用空格分隔,均为0或1。Output输出最大全是1的子矩阵的面积。Input 示例 3 3
原创
5933阅读
0评论
1点赞
发布博客于 8 年前

素数检测-Miller_Rabin算法-hoj1356-nod1186质数检测V2

一、 先介绍几个定理  费马小定理,二次探测定理参考:http://baike.baidu.com/,http://blog.csdn.net/iyundi/article/details/99553531、费马小定理著名的费马小定理为素数判定提供了一个有力的工具.费马小定理:如果p是一个素数,且(0则证明是容易的.2、二次探测定理如果p是素数,x是小于
原创
4383阅读
0评论
1点赞
发布博客于 8 年前

最大的最大公约数-数论

题目: 给出N个正整数,找出N个数两两之间最大公约数的最大值。例如:N = 4,4个数为:9 15 25 16,两两之间最大公约数的最大值是15同25的最大公约数5。Input第1行:一个数N,表示输入正整数的数量。(2 <= N <= 50000)第2 - N + 1行:每行1个数,对应输入的正整数.(1 Output输出两两之间最大公约数的最大值。I
原创
2357阅读
0评论
0点赞
发布博客于 8 年前

消灭兔子-贪心

1191 .消灭兔子时间限制:1 秒 空间限制:65536 KB 分值:40有N只兔子,每只有一个血量B[i],需要用箭杀死免子。有M种不同类型的箭可以选择,每种箭对兔子的伤害值分别为D[i],价格为P[i](1 特别说明:1、当箭的伤害值大于等于兔子的血量时,能将兔子杀死;2、血量B[i],箭的伤害值D[i],箭的价格P[i],均小于等于100000。In
原创
1654阅读
0评论
1点赞
发布博客于 8 年前

幸运号码-dp

题目:时间限制:1 秒 空间限制:65536 KB 分值:201个长度为2N的数,如果左边N个数的和 = 右边N个数的和,那么就是一个幸运号码。例如:99、1230、123312是幸运号码。给出一个N,求长度为2N的幸运号码的数量。由于数量很大,输出数量 Mod 10^9 + 7的结果即可。Input输入N(1Output输出幸运号码的数量 Mo
原创
1875阅读
0评论
0点赞
发布博客于 8 年前

原根-快速求解一个数的原根

1.原根定义假设一个数g对于P来说是原根,那么g^i mod P的结果两两不同,且有 1简单来说,g^i mod p ≠ g^j mod p (p为素数)其中i≠j且i, j介於1至(p-1)之间则g为p的原根。 简单的来说,如果g是P的原根,那么g的(1...P-1)次幂mod P的结果一定互不相同。 那么简化一下:首先看一下欧拉定理:欧拉定理(也称费
原创
38620阅读
4评论
7点赞
发布博客于 8 年前

Windows Mobile 6 sdk installation error, COM3 in use,please check the implementation

问题:Windows Mobile 6 sdk installation error, COM3 in use,please check the implementation 1. Windows->open "Run" ->click "regedit.exe" //点击windows按钮,在运行框中输入regedit,然后回车2. Move to "HKEY_LOCAL_MACHI
原创
1362阅读
1评论
1点赞
发布博客于 8 年前

优先队列及最小堆最大堆

1 堆    1.1 简介n个关键字序列Kl,K2,…,Kn称为(Heap),当且仅当该序列满足如下性质(简称为堆性质):(1)ki=号。//k(i)相当于二叉树的非叶结点,K(2i)则是左孩子,k(2i+1)是右孩子若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树:树中任一非叶结点的关键字均不大于(或不小于)其左右孩子(
原创
32540阅读
2评论
13点赞
发布博客于 8 年前

n!后面有多少个0

很经典的一道数学题:求n!后面有多少个0。我的思路:从"那些数相乘可以得到10"这个角度,问题就变得比较的简单了。     首先考虑,如果N的阶乘为K和10的M次方的乘积,那么N!末尾就有M的0。如果将N的阶乘分解后,那么     N的阶乘可以分解为: 2的X次方,3的Y次方,4的5次Z方,.....的成绩。由于10 = 2 * 5,所以M只能和
转载
1126阅读
0评论
0点赞
发布博客于 8 年前

约瑟夫问题(优化优化再优化)

1 什么是约瑟夫问题约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。2 如何求最后一个出列的人1、模拟方法2、数学方法3 模拟方法模拟方法就是所谓的一个个模拟,一个一个出列。这个方法
原创
2391阅读
1评论
0点赞
发布博客于 8 年前

动态规划解最长公共子序列问题

动态规划法经常会遇到复杂问题不能简单地分解成几个子问题,而会分解出一系列的子问题。简单地采用把大问题分解成子问题,并综合子问题的解导出大问题的解的方法,问题求解耗时会按问题规模呈幂级数增加。为了节约重复求相同子问题的时间,引入一个数组,不管它们是否对最终解有用,把所有子问题的解存于该数组中,这就是动态规划法所采用的基本方法。【问题】 求两字符序列的最长公共字符子序列问题描述
转载
718阅读
0评论
0点赞
发布博客于 8 年前

24点游戏-hero

hero-24点游戏
原创
928阅读
0评论
0点赞
发布博客于 8 年前

poj1286-polya计数、burnside定理

组合数学题目就是一个手镯,用三种颜色图,可以旋转和翻转,求有多少方案。 建议先看看群、burnside定理,polya计数等知识给出公式; 代码:#include #include #include //最大公约数long long gcd(long long a, long long b){ long long c; if (a =
原创
1953阅读
0评论
0点赞
发布博客于 9 年前

C#注册表

C#操作注册表Windows 操作系统的注册表包含了很多有关计算机运行的配置方式,打开注册表我们可以看到注册表是按类似于目录的树结构组织的,其中第二级目录包含了五个预定义主键分别是:HKEY_CLASSES_ROOT,HKEY_CURRENT_USER,HKEY_LOCAL_MACHINE,HKEY_USERS,HKEY_CURRENT_CONFIG。  下面我们来分别解释这5个类
转载
572阅读
0评论
1点赞
发布博客于 9 年前

poj2014-模拟----水题1A

题目比较简单,不多说,就是按照题目说的将矩形放到框里(框的最大宽度给出),放不下,就放下一行。注意这里不能旋转,这也就成为水题模拟题的原因,也不让求最大最小,就是模拟最终的状态。不能旋转,直接放。 代码:#include #include #include #define Min(a,b) (a<b?a:b)#define Max(a,b) (a>b?a:b)i
原创
1002阅读
0评论
0点赞
发布博客于 9 年前

poj3522-kruscal算法求最小生成树+枚举

题意;给你一个无向,求所有生成树中,最大边与最小边差值最小的那个值。算法分析:排序,从最小边开始,枚举每一条最小边,然后求最小生成树,求差值,然后求出最小值。代码;#include #include #include #define nMax 105#define inf 0x7fffffffstruct EDGE{ int u,v,w;}e
原创
937阅读
0评论
0点赞
发布博客于 9 年前

poj1661-这题目简单dp但是要考虑情况比较多,wa了n次死在了自己定义的无穷大上面

题目大意:这个是中文的,就不用解释了,有个游戏叫是男人就下100层,就是这个游戏哈。。。算法分析:仔细分析发现,其实就是从第一个点开始,由于题目说肯定有解,不会摔死,所以要么向左走,要么向右走,其中至少一个有解。到下一层,同样要么左走要么右走,其实就是两种状态。那么我们每次只需要求这两种状态的最小值既可。状态方程:对于每一层的两个点,edge[i].min1 = Min
原创
1238阅读
0评论
2点赞
发布博客于 9 年前

poj1036-题目好难理解,理解了就变得简单了许多dp

一开始,不理解题目意思,都不知道样例是如何计算出来的。看到discuss中有人说了题目的意思是:有个伸缩门,门的宽度0~K,每个时间可以伸长或缩短1个单位,有N个流氓,他们在T时刻到达,如果这时门的宽度正好与他们的stoutness相等时,便可获得一定的收入,问最大的收入是多少。 看不到题目说什么伸缩门,不知道这是什么翻译,但是总算理解题目意思了,其实就是个背包。就是在第i个流氓能进的
原创
1921阅读
0评论
0点赞
发布博客于 9 年前

poj2481-树状数组

这里就是求区间覆盖问题,如果你的区间完全覆盖它的,那么你就比他强壮。求出比自己强壮的牛数。 树状数组:树状数组是一个查询和修改复杂度都为log(n)的数据结构,假设数组a[1..n], 用lowbit函数维护了一个树的结构那么查询a[1]+...+a[n]的时间是log级别的,而且是一个在线的数据结构,   支持随时修改某个元素的值,复杂度也为log
原创
3656阅读
0评论
1点赞
发布博客于 9 年前

后缀数组——处理字符串的有力工具,好好学习

后缀数组——处理字符串的有力工具作者:罗穗骞2009年1月  【摘要】  后缀数组是处理字符串的有力工具。后缀数组是后缀树的一个非常精巧的替代品,它比后缀树容易编程实现,能够实现后缀树的很多功能而时间复杂度也并不逊色,而且它比后缀树所占用的内存空间小很多。可以说,在信息学竞赛中后缀数组比后缀树要更为实用。本文分两部分。第一部分介绍两种构造后缀数组的方法,重点介绍如何用简洁高效的代码
转载
2972阅读
1评论
2点赞
发布博客于 9 年前

后缀树学习笔记

在pongba的讨论组上看到一道Amazon的面试题:找出给定字符串里的最长回文。例子:输入XMADAMYX。则输出MADAM。这道题的流行解法是用后缀树(Suffix Tree)。这坨数据结构最酷的地方是用它能高效解决一大票复杂的字符串编程问题:在文本T里查询T是否包含子串P(复杂度同流行的KMP相当)。 文本T里找出最长重复子串。比如abcdabcefda里abc同da都重复出现,而最
转载
994阅读
0评论
0点赞
发布博客于 9 年前

poj2728-最小比率生成树/0-1分数规划/二分/迭代

题目意思:有n个村庄,村庄在不同坐标和海拔,现在要对所有村庄供水,只要两个村庄之间有一条路即可,建造水管距离为坐标之间的欧几里德距离,费用为海拔之差,现在要求方案使得费用与距离的比值最小,很显然,这个题目是要求一棵最优比率生成树。 0-1规划: 概念有带权图G, 对于图中每条边e[i], 都有benifit[i](收入)和cost[i](花费), 我们要求的是一棵生成树T,
原创
4399阅读
0评论
2点赞
发布博客于 9 年前

poj3256-dfs

题目意思比较简单,有K头牛,有N个牧地,这N个牧地有M条单项路,求如果这K头牛要聚餐,可以去的地方有多少个,也就是每头牛都能到的地方有多少个? 分析:开始K头牛在某个牧草地,然后求着K头牛能都到的地方多少个。那我们可以dfs求出每头牛能到的地方,然后枚举N个牧草地,如果有N头牛能到的就是了。。。。 代码:#include #include #include
原创
1271阅读
0评论
0点赞
发布博客于 9 年前

poj2516-经典最小费用最大流-有点难度

题目意思,这个理解起来就很费劲       有N个供给商,M个雇主,K种物品。每个供给商对每种物品的的供给量已知,每个雇主对每种物品的需求量的已知,从不同的供给商输送不同的货物到不同的雇主手上需要不同的花费,又已知从供给商Mj送第kind种货物的单位数量到雇主Ni手上所需的单位花费。问:供给是否满足需求?若是满足,最小运费是多少?样例解释算法分析1、供给是否满足需求
原创
1245阅读
0评论
1点赞
发布博客于 9 年前

poj1606-没想好就不要下手,否则浪费时间-模拟题的教训

这道题目题意很简单,就是给你两个容器,求出获得指定量水的步骤。一看稍微分析就知道是广度优先搜索。就是每次最多有六种情况,填满a,填满b,清空a,清空b,从a倒到b,从b倒到a。对每种情况将在这种情况下的可能的情况进入队列,直到找到最终结果。 注意不要以为和题目答案不一样就以为自己是错的,因为倒的方法可能不一样,所以最好自己验证一下,题目也标出了special judge,就是答案不止一
原创
1011阅读
0评论
0点赞
发布博客于 9 年前

poj3295-纠结的模拟题

题目很简单就是计算表达式。这个可以入栈出栈,来计算。discuss里面通过递归计算很经典。另外就是用& | 还是用&& ||这是个问题。否则wa死都不知道。总体解决如果用c++编译器编译,赋值为0或者为1,然后用 ! && ||千万不要用用& |实际上如果我们赋值用 = i &(1 位运算和逻辑运算还是有差别的。bool还是int#include #include
原创
1041阅读
0评论
0点赞
发布博客于 9 年前

poj3352-参考3177,同样代码,直接通过

#include #include #include #define nMax 5005#define Min(a,b) (a<b?a:b)struct EDGE{ int v,next;}edge[2 * nMax];int preEdge[nMax];int N, edgeNum, index;bool map[nMax][nMax];int
原创
784阅读
0评论
0点赞
发布博客于 9 年前

poj3177-tarjan求桥/割边

题目大意:有F个牧场,1给定现有的R条直接连接两个牧场的路,F-1若low[v]>dfn[u],则(u,v)为割边。但是实际处理时我们并不这样判断,因为有的图上可能有重边,这样不好处理。我们记录每条边的标号(一条无向边拆成的两条有向边标号相同),记录每个点的父亲到它的边的标号,如果边(u,v)是v的父亲边,就不能用dfn[u]更新low[v]。这样如果遍历完v的所有子节点后,发现l
原创
6563阅读
0评论
1点赞
发布博客于 9 年前

poj2370-看题目的时间比写代码AC的时间都长,水题为啥都那么难理解呢,可能英文太差了?

不解释,耐心看完题目意思吧。好好练习一下英文。#include #include #include #define nMax 110int K;int num[nMax];int cmp(const void *a, const void *b){ return *(int *)a - *(int *)b;}int main(){ w
原创
1632阅读
0评论
0点赞
发布博客于 9 年前

poj1384-完全背包

具体可以到到网上搜索一下背包九讲,各种类型的背包,不过基础还是01背包。#include #include #include #define Min(a,b) (a<b?a:b)#define Max(a,b) (a>b?a:b)#define inf 0x0FFFFFFF#define nMax 510int E,F,N;int price[nMax],
原创
1011阅读
0评论
0点赞
发布博客于 9 年前

poj3628-DFS/0-1背包-DP/枚举-数据比较弱、方法比较多

因为数据范围20,所以直接枚举是2^20,不会超时。直接求组合就行。在N个数里面取1个数,2个数。。。。N个数,求出一个最小差值就可以了。下面是组合的算法--175MS#include#include #include #include #define nMax 25int N,B;int height[nMax];int ans;int get
原创
1415阅读
0评论
0点赞
发布博客于 9 年前

poj1456-贪心

题目大意:有N件商品,分别给出商品的价值和销售的最后期限,只要在最后日期之前销售处,就能得到相应的利润,并且销售该商品需要1天时间。问销售的最大利润。解题思路:1.我用的贪心的思想,将商品的价值从大到小排序,找到销售的最大期限,用hasht数组标记,如果它的期限没有被占用,就在该天销售,如果占用,则从它的前一天开始向前查找有没有空闲的日期,如果有则占用。这样就可以得到最大销售量。
原创
1212阅读
0评论
0点赞
发布博客于 9 年前

poj2287-田忌赛马贪心

/*贪心策略:1,如果田忌的最快马快于齐王的最快马,则两者比。(因为若是田忌的别的马很可能就赢不了了,所以两者比)2,如果田忌的最快马慢于齐王的最快马,则用田忌的最慢马和齐王的最快马比。(由于所有的马都赢不了齐王的最快马,所以用损失最小的,拿最慢的和他比)3,若相等,则比较田忌的最慢马和齐王的最慢马3.1,若田忌最慢马快于齐王最慢马,两者比。(田忌的最慢马既然能赢一
原创
3225阅读
0评论
0点赞
发布博客于 9 年前

poj3281-最大流

题目开始以为可以用二分匹配解决,但是要和两边都求最大匹配,没办法解决。但是想到最大流可以解决二分匹配问题,那么就建图用网络流解决。但是一开始是这样建图源点-food-牛-drink-汇点,这样虽然满足每份food和drink只能给一头牛吃,但是没法解决每头牛只能吃一份的问题。难在建图,如果是这样,源点-food-牛-牛-drink-汇点,将牛拆成两个点,里面的边权值全为1.用效率不是很高的
原创
2877阅读
0评论
3点赞
发布博客于 9 年前

poj3020-二分图匹配

对于任意图:|最小边覆盖|+|最大匹配|=|V|二分图的最大匹配=最小点覆盖数对于二分图:以下数值等价.最大匹配最小点覆盖|V|-最大独立集(二分图or有向无环图)|V|-最小边覆盖数|V|-最小路径覆盖数(有向无环图)|V|-最小路径覆盖数/2(无向图)(上面括号里有有向无环图的,均是将一个点拆成两个点连边匹配)由于任意图的那几个几乎用不到于是这里
原创
1331阅读
0评论
0点赞
发布博客于 9 年前

poj1740-楼教主所谓的男人八题之一

*题目大意:* 对于n堆石子,每堆若干个,两人轮流操作,每次操作分两步,* 第一步从某堆中去掉至少一个,第二步(可省略)把该堆剩余* 石子的一部分分给其它的某些堆。最后谁无子可取即输。*解题思路:* 1、先考虑1堆的时候,1堆当然是N点(必胜点),* 2、然后考虑2堆,细想一下可以发现,当2堆一样时,这个时候* 的目的就是要把对方给逼到只有2堆都是1的时候,就能必胜了。
原创
5041阅读
0评论
0点赞
发布博客于 9 年前

poj1655-又是一道简单而又纠结的题目

题目很好理解,就是去掉树上的一个节点,看看剩下的子树中最大的是多少,然后在这些最大值中求一个最小值,如果有多个点都是最小值,那么找一个序号最小的节点。输出节点号,和最小值。 经过简单分析,dfs深度优先搜索可以解决,只需要求出每个节点下子树的总结点个数即可。举例说明:设有一棵树20个节点,其中有一个节点为u,u有两个孩子节点,设u以下有10个节点,两个孩子分别有6和4个节点,那
原创
3310阅读
1评论
1点赞
发布博客于 9 年前

poj3090-隐藏的好深,其实就是一个欧拉函数

看到这个题目简单分析了一下,最后才发现原来就是一个数论知识。首先,题目主要是求从0,0能看到的点的个数。先考虑只有1×1的时候,三个点,根据图明显看出,只需要计算下三角,结果=下三角的个数×2再加1(斜率为1的点)。那么我们只需要计算斜率从0到1之间的个数就行了,不包括1,包括0.结果设为sum,那么最终就是2*sum+1. 1×1只有一个斜率为0的2×2斜率有0,1/2(
原创
3794阅读
1评论
5点赞
发布博客于 9 年前

poj2028-水的一塌糊涂

直接上代码:还以为很麻烦呢。。。 #include #include #include #define nMax 110int hash[nMax];int N,Q;int main(){ int m; int date; while (1) { scanf("%d %d", &N, &Q); if (N == 0 && Q ==
原创
1778阅读
0评论
0点赞
发布博客于 9 年前

poj1144-tarjan求割点

何为割点?也就是题目中的关键点。在一个无向图中,去掉一个点,这个无向图会变成多个子图,那么这个点就叫做割点同理,割边也是如此,如果去掉一条边,能让无向图变成多个子图,那么这条边叫做割边,所谓的桥。 那么tarjan是如何求的割点的呢?如果u为割点,当且仅当满足下面的1/21、如果u为树根,那么u必须有多于1棵子树2、如果u不为树根,那么(u,v)为树枝边,当Low[v]>=
原创
6704阅读
8评论
5点赞
发布博客于 9 年前

poj-1236--一起学习强连通分量2

上一篇介绍过题目大意和kosaraju算法本篇介绍tarjan算法。引用一下讲解: 概述此算法以一个有向图作为输入,并按照所在的强连通分量给出其顶点集的一个划分。图中的每个结点只在一个强连通分量中出现,即使是在有些结点单独构成一个强连通分量的情况下(比如图中出现了树形结构或孤立结点)。算法的基本思想如下:任选一结点开始进行深度优先搜索(若深度优先搜索结束后仍有未访问的结
原创
1161阅读
0评论
0点赞
发布博客于 9 年前

poj-1236-一起学习强连通分量

题目不是很好理解,简单说一下就是有一个有向图,第一问求至少要复制几次软件,才能保证每个地方都有,实际上就是求入度为0的,也就是走不到的。第二问求至少添加几个扩展,也即是添加几条边,让无论从那个地方,都能让任何地方得到软件。也就是添加几条边,能让整个图强连通。 强连通分量算法1---kosaraju最好理解的两次dfs。步骤概要:1. DFS有向图G,并以后根序记录节点2.
原创
1112阅读
0评论
0点赞
发布博客于 9 年前

poj3009(好久不见)

不知不觉,有两个月没写博客了。惭愧。。。好久不练,果然手生,今天做了一题,搞了一个多小时,各种问题。题目意思很简单,一个图一个起点一个终点,中间有些block阻碍,可以向上下左右扔球,求从起点到终点最少扔多少次。 扔的规则,如果周围靠着阻碍,不能扔,如果没有,那么可以扔,碰到阻碍,阻碍消失,球停在那里。如果那个方向一个阻碍都没有,那么就game over。 最关键是最多扔1
原创
1065阅读
0评论
0点赞
发布博客于 9 年前

poj1463-1A

题目大意,有一些节点,节点间有路,节点上放哨兵可以监视和此节点直接连接的节点。求用最少的哨兵,监视所有的节点,没有盲区。。。。 其实一看就知道是一个dp,01背包。每个节点上只有两种情况,放或者不放,按平时来说就是简单的dp,但是这次是一个树,所以要在树上做01背包。 状态方程很好想:dp【i】【0】表示第i点不放哨兵dp【i】【1】表示第i点放哨兵那么我们知道:d
原创
1562阅读
0评论
0点赞
发布博客于 9 年前

MultiByteToWideChar和WideCharToMultiByte用法

MultiByteToWideChar概述函数原型:   int MultiByteToWideChar(   UINT CodePage,   DWORD dwFlags,   LPCSTR lpMultiByteStr,   int cchMultiByte,   LPWSTR lpWideCharStr,   int cchWide
原创
975阅读
0评论
0点赞
发布博客于 9 年前

poj1947-第一道树形dp,哎,欲哭无泪

第一道树形dp,欲哭无泪。   不知道如何说,首先对树学习的不深,大学上课的时候这些东西考试内容很固定,学的时候又有点吃力,所以学的不是很深。其次对于dp,其实也就是计算里面的迭代,但是这个方面确实博大精深,我曾经也是浅尝则止,导致此题感觉越发困难。最后递归,这是我学习过程中,认为最不好理解的一个算法,很难想象,但是递归之美不是让你去想象,而是去分析,如何才能递归。。。 然而这道题目,这三
原创
2711阅读
2评论
0点赞
发布博客于 9 年前

poj1364-还是建模

根据题意此题是 的关系,但是若是想用差分约束,必须是>= 或者题目给出条件是整数,这就是提示,所以如果>c那么就>=c-1,同理知道了这,直接判有没有负环就行了,不要忘了多加一个源点,保持图的联通性。。。。  代码: #include #define maxN 205//最大顶点数,这里是s[i]#define inf 0x7fffffffstruct Edg
原创
740阅读
1评论
0点赞
发布博客于 9 年前

poj1275 差分约束难再建模

题意;Tehran的一家每天24小时营业的超市,需要一批出纳员来满足它的需要。超市经理雇佣你来帮他解决他的问题——超市在每天的不同时段需要不同数目的出纳员(例如:午夜时只需一小批,而下午则需要很多)来为顾客提供优质服务。他希望雇佣最少数目的出纳员。经理已经提供你一天的每一小时需要出纳员的最少数量——R(0), R(1), ..., R(23)。R(0)表示从午夜到上午1:00需要出
原创
3253阅读
0评论
1点赞
发布博客于 9 年前

poj-3159很神奇的一题-差分约束+spfa

这道题目和前面几篇思路一样,不用多说 问题是如果用spfa+队列,肯定tle,换为堆栈就可以了,这题目也就是从头不行,要从尾部开始,就是队列和栈的区别了。 总感觉这题有问题。正向超时,反向484ms。。。。代码:#include #define maxN 30005//最大边条数#define inf 0x7fffffff//最大距离struct Edge {
原创
632阅读
0评论
0点赞
发布博客于 9 年前

poj1716-差分约束+spfa

这题目和上题目1201一样,就只改一下权重。注意一点,这题目边比较多,哎,我开搭配100*10005,过了。后来想改为循环队列,没想到原来while(head 其他没什么了。。。总之记住一个原则,求最小值,>=,求最长路。求最大值,代码:#include #define maxN 10005//最大边条数#define inf 0x7fffffff//最大距离stru
原创
650阅读
0评论
0点赞
发布博客于 9 年前

poj 1201-差分约束+spfa

题意: 在区间[0,50000]上有一些整点,并且满足n个约束条件(u, v, w),即在区间[u, v]上至少有x个整点,问区间[0, 50000]上至少有几个整点。思路:spfa(邻接表)+差分约束。构造差分约束系统的关键:用dict[i]表示区间[0, i]上的整点数,则约束条件可化为dict[v] - dict[u-1] >= w,即dict[v] >= dict[u-1] + w
原创
1289阅读
0评论
0点赞
发布博客于 9 年前

poj3169 layout差分约束的证明。。。

在Acm论文中看到的,一起学习一下,至少解决了我不少疑问。3.3 例题3——Layout题意简述:当排队等候喂食时,奶牛喜欢和它们的朋友站得靠近些。FJ有N(2一些奶牛相互间存有好感,它们希望两者之间的距离不超过一个给定的数L。另一方面,一些奶牛相互间非常反感,它们希望两者间的距离不小于一个给定的数D。给出ML条关于两头奶牛间有好感的描述,再给出MD条关于两头奶牛间存有反感
原创
3206阅读
2评论
2点赞
发布博客于 9 年前

poj3169-所谓的差分约束,但是感觉题目各种问题

题目很好理解,转换为差分约束也好理解。 关键是差分约束是要n+1个点,多一个v0,但是如果按照差分去做,肯定会wa,因为这样做以后,样例肯定都过不了,想想看,v0到其他点距离为0,所以到v1最短为0,v4最短为0,怎么求都得不到最后的27啊????? 还有像vj>=vi(j >= i)这些约束不用加,这个好理解,证明题目中没给这一块的测试用例,数据弱没关系,但是如果你加上了,可能会
原创
915阅读
1评论
0点赞
发布博客于 9 年前

poj1932-bellman、spfa

此题打过游戏的人理解起来不难,就是初始有个血量,然后每到一个房间或者加血或者减血,给出一个初始能量100的人,能否从1走到n,在这个过程中,血量都必须是大于0的。 这题目算法首先要判断能不能从1到达n,用floyd传递闭包然后计算一个最长路,保证每个点血量大于0,否则不能到达,还要求松弛的点能够到达n。。。具体见代码 此题用了两种方法,可以修改if(bellMan())或者
原创
810阅读
0评论
0点赞
发布博客于 9 年前

poj-3259 bellman-ford

题意:John的农场里N块地,M条路连接两块地,W个虫洞;路是双向的,虫洞是一条单向路,会在你离开之前把你传送到目的地,就是当你过去的时候时间会倒退Ts。我们的任务是知道会不会在从某块地出发后又回来,看到了离开之前的自己。简化下,就是看图中有没有负权环。解题:bellman_ford和spfa算法均可,但是实现效率bellman_ford更简单,也更容易,虽然spfa算法是be
原创
1108阅读
0评论
0点赞
发布博客于 9 年前

poj-2387 旧题重温

这道题目原来已经a过了,应该用的是dijstra算法这次用spfa。只需要注意一点,有重边,所以保存邻接矩阵的时候一定要判断一下。#include #define maxN 1002#define inf 1000000000int mat[maxN][maxN];//邻接矩阵bool flag[maxN][maxN];//标示矩阵int dis[maxN]
原创
985阅读
0评论
0点赞
发布博客于 9 年前

poj-3013 透过现象看本质,其实都一样

这道题目咋一看就是最小生成树啊。题目描述大概是这样:KCm要准备一颗圣诞树,这棵树有一些节点和边组成。节点从1到n,根总是1.每个节点都有自己的总量,而边的价格是由边的单价乘以子孙节点的重量。求出这么一颗有n个节点的树,使花费最小。 很像最小生成树,仔细研究,没法这样做。因为每条边在找到这颗树之前很难计算它的价值。因为本来你算好的边的价值,但是在去掉某些边时,会导致边的价值
原创
1368阅读
1评论
3点赞
发布博客于 9 年前

poj-1847 之最短路

本题目就是简单的最短路 题目理解起来有点费劲,大概说一下吧!就是有n个交叉点,就当做有n个点就行,然后这些点和其他点有些路径,每个点是一个开关,开关只能有一个方向走一条路,而第一个数就是默认的开关指向,不用旋转。这单犯了个错,就是默认的指向实际上只需要旋转0次,而其他路径只需要旋转1次,无论是哪条,只需1次,当初以为,第二个1次,第3个2次。 题目给的实例3 2 1 /
原创
3838阅读
0评论
0点赞
发布博客于 9 年前

poj-1287 不是题目水,而是数据弱

这个题目很简单,就是最简单的最小生成树,并且用克鲁斯卡尔算法很容易。但是,题目中说的边可能是无限的(The number of possible routes is unlimited),如果边有很多,该如何办呢? 当然,这里直接开10000条以上就行了,因为测试用例有限,加入10^10条呢?这里说了最多50个点,那么最多也就1225条边,再多就是重复的,实际上我们只需要开这么大的
原创
546阅读
0评论
0点赞
发布博客于 9 年前

poj3268---spfa

最短路径。。。。由于点比较多1000,,如果dijstra算法 o(n^2)肯定超时,这里用spfa算法。由于1000点,没有用邻接表,内存略大。 算法很简单,还是正向建图,逆向建图,分别求出起点到其他点的最短距离,然后求和,就是从这点出发,然后再回来的的最短距离,最后求出最大值即可。代码:#include#define maxN 1001#define inf
原创
617阅读
0评论
0点赞
发布博客于 9 年前

邻接表-动态和静态的学习

上一篇用到了邻接表,这里学习一下数据结构。 我们知道图的保存方式有很多种,邻接矩阵adjMax【】【】,邻接表。。。。邻接矩阵适合稠密图,而邻接表在表示稀疏图时很节省内存。 而邻接表又有动态和静态之分,静态和动态就不多做解释了,动态就是有多少用多少,静态你要提前分配好够用的内存,一般会比实际用的大一些。。。。 下面是静态表的一个实例#include #inclu
原创
1717阅读
2评论
1点赞
发布博客于 9 年前

poj 1511----spfa

这道题目有点长,看了半天才看懂啥意思。就是有n个车站,m条路线,每条路线有一个价格。要求从起始站到每一站,然后再从每一站回去,求最少的钱数。 看起来就是最短路径的问题,就是求单源点到其他各点的最但距离(票价),然后建个反向图,求的返回的钱数。加起来就行了。 最短路径很多方法,Dijkstra算法,Bell-ford算法,floyd-washall,以及本题目用的spfa算法
原创
708阅读
0评论
0点赞
发布博客于 9 年前

组合排列。。。初中的知识用到计算机上也这么麻烦。。

编程很多时候用到排列组合。。。组合可以搜索解决,也可以位运算轻松解决。比如有len个数字num[]保存,求出所有组合。。。那么就可以这样写for (int i = 1; i < (1 << len); ++ i)// get zuhe { int len1 = 0; for (int j = 0; j < len; ++ j) {
原创
2250阅读
0评论
1点赞
发布博客于 9 年前

线性筛选素数。。。。线性哦

上一篇一道题目用到了筛选素数,不过是那个只需要求3400以内的,比较少,无所谓,关键是如果要求1000000以内的,再直接求就不行了,太慢了。下面给出两个自己用的模版,并解释解释,为何这样能够很快计算出素数。代码1,这个有点长,但是很好理解#include #include #include int prime[100000];bool s[1000010];void P
原创
4153阅读
0评论
4点赞
发布博客于 9 年前

poj3842-效率啊

这是一道算法选择不好会TLE的题目,同时这道题目涉及到的内容也非常丰富。至少我学到了一些知识。首先题目的内容很简单,就是最多给你7个数字,问你用着7个数字能组成多少个素数。 由于原来搞过线性筛选素数,于是就将9999999以内的素数保存下来,实际上这个过程大概需要半秒钟吧。然后枚举枚举每个素数,看看这个素数用到的数字是不是在给的7个里面,如果是就+1.代码很快敲完了,发现交上去TLE。
原创
1038阅读
0评论
0点赞
发布博客于 9 年前

C#调用SetEvent-EventModify

C# 如果想使用SetEvent,但是cordll并没有导出这个函数。下面是在mobile中使用的情况。windows mobile 系统coredll.dll并没有真正暴露SetEvent等函数,而是以EventModify替代了三个API。其原型应该是EventModify(HANDLE ,DWROD)第二个参数的定义如下: #define EVENT_PULSE
原创
3870阅读
0评论
0点赞
发布博客于 9 年前

windows mobile 6 如何自动安装多个cab包---纠结

开始时通过CreateProcess(\\windows\\wceload.exe........)来自动安装一个cab包,后来发现要安装多个,但是,createprocess这个函数必须在主函数返回后才会安装cab包,main函数都返回了,没法再安装第二个cab包了。后来在网上一查,原来mobile的sdk中有个样例,其实很简单,只需要新建一个cab工程,将一个exe和一个dll还有要安装的
原创
3109阅读
1评论
1点赞
发布博客于 9 年前

poj1564-这样的判重,hash都得折服

由于最多12个数,所以直接暴力搜索就可以。但是关键是如何判断是否重复,这里借鉴一下神奇的判重。就是每次判断和上一层深搜的是否一样,一样的就不再搜 #include #include using namespace std;int t, n;int flag;int a[15],ans[15];void dfs(int now, int sum, int cnt)
原创
1232阅读
0评论
0点赞
发布博客于 9 年前

poj 1654 这题我想多了

看到本题目简单分析了一下只要解决两个问题就能搞定这一题。1、面积为0的情况,分两种,一种是一条直线,一种是折线走出去,在原路返回2、求出所有点坐标,求任意多边形的面积这两个问题都很容易解决。1、直线情况也就两个对角线,和水平垂直。原路返回的可以将反向的标示当做是一样的,比如2和8都当做8,如果这个字符串是回文,那么就是原路返回2、任意多边形面积,这个直接求相邻点的叉积就可以
原创
588阅读
0评论
0点赞
发布博客于 9 年前

poj 1190 有些剪枝真是不好想啊。。。

由于深度一定(m),所以使用深度优先搜索,自上而下的设定蛋糕序号,最顶层的为第1层,……,最底层的蛋糕为第m层,很明显满足题目条件的前i层的(从顶层(也就是编号为1的层)开始计数)最小面积mins[i]和体积minv[i]是在该层的半径以及高度都为i时取得,如果采用一般的神搜肯定会超时,所以这题还需要剪枝,剪枝条件有(从m层向上搜,假设前dep层的体积为sumv,面积为sums,当前所得的最小面积
原创
658阅读
0评论
0点赞
发布博客于 9 年前