自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不羁之心的专栏

用心追求每一天 突破昨天的自己

  • 博客(37)
  • 资源 (1)
  • 收藏
  • 关注

原创 网络加密如何协商密钥

方法应该有很多种:   双方提前制定好加密算法和密钥,但危险就是有人泄露了密钥和算法。 所以最好就是有个密钥动态生成,然后双方协商,但还不能让别人知道。 https采用的ssl:     1)  服务动态生成一对公钥A和密钥B(非对称加密),然后把公钥A发送给客户端,客户端自己动态生成一个对称密钥C,然后通过公钥A           加密后发送给服务器,服务器通过密钥

2012-12-05 18:36:00 3710 2

原创 尽量不要使用FindWindow

尽量不用FindWindow:          最近发现se6和se5进程共存时窗口名称一样引起的bug。原因是我们经常使用FindWindow来获得窗口句柄,然后进行消息通讯,这样调用简单,但增加了不同模块之间的依赖性,比如同时有两个进程时,就可能会找错窗口。而如果靠人去维护这个窗口名称,在程序工程增大的时候,维护成本会相应增加。 推荐通过接口来获得HWND,然后再尝试发送

2012-08-10 16:20:54 2863

原创 防止程序无响应

一般来说程序的无响应是因为UI线程(主线程)在执行一个重量级操作。 可以通过以下方法避免:1    开一个子线程去出去,通过消息告诉上层。2   主线程把耗时操作分开, 每操作一段时间,通过postmessage打断当前堆栈,给UI线程留出CPU时间片, 然后自己在下一个消息中继续处理。   比如要处理1万的人的信息,每个人的信息处理可能需要10ms,如果一次处理完,就需要100秒,主

2012-01-06 15:36:48 1108

原创 启发式搜索

启发式路径搜索目录一  题目背景 1二  方法提炼 2三  Demo 2四  优化启发式搜索 5一  题目背景我们玩游戏时,经常点击一下鼠标,游戏角色就会自动按照最短路径走向目的地,这需要搜索最短路径,这都是游戏程序帮我们完成了。游戏程序是如何做到高效完成的呢?常规的最短路径搜索用深度优先搜索,宽度优先搜索Dijstra算法等,宽度优先算法和Dijstra都是贪心为

2011-11-13 23:05:09 12879 3

原创 字符编码小结

1    早期只有127以内的字符  20以内是控制字符。2    后来各国有了自己的编码,但一般是两个字节表示一个字符(中国)。3    UNICODE 就是解决各国之间冲突的问题,定义了统一的标准。 可以65025个字符。     这样英文也是一个字符两个字节,这样的好处是全世界统一。4   UTF 系列其实和UNICODE可以一一对应,目的是为了网络传输,具体还要分析。

2011-11-11 18:23:53 526

原创 html js学习网站

http://www.w3school.com.cn/h.asp

2011-11-11 10:52:39 1175 1

原创 NSIS Unicode

NSIS有Unicode一说,  所以在使用和系统有关系的字符时,必须按照unicode(宽字符)明确指定编码,如果指定的是窄字符,则和期望的不一样。 比如要用:                    System::Call 'kernel32::CreateMut

2011-09-22 17:44:45 5530

原创 manifest须知

manifest问题一直没怎么搞透,这周因为项目问题。终于彻底搞明白了。manifest说本质上就是自己配置运行时库的问题。        1   如果全部采用静态链接,那么就不需要配置manifest 运行时库。                当自己的程序DLL

2011-09-22 17:40:46 648

原创 计算剩余时间的方法

近日做一个软件,需要计算剩余时间。 算法原理就是:  已经耗时*剩余大小/已经处理的大小。 但发现了计算的速度一直抖动, 发现是因为UI在没有进度回调时,也在刷新剩余时间,这样导致了误差。 比如处理1G大小的数据  已经处理了100M  耗时100S,

2011-08-18 17:04:31 5457

原创 考虑可能的线程冲突【尤其是初始化、反初始化】

<br />      如果两个线程同时去掉用一个模块的初始化、反初始化,那么会发生不可预知的现象。<br />所以这种情况下,需要一定的引用计数,或者锁的思想。<br />      统计模块这次在播放器小组的浏览器多标签中就因为初始化、反初始化出现了崩溃,依靠引用计数和锁才解决的。<br /> 

2011-03-03 20:36:00 573

原创 服务化设计

<br />       服务化设计,就是把一个功能当作一个服务模块,这个服务提供一些基本功能,别的模块可以灵活使用,而不是每次要使用一个新的交互,就需要在这个基础模块上修改,那样的设计是很难维护的。<br /> <br />       并且在实际开发中,向着服务化奋斗,中间可能有障碍,则需要战胜它,而不能逃避它。<br /> <br />       这次自动升级模块的设计就是典型的例子。<br /> <br /> 

2011-03-03 20:32:00 725

原创 服务化设计

<br />       服务化设计,就是把一个功能当作一个服务模块,这个服务提供一些基本功能,别的模块可以灵活使用,而不是每次要使用一个新的交互,就需要在这个基础模块上修改,那样的设计是很难维护的。<br /> <br />       并且在实际开发中,向着服务化奋斗,中间可能有障碍,则需要战胜它,而不能逃避它。<br /> <br />       这次自动升级模块的设计就是典型的例子。<br /> <br /> 

2011-03-03 20:32:00 1064

原创 游戏学习书籍

<br />1  Windows游戏编程大师技巧     先研究这本书再考虑深入。<br />    技术性的原理<br /> <br />    D3D其实并不用太急。

2011-02-22 23:06:00 483

原创 路径搜索学习

<br />路径搜索算法比较多。 主要算法都有:<br /> <br />广度优先算法:<br /> <br />深度优先搜索:Dijkstra算法:<br />A*(启发式搜索):  <br /> <br />       广度优先和 Dij本质上都是贪心算法,但是对各个节点一视同仁,理论上的图可以认为所有的节点没有区别,但实际中却不是的。<br />而A*算法有一定的评估思想,在大部分情况下,可能会得出更快的结构。<br /> <br />为什么A*得到的不是最优解,因为评估值可能出差很大,导致搜索顺序

2011-02-21 20:09:00 687 1

原创 回调函数的学习

     来实习已经快1个月了     至于回调得格式网上多得很,自己搜吧。不过我要记下自己犯错误的地方。回调函数的声明加上了WINAPI 修饰(这是为了混合编程,不同语言的参数入栈顺序不太一样,这样可以强行一样),那么被调用函数也必须是WINAPI的。WINAPI和CALLBACK都是__stdcall格式的。

2007-08-14 18:10:00 583

原创 国内 ACM Online Judge 列表

浙江大学 http://acm.zju.edu.cn     北京大学 http://acm.pku.edu.cn/JudgeOnline天津大学 http://acm.tju.edu.cn     厦门大学 http://acm.xmu.edu.cn/JudgeOnline福州大学 http://acm.fzu.edu.cn     华中科技 http://acm.hust.edu.cn/Jud

2007-01-01 13:15:00 1836

原创 遍历搜索处理修改的参数

    我们在遍历一个问题,有时需要对不同情况都需要对参数做不同的修改。 如果有些参数仅仅是几个变量,我们在写代码时需要用数学表达式。  比如 next (int i, int j) 对四个方向遍历写成 i++; next(i,j)   那么后面别的情况就比影响了,所以i,j在这里不能改变。所以应该写成next(i+1,j)有时候参数是数组,并且不同情况需要修改一次,如果对每种情况都新

2006-12-20 16:35:00 763

原创 DFS回溯遍历

    以前想做DFS,不知道回溯怎么用代码实现,现在发现很简单,用回溯的递归就能搞定。 PKU ACM 3140,4107,1655,3099都是类似的例子。    好多问题都可能归结成当前子树的规模,DFS,就是对某一个节点的所有没有访问的子节点一个个访问,最后归结起来就能返回。    帖一些回溯的代码:下面的代码解决了三个问题:1:n皇后,2找出一个集合中所有满足某个条件的子集,3显

2006-12-18 16:12:00 1348

原创 迭代学习

原题: 给n个项链,每个项链有价值vi,重量wi的属性,       选出k个,让SUM(vi)/SUM(wi)最大。  原题地址:http://acm.pku.edu.cn/JudgeOnline/problem?id=3111采用方法是迭代:令F(x)= (Vi1+Vi2+...+Vik) - x*(Wi1+Wi2+...+Wik);F(x)关于x单调,故收敛。原题在这个式子可以体现成

2006-11-28 11:59:00 1247

原创 STL对字符串排序

       利用STL的确可以事半功倍。前几天遇到了要对字符串进行排序。STL不支持对char 数组排。后来问人,应该这样:      string str[n];     string 数组      str[i] = &c[i][0]    string其实可以由char 数组转化,前提是最后一个char为NULL      then sort( str, str+n);    

2006-11-21 21:14:00 2043

原创 递推例子

题目是pku acm 3088http://acm.pku.edu.cn/JudgeOnline/problem?id=3088要求出组合的数量。 令dp[i][p]为有i个数字,而必须用p个的种类。    则dp[i][1] = i;  (j==1)  dp[i][p] = C[i][p] * dp[p][p];   (p>1 pdp[i][i] 可以理解成两种情况之和 1:

2006-11-21 12:03:00 939

原创 内存对齐 节约内存

     许多实际的计算机系统对基本类型数据在内存中存放的位置有限制,它们会要求这些数据的首地址的值是某个数k(通常它为4或8)的倍数,这就是所谓的内存对齐,而这个k则被称为该数据类型的对齐模数(alignment modulus)。当一种类型S的对齐模数与另一种类型T的对齐模数的比值是大于1的整数,我们就称类型S的对齐要求比T强(严格),而称T比S弱(宽松)。这种强制的要求一来简化了处理器与内存

2006-11-21 11:45:00 879

原创 消除中文乱码

       好多中文在拷贝后就成了乱码,切换输入法到中文就解决了。:)

2006-11-21 11:15:00 789

原创 多边形是否重叠

    题目:多边形是否重叠(有可能是凹多边形,有点重叠了就算。pku acm 3082题目)。 可以分为几种情况: 点点是否重叠  点是否在线上  点是否在在多边形内部,最后一个是关键。         判断点P是否在多边形中是计算几何中一个非常基本但是十分重要的算法。以点P为端点,向左方作射线L,由于多边形是有界的,所以射线L的左端一定在多边形外,考虑沿着L从无穷远处开始自左向右移动,遇到

2006-11-08 10:52:00 3794

转载 ARP病毒攻击技术分析与防御

一、ARP Spoofing攻击原理分析在局域网中,通过ARP协议来完成IP地址转换为第二层物理地址(即MAC地址)的。ARP协议对网络安全具有重要的意义。通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞或者实现“man in the middle” 进行ARP重定向和嗅探攻击。用伪造源MAC地址发送ARP响应包,对ARP高速缓存机制的攻击。每个主机

2006-11-08 09:38:00 785

原创 Spiderman’s workout (dynamic programming)

 题目:Spiderman’s workout Time Limit:1000MS  Memory Limit:65536KTotal Submit:667 Accepted:244 Special Judged DescriptionStaying fit is important for every super hero, and Spiderman is no exception.

2006-11-06 22:10:00 2106

原创 大整数的N次幂对某个整数求余算法

        由于数目比较大,不能算出来再求余。 所以需要观察性质。   假设要求:    (X.^N) mod m   解  X = m *n +y   y为X mod m 的余数,n = X/m取整,则(X.^N) mod m  =  y.^N mod m所以有算法  :ans = 1; p =Nfor(base=y;p;p/=2,base=(base*base)%m) 

2006-10-30 00:10:00 5703

原创 策略游戏 图

#include using namespace std;//评论: 算法1效率底下,是因为重复计算相同的值,而动态规划将浪费大量的时间计算不需要的中间值//可以结合这两者的优点,得出算法3// 游戏规则:n个棋子,两个人轮流取,最后一次取完者赢。当前取得棋子数量在1到2*k(k: 对手在上步取的数量)////算法1int min(int a, int b){ if(a  return a

2006-10-24 22:31:00 897

原创

#include using namespace std;int Data[1001];   //下标从1开始计算,数组长度不包括下标0void alter_heap(int T[], int n,int i, int v);  //改变对的一个值void sift_down(int T[],int n, int i);//向下移void percolate(int T[],int n, in

2006-10-23 21:38:00 644

原创 动态归化 找零钱

/*动态规划  找零钱10月18,2006版本1薛向旭//算法意思为:要用最低j个面值找好i的钱,那么分为两种情况,1:只用j-1个面值 2 至少用一个第j面值,在这两种情况中取一个小的,而这两种情况都有一个参数比要求的表达式的参数小。所以可以递推出来。我认为算法的核心是:确认上一步的成果,并利用之。*/#include using namespace std;#define INF 9999

2006-10-18 11:25:00 1654 1

转载 异常处理

介绍 在任何应用系统开发中,异常管理对开发人员来说都是一个关键领域。作为一个开发人员,你应该采用一种合适的、能让你编写健壮且高质量代码的异常管理策略。如果使用得当,异常管理将是一个很强大的概念而且使你的开发工作变的很容易。然而,一个不合适的异常处理将会使你的应 用系统性能降低。   在你钻研这些之前,要先搞清楚异常管理是什么,这点很重要。一般来说异常就表示“打破系统预定的假设”。“异常”和“错误”

2006-04-30 11:41:00 1355 4

原创 程序员要养成的习惯

        去年作毕业设计学习编程到现在有整整一年了,我在编程上有了一定的进步,但是感觉方法很重要。下面列出我认为很需要的:        1   千万不能眼高手低,ACM,topcoder上的算法题让大家比赛,是个很好的检测方式。        2   自己电脑上写过的程序一定要分好路经名称,以备后面学习。        3    每实践一段时间,看看一些经典的书目,理解会提升一

2006-04-24 09:35:00 855

原创 编译器初学

         这学期在学习编译原理,有个C#写的编译器的源代码,是简单C++(数据类型少,类继承关系只有一层),主要用来理解编译器原理。开始看的是书,把我看的晕头转向,感觉讲的离实际比较远,太偏一些数学理论,暂时先扔下。        软件是个可多次使用的东东,尽量使用已经写好的类库,这样开发速度就快了好多。用C#写编译器本身就很好学习。用XML而不要自己parse文本。      

2006-04-19 14:04:00 885

原创 局域网传输大文件问题

这是住转载的   问:           如果在局域网内开发一文件传输程序(局域网网卡均为100M),文件被分割成N个包发送的话,使用TCP直接发送,如果我发完一个包不延时的话肯定会丢包。TCP协议不是号称能够避免丢包吗?如果本程序需要在外网上使用,也必须延时吗,那这个延时值应该设置为多少?     答:      TCP协议不是号称能够避免丢包吗?---->是保证在传输中不

2006-04-17 22:47:00 2272

转载 Effective C# 摘要

第一章 C#语言元素 项1:总是使用属性,不要使用可访问的数据成员 项2:常数项尽量使用readonly,而不是const 项3:类型装换时,不要使用强制转换,使用操作符is或者as 项4:使用Conditional标记代替#if条件编译 项5:给你建立的每个类写一个ToString()函数 项6:搞清楚值类型和引用类型的区别 项7:尽量选择不可变基础类型 项8:对于值类型保证0值代表一个有效的状

2006-04-16 22:02:00 877

原创 八皇后问题之C++解决

         题目说明:皇后可以横竖45度斜着吃子,现在在8*8的棋盘上放置8个皇后。问如何放置才能使她们平安相处?         我用树结构解决的:对前7行的节点来说,下面有8中选择,如果下一行的某一个节点n可以放置,则改链增加,直到8个子都能放,否则链寻访下一个节点n+1,还不行就返回(节点数变小)。直到遍历了所有可能:        太可惜了,买了新电脑,把这个源代码没有拷贝(

2006-04-16 00:03:00 1539

原创 Socket创建C/S模型的小结

           经过一段时间的学习,对于Socket创建C/S模型有了一些心得,写在这里供自己和大家参考。         一般服务器都要和多个客户端连接通讯,当所有通讯都是TCP连接时,需要服务器和每个客户端保持着连接,并且服务器还要很好的处理将要来的连接请求以及可能会断开的客户。         1   处理将要来的连接请求(支持关闭套接字):在这里我是专开了一个线程去监听网络,

2006-04-15 22:19:00 1582

网络带宽测试数学方法——很不错

带宽测试,很不错。 图文并茂。谢谢合作。 我看过了,需要的朋友下载吧

2009-05-21

空空如也

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

TA关注的人

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