猴子分桃(很有趣的规律题)
题目大意:老猴子辛苦了一辈子,给那群小猴子们留下了一笔巨大的财富——一大堆桃子。
老猴子决定把这些桃子分给小猴子。
第一个猴子来了,它把桃子分成五堆,五堆一样多,但还多出一个。它把剩下的一个留给老猴子,自己拿走其中的一堆。
第二个猴子来了,它把桃子分成五堆,五堆一样多,但又多出一个。它把多出的一个留给老猴子,自己拿走其中的一堆。
后来的小猴子都如...
发个可以O(n)时间求逆的代码
int[] inv = new int[MAXN];
inv[1] = 1;
for (int i = 2; i<MAXN; i++)
inv[i] = inv[MOD%i]*(MOD-MOD/i)%MOD;
注意这里的MOD必须是素数。
摘自TopCoder上某人的代码。
Let's refactor it-OpenSinaAPI
这两天一直在看Clean Code以及 重构,一直想找一些例子练练手。恰巧前两天在玩新浪微博应用的时候看到了陈着写的这个SDK。down下来代码后发现这里面还有很多可以重构的地方,于是花了一个周末实践了一下。
在简单了解了下OAuth的原理及使用后,先确定了重构的范围:
1、基础类oAuthBase.cs不动,因为这个类是由官方提供的。
2、有必要时外部调用接口...
linux 设备驱动模型笔记
Linux device driver model
overview
linux 设备模型的目的是为内核构建统一的模型,从而使系统有一般性的描述。
设备模型的几个主要任务:
电源管理和系统关机:设备模型使得操作系统能够以正确的顺序遍历关闭系统硬件
和用户空间进行通讯:sysfs虚拟文件系统的实现和设备模型密切相关,并向用户空间...
程序员最应该读的图书(中译版)
转自:http://my.oschina.net/cfanlds/blog/14486 来自StackOverflow上的投票,stackoverflow 是著名的计算机专业相关的问答社区。调查原文地址 http://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-progra...
HDU 1713(相遇周期)求分数的最小公倍数!
题目分析:题目输入c1/t1 c2/t2 ,也就是速度的分数形式,转换成:c1*t2/(t1*t2), c2*t1/( t1*t2 ); 这时候我们只需要求出分子的最小公倍数k,然后k/( t1*t2 )就是题目求的周期
代码+部分注释:
#include<iostream>
#include<cstdio>
#include<algor...
HDU 2138(求素数的个数,容易超时!提醒自己)
题目分析:这里不能打表,然后要用到求素数的 优化!也就是我 前面一篇文章提到的。代码直接注释一下就可以了 还是看代码吧
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
bool prime(int x){
if(x%2==0&&...
ZOJ 3498(Javabeans)
题目分析:把每个盒子看成集合。有n个集合,分别有1…n个元素。具体每种集合有多少个是没意义的,因为我们可以把具有相同元素的集合同时操作,所以我们可以用集合的种类代替集合的个数。假设,每次选取k个集合。从这k个集合里拿东西,则这k个集合拿过之后还是k个不同的集合(有可能有一个成空集),所以至少还有(k-1)个不同的集合,而除这k个外还有(n-k)个不同的集合。所以拿完之后不...
2层交换设备是如何分割冲突域的_beta1
主要的机制:2层交换机内部维护一个过滤表,类似于3层设备维护一个路由表。
原理:
交换机的每个接口是个冲突域。我们可以用2层交换机将局域网分割为不同的网段(例如A、B网段)。A网段有台主机向B网段某台主机发送数据。则先ARP全网广播,交换机A接口收到帧,发现MAC地址为广播地址,则将帧广播 到相邻的全网段上。B网段上某台主机收到消息后还回一条帧消息,将自己的MAC地址发送给A网段的主机。在这...
HDU 1492(求一个数的倍数)
题目大意:
首先 2,3,5,7是互质的!可以把 N 写成(2^a)*(3^b)*(5^c)*(7^d)(a,b,c,d >= 0)!
每次从a ,b,c,d中选出一组数就是一个因数
举例说明一下:12=2^2*3
因为1也是他的倍数!2能够构成的倍数有(1,1*2,2*2) 3构成的倍数有(1,1*3)
也就是把(a+1)*(b+1)...
HDU 1496(求多次方程的个数)
题目意思很好理解,就是求有多少种方程的解的形式,输出来就可以了。
如果用4重循环的话,可能会超时,没有试过。。直接用hash一一对应就可以了。
2重循环把s = a*x1*x1+b*x2*x2 看做一个数组的下标,直接hash[1000000+s]++;
再2重循环把s = c*x3*x3+d*x4*x4 看做下标,开始查找,如果有hash[1000000-s]...
HDU 1497(Simple Library Management System)
题目大意:图书管管理系统,有三个操作,一个借书,还书,查询。
优化方案:就是一个数组存放书的信息,下标为书的代号,内容存,0或者借走这本书的同学学号,这样可以方便查询!
#include<stdio.h>
#include<iostream>
#include<cstring>
#include<algorithm>
...
Bus Hound显示信息不完整原因及显示长度设置
Bus Hound 5.0 默认的显示buff长度32字节,当主机获取usb设备的描述符长度大于32字节时,Bus Hound就不显示。 这样在调试的时候就会令人迷惑。其实只要修改一下设置即可。 在setting界面下,修改Limits标签项的“max Phase”的值为更大的值即可。如下图修改为64: 当buffer设置的比较小导致一部分信息没有显示的时候,其实可以通过分析USB...
Effective Emacs中文版
本文转自《effective emacs中文版》
对标题的意见——给力Emacs(effective在Google Translator的结果是有效的)
带附注的Effective Emacs中文版
十个提升你Emacs生产力的高招
Emacs是世界上最好的编辑器(真的有很多人这么认为)。不要以为emacs只是在编写...
换火狐4了
既然决定换 Arch 了(虽然至今仍未换过去),终将放弃火狐3.6,于是终于地,我用上了火狐4。我的火狐4是从这里下载的国际版。一直很不喜欢中国版的火狐。
之所以没在第一时间使用火狐4,除了插件兼容性的担心外,我还很不喜欢火狐4的UI。标签栏和状态栏学Chrome、菜单学Opera就算了,打开附加组件栏后这算什么啊?下边明明有那么多的空间,状态栏非要浮在它上面!
...