自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

金字塔

WIN32汇编、C/C+、MFC、Arduino、OI/ACM、PS...

  • 博客(19)
  • 收藏
  • 关注

转载 (转载)为什么说学习Prolog语言能让你成为更好的程序员

在计算机教学的课程中,有个传统的现象,是否学过某一两种的课程能够成为判断一个人能否深入理解一些计算机科学概念的分水岭。尽管每个人都似乎能够使用像Java这样的语言进行编程,但一些有趣的证据现象表明,计算机科学中最复杂的概念还是class,其中蕴含了很多真正的智慧,能对你在C或Lisp语言的使用中提供很有用处的帮助。在我的母校,一门关于Prolog的课程成了区分那些似是而非的和真正的计算科学

2015-10-04 15:48:22 846

转载 (转载)射频识别技术漫谈(14)——Mifare S50与S70的存取控制

存取控制指符合什么条件才能对卡片进行操作。    S50和S70的块分为数据块和控制块,对数据块的操作有“读”、“写”、“加值”、“减值(含传输和存储)”四种,对控制块的操作只有“读”和“写”两种。    S50和S70的每个扇区有两组密码KeyA和KeyB,所谓的“条件”就是针对这两组密码而言,包括“验证密码A可以操作(KeyA)”、“验证密码B可以操作(KeyB)”、“验证密码

2015-09-22 20:19:37 1195

原创 一行代码实现呼出热键

一个设置呼出热键的小技巧,超级简单哦例如设置为CTRL+ALT+H:CWnd::SendMessage(WM_SETHOTKEY,(WPARAM)MAKEWORD('H',HOTKEYF_CONTROL|HOTKEYF_ALT),0);

2015-09-05 12:29:27 529

原创 读取任意进程内存

用进程快照信息找到进程,打开后读取内存,没什么技术含量。。void CReadMemDlg::OnBtnRead() { UpdateData(); void *nAddr; UINT nLen; sscanf(m_strAddr,"%x",&nAddr); sscanf(m_strLen,"%x",&nLen); HANDLE hSnapshot = Crea

2015-09-05 10:51:37 3590

原创 用文件映射来实现进程通信

这方法相对于管道、邮槽等方法而言简单快速。再配合个窗口消息,或者开个线程用Event通知,就比较灵活了。。发送程序: UpdateData(); const LPCSTR strName = "test111"; const DWORD len = m_strSend.GetLength() + 1; CWnd *pWnd = CWnd::FindWindow("#327

2015-09-04 13:35:13 660

转载 (转载)线程天敌TerminateThread与SuspendThread

转载自:http://blog.csdn.net/magictong/article/details/6304439线程天敌TerminateThread与SuspendThread 作者:童磊(magictong) 目的:不是演示TerminateThread和SuspendThread的原理而是希望能在自己的程序中摒弃它们。 一、不使用Terminate

2015-09-03 18:03:09 1089

转载 (转载)保存CBitmap到文件

VC6中没有CImage,只能用下面的方法将CBitmap保存到文件中。void  CPCDlg::WriteBmp(CBitmap   *PBitmap, char m_FileName[])     {       BITMAPINFO   *m_pBMI;       BYTE   *m_pDIBData;       BITMAPFILEHEADER   bfh

2015-08-25 12:15:43 875

转载 (转载)BeginPaint和GetDC有什么区别?

这是个windows编程问题。 第一种情况显示出来的字很正常。 case WM_PAINT:            gdc = BeginPaint (hwnd, &ps);            TextOut (gdc, 0, 0, s, strlen (s));            EndPaint (hwnd, &ps); break; 第二种情况显示的字不停

2015-08-22 18:08:49 508

原创 (题解)(Splay)NOI2004郁闷的出纳员

题目比较简单,用splay动态维护一个可以整体删除的集合,不需要打下标,打个上标维护size求kth,用delta记录偏移即可完成所有操作。 调试了两个小时,后来发现因初始工资而走的员工不能算是走的员工,题目中没说明,太坑了。在splay中,常用INF哨兵,但我没发现有人用null哨兵,我发现null哨兵能够大幅简化代码,同时具有一定的容错性。程序的容错性非常重要,即使参数

2015-08-20 15:14:10 1710

原创 (题解)(数论)AHOI2007 BOX

给定n,求x^2=1(mod n)的所有解想了很久没想出来。。我还是太弱了。。最近我经常看不出结论,或者不知道是否正确不敢写。。首先变形一下式子,(x+1)(x-1)=0(mod n)接着是最重要的一步,要知道一个结论:x和x+2的公因数只有可能为2。。。我推出了x和x+k的公因数必不超过k,用gcd递归定理证明非常简单:gcd(x+k,x)=gcd(x,(x+k) mod

2015-08-20 15:10:48 426

原创 (题解)(搜索)POJ2069 Super Star

很水,一遍A……题目大意是给定N个点,用一个球覆盖这些点,求球的最小半径本蒟蒻认为这题不能算是模拟退火,应该算是变步长爬山不断逼近最远点并调整,可以理解为先走一个大的方向,再不断缩小步长,直至得出解网上有人说0.97会WA,我只想说精度开大点会死啊!!N的规模才30,就算开到0.999也不可能TLE#include #include #include #include

2015-08-20 15:01:53 474

原创 谈谈我对旋转卡壳算法本质的理解

我学很多东西的过程中,经常无法理解现有的资料的表述,感觉那些讲的太肤浅,最后靠自己推倒证明才能理解,旋转卡壳也是其中的一个……关于旋转卡壳的资料,大概有这几个:http://cgm.cs.mcgill.ca/~orm/rotcal.frame.htmlhttp://www.cppblog.com/staryjy/archive/2009/11/19/101412.htmlhttp:

2015-08-20 14:59:51 2337

原创 网络流建模的一般方法

网络流建模的过程实际上是找到流与方案的对应关系的过程,找到了这种对应关系后,用如下方法检验这个关系是否正确。网络流模型正确 当且仅当(1)可行方案 等价于 可行流(满足流量守恒的流)*注意:如果用增广路的性质建模,可以用归纳法,先看初始流是否是一种可行的方案,假设增广前是一种可行方案,证明增广后的方案可行,然后证明可行的方案都是可行流。(2)最优方案 等价于 最优流(最小费

2015-08-20 14:55:57 2112

转载 (转载)求答案模一个数的结果

做题时,经常要求“答案模一个数”的结果。并且这个数往往是1000000007。如果只有乘法和加法,那么我们对此毫无压力。但是,除法出现时,我们往往需要用高精除法。而费马小定理给我们带来了福音!从此,我们再不用为了区区一个模1000000007而用高精除法了。费马小定理:若p是质数,且a、p互质,那么a^(p-1) mod p = 1。果断忽略证明

2015-08-20 14:54:05 604

原创 "活"的模拟退火算法

看到网上很多人只会用"死"的模拟退火算法,网上的资料也全是"死"的模拟退火算法,所以我来说一说"活"的模拟退火算法……大家都知道算法步骤:先取一个初始状态集合和一个足够大的温度T,若T没有降到Tmin,对于集合中的每个状态,求出它能扩展出的最优状态,若更优则替换原解,否则以e的ΔE/T次方的概率替换原解,取最优解作为答案当具体到某个实际问题时,这样可能不能起到好的效果,不是每个问题

2015-08-20 14:51:43 642

原创 最大权闭合子图的简单证明

以前只会写,没证明过,搜了一下网上的证明,太复杂了,我并不是说公式化的严谨的证明不好,而是认为那种证明不利于直观的理解,常常有这样的情况:看证明每一步都很正确,但是以后你没办法用几句话概括对这个式子的理解,你也不知道这样证明的思想是什么,主要原因是证明太复杂,难于从整体上去把握,这样也不利于根据理解推广出新的结论。从某种意义上说,白话点的简要证明更利于直观的理解,所以我试着自己证明了一

2015-08-20 14:45:35 1257

原创 对C++临时对象的内存位置的研究

首先,这是一个很少有人研究的问题:C++的临时对象是在堆里还是在栈里的。但若不研究清楚内部原理,每次产生临时量时都会纠结于此,网上能找到的资料也都是new在堆里、定义在函数内部就是栈里,或者是临时量通过复制构造函数构造这种废话。。。所以自己研究了一下……首先,运算中的临时对象显然是栈内的,对于参数上的临时对象,我推测是直接push进去的,应该也在栈内,但是返回值上的

2015-08-20 14:42:44 1981

原创 最长上升子序列的O(nlgn)解法

感觉网上说的太复杂了…… 首先换一种状态表示:设f[i]为长度为i的上升子序列中末尾元素的最小值,初始化f[0]=INT_MIN,f[1~N]=INT_MAX然后对于每个元素,更新集合 { f[i] | f[i-1]以上方法O(n^2)由于f[i-1]所以用于更新的a[j]一定比更新上一位置的那玩意大,所以f数组单调递增,前面比a[j]小的更新不走,只有更新中间

2013-12-03 19:17:23 568

原创 浅谈C++容器效率的优化

作者:岳知涵在NOIP中,C++的容器的用途非常广泛,但经常因常数过大而超时。怎样才能提高它们的效率呢?我们知道,容器是存储同一类对象的对象,既然“对象”我们无法改变,那么我们只能从“存储”入手,不难想到,不同容器在实现上的根本区别是它们对应着不同的内存组织方式,内存管理无疑是这种实现的核心,所以优化内存管理是加快容器效率的最好途径之一。一、内存分配器简介怎样才能优化内存管理呢?很简单

2013-11-24 15:41:06 1827

空空如也

空空如也

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

TA关注的人

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