自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(135)
  • 资源 (4)
  • 收藏
  • 关注

原创 Android音量控制

如果你在应用中使用了MediaPlayer,并且尝试在其实例化出来的一个对象中使用setVolume(vol,vol)来调节音量大小时,往往会发现并不奏效。具体的原因还不得而知,但是如果只是想调节音量大小的话,还是有解决办法的。        而这个办法就是:通过AudioManager来调节音量。        AudioManager使用来修改系统中的音量的,可供修改的

2013-07-12 09:42:54 1556

原创 Android触摸事件的分发处理

Android中的触摸事件很常见,但是处理起来却不一定简单。比如说,一个最简单的屏幕触摸动作:按下,滑动,抬起。这个触摸动作会触发一系列的触摸事件:ACTION_DOWN->ACTION_MOVE->...->ACTION_MOVE->ACTION_UP。而当屏幕中包含一个ViewGroup,而这个ViewGroup又包含多子view时,Android系统对触屏动作的响应是如何处理的呢?在

2013-07-11 13:39:51 1257

原创 Android多点触控

Android的多点触控,实则上就是对MotionEvent的更多处理。在Android平台上,触屏事件均使用了MotionEvent对象方式处理,比如开始触控时会触发ACTION_DOWN,而移动操作时为 ACTION_MOVE,最终放开手指时触发ACTION_UP事件,而用户无规则的操作则可能触发ACTION_CANCEL这个动作。另外需要注意的是:Android的多点触控功能需要在Andro

2013-06-03 00:47:35 1518

原创 Android手势识别

Android中的手势识别,无非是系统对触屏信息的一个包装处理结果。如果要实现手势识别功能,首先需要实现OnTouchListener接口,并设置setOnTouchListener,最后在重载的函数onTouch()中,将MotionEvent交给GestureDetector去处理,典型的方式是gestureDetector.onTouchEvent(motionEvent)。

2013-05-24 18:31:30 1246

原创 KMP算法

KMP算法,适用于寻找子串的问题,其核心思路是先将子串进行自我匹配,构建出一个next数组。当寻找子串时匹配失败,就可以回到下标为当前位置的next数组里,继续开始匹配,避免了每次都得从头再来的麻烦,以此来节省时间,达到线性时间的复杂度。        构建next数组的核心在于自匹配。首先遍历字符串,寻找与0号等同的字符,找到就记录下当前下标到next数组内,并同步检查下一位是否一样等同,是

2013-04-21 00:50:44 717

原创 快速幂

快速幂,顾名思义就是快速求幂,时间复杂度可以从常规的O(n)下降到O(lgn)。        对于a^b这样的式子,快速幂的原理就是把b转换成二进制表示,例如:若b=11,则其二进制表示为1011,解析为11 = 2^3*1 + 2^2*0 + 2^1*1 + 2^0*1,所以:       a^11 = a^(2^0+2^1+2^3)= a^(2^0) * a^(2^1) * a^(2

2013-04-20 16:42:09 799

原创 Sicily 2501. 算算式

题目概述:S = n^1 + n^2 + n^3 +...... + n^k,已知n、k,求S除以9901的余数。        根据费马小定理:假如p是质数,且(a,p)=1(即a,p互质),那么 a^(p-1) ≡1(mod p)。可知9901是质数,所以n^9900%9901=1,即存在:        ( n^ (9900+m)) % 9901 = ( n^9900 * n^m

2013-03-25 23:48:19 1212

原创 XNA用户输入

XNA中支持PC上的键盘、鼠标,WP的触摸、手势和Xbox 360的手柄输入。       键盘输入       键盘输入是通过Microsoft.XNA.Framework.Input命名空间中的Keyboard类来处理的。Keyboard类有一个叫做GetState的静态方法,用KeyboardState结构的形式返回键盘目前的状态。KeyboardState结构中包含三个能够满足您大

2013-03-05 23:23:15 1088

原创 XNA游戏绘图

XNA中所有的图形都要通过内容管道来加载,它能够将jpg、bmp、png等文件转换成一种XNA很容易使用的内部格式,使得不同文件类型对于XNA都是透明的,而我们不需要为图像格式而担心。        添加图像需要在VS的解决方案资源管理器中的Content上右键点击,依次选择添加和现有项(为了便于管理可以先新建文件夹),然后在硬盘上选取你想要加载的图像。        然后要将

2013-03-04 13:36:32 754

原创 XNA入门介绍

打开初始化的项目后,可以明显看到一大堆文件,游戏的真正核心在于Game1.cs文件。这个文件里面有好几个初始定义函数,下面开始介绍。        文件的主要内容为:namespace Game1{ /// /// 这是游戏的主类型 /// public class Game1 : Microsoft.Xna.Framework.Game

2013-03-04 12:18:06 573

原创 XNA安装指导

XNA中的X表示能够在WindowsXbox和合作伙伴之间达到跨平台的强大的软件工具。N表示“下一代(Next-generation)”,A表示“架构(Architecture)”。XNA是基于DirectX的游戏开发环境,是微软对于 Managed DirectX 的修正及扩充版本。本系列文章主要参考的是Learning.XNA.4.0,作者为Aron Reed,下面是书籍下载链接:

2013-03-02 11:12:54 2544

原创 Sicily 1721. Gray code

格雷码的第n位等于对应的二进制码的第n-1位和第n位的异或,而最左边的第1位是相同的。这道题最好用printf以%s进行输出,可以节约不少时间。而至于题目是Special Judge,以其他形式进行排列是否可以得到更好的结果就不得而知了。Run Time: 0.04secRun Memory: 288KBCode Length: 731Bytes Submit Time: 20

2013-02-28 22:11:43 603

原创 Sicily 1344. 数列

阔别一年回来重新做题,感觉生疏了很多……简单来说是一个等比数列之间,不同项之和的关系。明显我们最关心的是,这个等比数列前n-1项之和和第n项的大小关系,假设:    (1-q^n)/(1-q)      1/q^n+ q > 2 可知,当3所以,假设k的某次幂在data[n],那么data[ n + i + 1 ] = data[ n ] + data[ i ],其中i

2013-02-28 13:51:20 604

原创 正则表达式的等价判定

编译原理的两个课程设计之一,关于两个正则表达式是否等价的问题。题目描述及提交地址:http://soj.me/show_problem.php?pid=1000&cid=866,大概内容如下:Description两个正则表达式等价,是指两个表达式描述完全相同的语言,即正则表达式expr1和expr2等价,当且仅当L(expr1)=L(expr2)。编写判断两个正则表达式是否等价的程序。

2013-01-31 15:28:30 7139

原创 MD5算法

MD5是输入不定长度信息,输出固定长度128-bits的算法。经过程序流程,生成四个32位数据,最后联合起来成为一个128-bits散列。基本方式为,求余、取余、调整长度、与链接变量进行循环运算,得出结果。        MD5的具体实现好像有所区别,起码维基百科和百度百科的就不一样。但经过验证都是正确的,而这里采用的是维基百科的方法(http://zh.wikipedia.org/wiki/

2012-10-21 12:15:01 927

原创 Sicily 4960. Identity Checker

2012年每周一赛第四场第九题。看起来好像很高级的样子,其实嘛,就是暴力和精度问题。运气够好的话马上就可以AC了;运气不好的话,那就悲剧了……Run Time: 0secRun Memory: 312KBCode Length: 1594BytesSubmit Time: 2012-04-0122:12:26// Problem#: 4960// Submission#:

2012-04-01 22:09:25 617

原创 Sicily 4952. Another Rock-Paper-Scissors Problem

2012年每周一赛第四场第五题。剪刀石头布的问题,但题目阅读起来相当不解,反复阅读n次之后才明白:这个Sonny本来就想着出RPS,若还要继续就出PSR,若还要继续就出SRP,若还要继续就出回RPS,如此循环下去……问题是如果别人掌握了Sonny的顺序,就能够击败他,所以他就想了个另一个办法去对付这种人(真够无聊的)。首先观察得知,其序列是1-1-1-3-3-9-9-27-27这样的,奥秘就是:对

2012-04-01 21:53:59 621

原创 Sicily 5037. Abacus

2012年每周一赛第三场第四题。算盘的模拟,没什么好说的。Run Time: 0secRun Memory: 312KBCode Length: 634BytesSubmitTime: 2012-04-01 21:42:20// Problem#: 5037// Submission#: 1300038// The source code is licensed under

2012-04-01 21:40:57 486

原创 Sicily 5034. Snowflakes

2012年每周一赛第三场第一题。就是一个折来折去的问题,爱怎么折怎么折,反正折回去就好。Run Time: 0.02secRun Memory: 304KBCode Length: 916BytesSubmitTime: 2012-04-01 21:32:48// Problem#: 5034// Submission#: 1300019// The source co

2012-04-01 21:34:13 430

原创 Sicily 4875. ROBOT

2012年每周一赛第二场第三题。看完题目大家都想到的那个办法肯定会超时,复杂度是O(MN)。仔细思考可以发现,其实我们关心的只是每次移动后,在X轴和Y轴上分别靠近和远离了多少个点,两者差值就是靠近或是远离了多少距离。所以,我们只需要确定x和y为某值时会靠近和远离多少个点即可,我是使用了upper_bound和lower_bound这两个函数,复杂度是O(Mlog2N)。Run Time: 0.

2012-03-04 20:13:06 755

原创 Sicily 4873. D’HONDT

2012年每周一赛第二场第一题,简单模拟问题。题目的意思是,对于票数大于5%的政党,将其总票数分别从1除到14,得出14个值,然后把每个政党的这些值混在一起排序,那么最大的14个值所属的政党中,将有一人被选举为代表,然后就是按字典序输出每个政党的代表人数。需要注意的是,即使这个政党没人当选为代表,也是要输出的,只要他的得票数大于总票数的5%。Run Time: 0secRun Memory

2012-03-03 22:41:19 559

原创 Sicily 4874. POGODAK

2012年每周一赛第二场第二题,高效模拟问题。说白了就是一个骰子转来转去的问题,每次翻转产生的变化可以自由模拟,这不是问题。问题是如果是直接模拟的话,时间复杂度是O(RC),而R和C分别都可以高达100000,它们的积就过于大了。而事实上,在每一行中翻转时,每翻转4次就会回到原位,那么实际上需要模拟的就只是R*C%4次而已,这样就可以把问题化简了。Run Time: 0.01secRun

2012-03-03 22:31:02 564

原创 Sicily 2409. Egyptian Fractions

很长的一道题目,说的是一个贪心减法的问题:对于一个M/N的分数,我们希望能够把它写成多个1/D相加的形式,并且每个D都要尽可能的大,不能超过1000000。题目已经说明要使用long long了,另外的话就按照贪心算法的一般思路去进行即可,无陷阱。Run Time: 0.29secRun Memory: 304KBCode Length: 1358Bytes SubmitTime:

2012-03-02 13:16:00 584

原创 Sicily 1426. Phone List

判断一系列字符串中,是否存在一个字符串是另一个字符串的前缀。可以按字典序排一个序,然后前后两个对比一下就行;虽然此法比较耗时,但胜在简单易懂,空间消耗小,代码短。Run Time: 0.27secRun Memory: 708KBCode Length: 601Bytes Submit Time: 2011-06-23 20:31:06// Problem#: 1426//

2012-03-01 22:05:52 1348

原创 Sicily 4834. Party Location

2012年每周一赛第一场第三题。由于希望尽可能多的点可以被一个以2.5km为半径的圆所容纳,所以可以从半径为2.5km的且至少有两点在圆上的的圆去考虑。这样的话就依次选择两个点来画圆(有2个),再逐一判断有多少个点在当前圆内,输出最大值即可。另外由于是double类型,还有精度的问题要注意。Run Time: 0.09secRun Memory: 304KBCode Length: 2

2012-03-01 21:08:51 570

原创 Sicily 4833. Octagons

2012年每周一赛第一场第二题。若然路径是闭合的,则整个路径是由若干个八边形构造而成,那么我们就可以把这些八边形逐一去掉,直至没有;若不能全部去掉,说明路径不是闭合的。至于去掉八边形的规则可以参考代码。Run Time: 0secRun Memory: 312KBCode Length: 775Bytes Submit Time: 2012-02-27 23:23:42// P

2012-02-27 23:24:30 527

原创 Sicily 4832. Paper Route

2012年每周一赛第一场第一题,注意到这是一棵树(因为N+1个节点只有N条边即可完全连通)。若选择第i个点作为终点,易知总长度为∑ci-di+si(就是赛时没观察到这点),其中c是一条路径的长度,d为起点到终点的长度,s为终点到学校的长度。换言之,只需要找出si-di的最小值即可。Run Time: 0.32secRun Memory: 6816KBCode Length: 1180B

2012-02-26 15:05:55 547

原创 Sicily 4836. Class Schedule

2012年每周一赛第一场第五题,原本想着有机会做出来的,想了个dp算法,但复杂度是O(CT2),觉得不太可能,就放弃去打DotA了。第二天一早试了下,居然是可以过的……首先,假设dp[i][j]表示第i目录下的第j课所需要的最小能量,那么状态转移方程就是dp[i][j]=min(dp[i-1][k]+abs(P[i-1][k]-P[i][j])+E[i][j]),理解为从第i-1目录下的第k课

2012-02-26 11:30:42 663

原创 Sicily 4835. Numbersrebmun

2012年每周一赛第四题,水题,我唯一的AC题,差距还是太大了……没什么好说的,模拟手机键盘,然后慢慢对比就可以了。Run Time: 0secRun Memory: 304KBCode Length: 1081Bytes Submit Time: 2012-02-26 00:06:33// Problem#: 4835// Submission#: 1220223//

2012-02-25 23:57:37 975

原创 Sicily 1180. Pasting Strings

看完题目和样例,觉得难以理解;反复看了几遍后,觉得可能出错了,最终在POJ上找到了,就是2813,而在这里已经更正了。题目说的是一个编写HTML的一个问题,希望我们提取text中的相关内容后,仍然保持着原来的格式规范,换言之就是需要在提取内容中添加必要的tags,以确保提取后的内容和原文的格式保持一致。方法多种多样了,只是有点麻烦而已,另外注意到出给的样例都是符合HTML编写规范的。我的方

2012-02-24 12:23:48 783

原创 匈牙利算法

匈牙利算法是常见的二分图最大匹配算法,核心在于寻找增广路径。       首先来说,设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i在A,j在B),则称图G为一个二分图(二部图)。如下图所示:

2012-02-21 22:08:20 679

原创 Sicily 1342. 开心的金明

最常见的01背包,就不多言了。另外内联函数的确高效,能从0.01sec下降到0sec。Run Time: 0secRun Memory: 304KBCode Length: 602Bytes Submit Time: 2012-02-21 19:03:45// Problem#: 1342// Submission#: 1213198// The source code i

2012-02-21 19:35:50 3873 1

原创 Sicily 1624. Cryptoquote

字符串处理,重点不在于解密,因为给出的对应字符串天然就是一个数组。关键在于整行读入的技巧,而之前就要吃掉多余的换行符。另外复制输入数据时,要注意不要把多余的空格弄进去。Run Time: 0secRun Memory: 312KBCode Length: 429Bytes Submit Time: 2012-02-20 13:50:03// Problem#: 1624//

2012-02-20 13:47:17 663

原创 拓展欧几里德算法

拓展欧几里德定理:对于不完全为0的非负整数a,b,必然存在整数对x,y,使得ax+by=gcd(a,b)。        利用拓展欧几里德定理,可以对形如ax+by=c的式子进行是否存在整数解的判断,以及存在时解为何值的运算,整个过程称为拓展欧几里德算法。        首先,对于ax+by=c这一式子,根据拓展欧几里得定理ax+by=gcd(a,b),若c%gcd(x,y)=0成立,则表

2012-02-19 23:59:38 812

原创 Sicily 1099. Packing Passengers

已知乘客总数n,A类飞机的运输费用cA、客容量pA,B类飞机的运输费用cB、客容量pB,设A类飞机有A架,B类飞机有B架,问是否存在pA*A+pB*B=n;若存在,还要满足cA*A+cB*B最小;若存在多种解,A应尽可能的大。根据拓展欧几里的定理,先求出gcd(pA,pB)并判断其能否整除n,不能则表示无解。若能,先求出a、b,使得pA*a+pB*b=gcd(pA,pB),可知A、B的特解为A

2012-02-19 23:53:03 978

原创 Sicily 1256. Bingo!

做这道题的时候,数据是12S1A,看完题目后觉得是因为这道题太长又晦涩,而又缺乏足够详细的说明,所以问津者寥寥,所以就放手一试,没想到还真是能AC。题目意思是关于一个Bingo的游戏,首先给出7个数字,前5个数字分别表示每个对应列已经出现了的数字个数,第6个数字(X)表示pattern的数目,第7个数字(Y)表示winning pattern需要由X个pattern中的Y个组合而成,然后给出X

2012-02-16 21:35:19 529

原创 Sicily 1201. 01000001

两个二进制数的加法,类似于高精度。Run Time: 0secRun Memory: 312KBCode Length: 806Bytes Submit Time: 2011-06-12 12:38:10// Problem#: 1201// Submission#: 800058// The source code is licensed under Creative C

2012-02-16 20:49:28 621

原创 Sicily 1221. 数字游戏

直观上觉得应该优先选取b大的那个数字,这样a就不会下降的太快,但是这种情况仅仅适用于n=m的时候。因为我们需要的是m个数字的a值之和是最大的,当n>m时,如果直接选取了下降速度最快(即b最大)的那m个数字,有可能后面的数的a值可能仍然很大,但b值却很少,这样就不能保证这m个数的a值之和是最大的(而当n=m是却不存在这个问题)。从另一个角度看,问题的本质在于选取哪m个数字,也即是该不该选取某一个

2012-02-13 16:56:00 762

原创 Sicily 1177. Take Your Vitamins

看起来好像有点烦,其实只要区分各个变量其实也没什么问题,只是U要一般读入,V是整行读入就OK了,另外的那些输出格式也比较常见,弄妥就好。Run Time: 0secRun Memory: 304KBCode Length: 603Bytes Submit Time: 2012-02-12 21:27:46// Problem#: 1177// Submission#: 120

2012-02-12 21:34:19 541

原创 Sicily 2710. 运算符重载

基础加细节,无需多言。Run Time: 0secRun Memory: 308KBCode Length: 1170Bytes Submit Time: 2011-06-19 21:10:36 // Problem#: 2710// Submission#: 819075// The source code is licensed under Creative Com

2012-02-12 12:47:53 591

注册表清理:Wise Registry Cleaner 8

绿色免安装工具,一键清理优化注册表,百试百灵,加速电脑运行速度!

2016-02-13

Learning XNA 4.0(中文版)

关于XNA开发的书籍,外文中译版,讲述内容通俗易懂,便于上手

2013-03-02

正则表达式等价判断

林瀚老师的《编译原理》课程设计内容,正则表达式的等价判断

2013-01-31

编译原理(龙书第2版中文)

编译原理(龙书第2版中文),经典权威教材

2013-01-31

空空如也

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

TA关注的人

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