2013年3月26日

摘要: Problem Description 话说威威猫有一次去参加比赛,虽然学校离比赛地点不太远,但威威猫还是想坐出租车去。大学城的出租车总是比较另类,有“拼车”一说,也就是说,你一个人坐车去,还是一堆人一起,总共需要支付的钱是一样的(每辆出租上除司机外最多坐下4个人)。刚好那天同校的一群Acmer在校门口扎堆了,大家果断决定拼车去赛场。 问题来了,一辆又一辆的出租车经过,但里面要么坐满了乘客,要么只剩下一两个座位,众Acmer都觉得坐上去太亏了,威威猫也是这么想的。 假设N名Acmer准备拼车,此时为0时刻,从校门到目的地需要支付给出租车师傅D元(按车次算,不管里面坐了多少Acmer),假... 阅读全文

posted @ 2013-03-26 17:02 真实的幻术师 阅读(210) 评论(0) 推荐(0) 编辑


2012年11月24日

摘要: 好吧,, 阅读全文

posted @ 2012-11-24 11:43 真实的幻术师 阅读(122) 评论(0) 推荐(0) 编辑


2012年11月21日

摘要: onclick相当于在某一元素上触发了onmousedown(即鼠标按下)后任然在该元素上触发了onmouseup(鼠标按键弹起)才触发onclick;有以下情况:对于某元素A绑定了click事件并同时对另外的元素B绑定onblur事件,这时候,当在A上mousedown后,即触发了B元素的onblur事件,该事件函数执行后的效果是改变了DOM结构,使得鼠标已经不在在元素A之上。这时鼠标任然没有mouseup,在mouseup之后,以为会触发click事件,实际上却不能触发。测试代码:<script src="jquery.min.js"></script 阅读全文

posted @ 2012-11-21 20:14 真实的幻术师 阅读(821) 评论(0) 推荐(0) 编辑


2012年10月17日

摘要: 丑数:质因子只有2,3,5的数,假定1也是丑数【ZZ】假设数组ugly[N]中存放不断产生的丑数,初始只有一个丑数ugly[0]=1,由此出发,下一个丑数由因子2,3,5竞争产生,得到ugly[0]*2, ugly[0]*3, ugly[0]*5, 显然最小的那个数是新的丑数,所以第2个丑数为ugly[1]=2,开始新一轮的竞争,由于上一轮竞争中,因子2获胜,这时因子2应该乘以ugly[0+1]才显得公平,得到ugly[1]*2,ugly[0]*3,ugly[0]*5, 因子3获胜,ugly[2]=3,同理,下次竞争时因子3应该乘以ugly[0+1],即:ugly[1]*2, ugly[1]* 阅读全文

posted @ 2012-10-17 17:05 真实的幻术师 阅读(194) 评论(0) 推荐(0) 编辑


2012年10月13日

摘要: 我的想法想法比较简单,没有什么优化。考虑加数和被加数的二进制位,逐位取异或运算,然后用得到的结果与进位取异或。对于新产生的进位可以考虑加数,被加数和当前进位的值进行判断,如果这三个数中有2个以上为1,则新的进位就是1.否则就是0编写代码时注意,因为!=和==的优先级比位运算的优先级高,所以位运算要在括号里代码如下:#include<stdio.h>#include<stdlib.h>void main(){ int n,m; int jin = 0x0000; int weishu = 0x0001; int he = 0,t; int n1,m1; int i; in 阅读全文

posted @ 2012-10-13 20:37 真实的幻术师 阅读(771) 评论(2) 推荐(0) 编辑


2012年10月11日

摘要: 如何等概率的从N个元素中选取出K个元素?这个问题就是一个蓄水池抽样(ReservoirSampling),算法可以如下描述:Init:areservoirwiththesize:kfori=k+1toNM=random(1,i);if(M<k)SWAPtheMthvalueandithvalueendfor网上有人给出了证明,先转过来:【转】证明:每次都是以k/i的概率来选择例:k=1000的话,从1001开始作选择,1001被选中的概率是1000/1001,1002被选中的概率是1000/1002,与我们直觉是相符的。接下来证明:假设当前是i+1,按照我们的规定,i+1这个元素被选中的 阅读全文

posted @ 2012-10-11 16:08 真实的幻术师 阅读(204) 评论(0) 推荐(0) 编辑


2012年4月24日

摘要: Android 手机模拟游戏手柄(USB,C#,winio)使用的知识点:Android服务器通过USB连接PC端,winio发送键盘消息,Socket编程,线程,Android多点触控先说下思路,首先在Android端开启服务器程序,然后在PC端开启一个服务器程序模拟发送键盘信息(C#编写)。手机和PC用USB连接,Android和PC的通信通过Socket完成。PC客户端程序:虽然有很多方法可以模拟发送键盘信息如:PostMessage,keybd_event等。这些都是将按键信息发送给系统的消息队列,然后再响应。但是很多游戏使用了DirectX技术绕过了系统的消息队列。我用了一个开源的项 阅读全文

posted @ 2012-04-24 19:31 真实的幻术师 阅读(4499) 评论(0) 推荐(2) 编辑


2012年3月26日

摘要: Winio64在64位系统中初始化失败问题系统是win7 64位。语言是C#从http://www.internals.com/下载的winio3.0,下载后的Binaries文件夹中包含WinIo64.dll,WinIo64.sys,将这两个文件放在debug文件夹下,与执行文件放在一起。引入winio64.dll和一些基本操作的代码如下: //引入一些函数 public const int KBC_KEY_CMD = 0x64;//输入键盘按下消息的端口 public const int KBC_KEY_DATA = 0x60;//输入键盘弹起消息的端口 [DllImport(" 阅读全文

posted @ 2012-03-26 22:07 真实的幻术师 阅读(19052) 评论(0) 推荐(0) 编辑


2012年2月28日

摘要: 用户向SVN版本库commit后,其他文件夹要update后才能得到最新的数据。如果更新的很频繁,每次都手动更新就很不能让人接受了。 可以使用批处理文件实现对文件夹的自动更新。 在版本库下hooks文件夹中新建post-commit.bat文件,在其中输入@echo off"D:\SoftWare\SVN\SUBVERSION\bin\svn.exe" update "D:\Testwork" --username *** --password ***注意不要使用中文字符,否则不能成功。 阅读全文

posted @ 2012-02-28 23:11 真实的幻术师 阅读(514) 评论(0) 推荐(0) 编辑


2011年11月10日

摘要: 双缓存原理就是事先在一个Image上绘图,然后再将这幅图画在组件上。一、swing中的JComponent类及其子类都能自动实现双缓存技术,但是JFrame等顶级组件不能自动实现。但是JPanel等就可以。二、JFrame、其他awt或applet就要定义一个Image doubleBuffer,在paint中createImage()再定义一个Graphics对象,g2=Image.getGraphics(),这样用g2就是在该Image上绘图,然后用g.drawImage(Image,,,)在指定位置画出该Image即可如:ImagedoubleBuffer;void paint(Grap 阅读全文

posted @ 2011-11-10 20:13 真实的幻术师 阅读(663) 评论(0) 推荐(0) 编辑


Copyright © 2024 真实的幻术师
Powered by .NET 8.0 on Kubernetes