上一页 1 ··· 4 5 6 7 8 9 10 下一页

2014年2月26日

摘要: IP地址用二进制来表示,每个IP地址长32bit,4个字节。IP地址有两部分组成,一部分为网络地址,另一部分为主机地址。IP地址分为A、B、C、D、E5类。常用的是B和C两类。A类IP地址 A类IP地址范围:1.0.0.1-126.255.255.254一个A类IP地址是指, 在IP地址的四段号码中,第一段号码为网络号码,剩下的三段号码为本地计算机的号码。如果用二进制表示IP地址的话,A类IP地址就由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”。A类IP地址中网络的标识长度为8位,主机标识的长度为24位,A类网络地址数量较少,可以用于主机数达1600多万台的大型网络。A. 阅读全文
posted @ 2014-02-26 13:54 KK4SBB 阅读(302) 评论(0) 推荐(0) 编辑
 
摘要: /*Mathematics can be so easy when you have a computer. Consider the following example. You probably know that in a right-angled triangle, the length of the three sides a, b, c (where c is the longest side, called the hypotenuse) satisfy the relation a*a+b*b=c*c. This is called Pythagora’s Law.Here w 阅读全文
posted @ 2014-02-26 13:54 KK4SBB 阅读(151) 评论(0) 推荐(0) 编辑
 
摘要: 原题链接题目大意:走廊两边排列了400个房间,要在两个房间之间搬桌子。搬桌子的时候会占用一部分走廊,有冲突的话要回避。求最快搬完的时间。解法:开辟一个数组,每占用一段走廊,就把相应的房间号的元素加1,最后整个数组中最大的数就是结果。注意,房间是排列在走廊两边的,所以数组的大小是400/2,而不是200。参考代码:#includeusing namespace std;int main(){ int i,m,n,a,b,t; cin>>n; while(n--){ cin>>m; int room[201]={0}; //重复使用的寄存器一定要记得把上一次的结果清空 wh 阅读全文
posted @ 2014-02-26 13:54 KK4SBB 阅读(336) 评论(0) 推荐(0) 编辑
 
摘要: 原题链接题目大意:鼠标点击一块,求与之联通的所有区域的边长之和。解法:广度优先搜索。从选中的这个点开始,往周围8个点依次搜索,访问过的点做上标记。如果该点上下左右的一个或多个方向没有相邻的点,边长+1。代码BSF函数中,有两个数组存放相邻8个点的坐标,这一段代码感觉很简洁,是从其他地方学习来的。参考代码:#include#include#include#includeusing namespace std;int r,c,x,y,i,j,ans;int visited[22][22],grid[22][22];char s;int BFS(int i,int j);struct Node{ i 阅读全文
posted @ 2014-02-26 13:54 KK4SBB 阅读(446) 评论(0) 推荐(0) 编辑
 
摘要: 原题链接题目大意:2001年11月4日是一个黄道吉日,有两个人做游戏,看谁先数到这个日子。可以往后数一天,比如2号到3号,30号到31号,也可以往后数一个月。给出一个起始的日子,求能否保证先开始游戏的人必胜。解法:一开始一直在找规律,往前推算了两个月,没有发现规律。后来Google了一下,发现有个很巧妙的方法。日期或者月份每增加一次,日期+月份的奇偶性就会改变一次,所以一个回合之后奇偶性是不发生变化的。11+4=15是偶数,只要保证开始的日期+月份是偶数,先数的人就可以赢。但是,有几个特例。2月28日是偶数,3月1日也是偶数,奇偶性没有发生变化。同样的,9月30日、11月30日的后一天也是奇数 阅读全文
posted @ 2014-02-26 13:53 KK4SBB 阅读(313) 评论(0) 推荐(0) 编辑
 
摘要: 题目 有N件物品和一个容量为V的背包。第i件物品的费用是c,价值是w。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 基本思路 这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。 用子问题定义状态:即f[v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便是:f[v]=max{f[v],f[v-c]+w}。这个方程非常重要,基本上所有跟背包相关的问题的方程都是由它衍生出来的。所以有必要将它详细 解释一下:“将前i件物品放入容量为v的背包中”这个子问题,若只考虑第i件物品的策略(放或不放),那么就可以转化为一个只牵... 阅读全文
posted @ 2014-02-26 12:31 KK4SBB 阅读(261) 评论(0) 推荐(0) 编辑
 
摘要: K-means是一种经典的聚类算法,是十大经典数据挖掘算法之一。K-means算法的基本思想是:以空间中k个点为中心进行聚类,对最靠近他们的对象归类。通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果。假设要把样本集分为c个类别,算法描述如下: (1)适当选择c个类的初始中心; (2)在第k次迭代中,对任意一个样本,求其到c个中心的距离,将该样本归到距离最短的中心所在的类; (3)利用均值等方法更新该类的中心值; (4)对于所有的c个聚类中心,如果利用(2)(3)的迭代法更新后,值保持不变,则迭代结束,否则继续迭代。 该算法的最大优势在于简洁和快速。算法的关键在于初始中心... 阅读全文
posted @ 2014-02-26 12:28 KK4SBB 阅读(6341) 评论(2) 推荐(0) 编辑
 
摘要: 最近用Matlab写程序的时候终于遇到了程序执行效率的问题,于是在Google上面搜索了一篇提高代码性能的文章,简单的概括一下。文章是通过优化寄存器读写来提高执行速度的,主要体现在三个方面:在做循环计算之前先分配好内存空间;用列向量存取数据;避免创建不必要的变量。Matlab并不需要程序员实现定义变量的数据类型和大小。但是,如果事先不分配一段空间,每经过一次for循环,数组x的大小都会改变,这就需要新建一个数组并且把原来的数组复制到新的数组,增加了运算时间。计算机内存存储二维数据是按照列的顺序保存,先存第一列,再存第二列,以此类推。所以按照列来读取数据会提高速度。用了两张图标来展示这个方法的效 阅读全文
posted @ 2014-02-26 12:26 KK4SBB 阅读(406) 评论(0) 推荐(0) 编辑
 
摘要: 当typedef与结构结合使用时,会有一些比较复杂的情况,而且在C语言和C++里面有略有差别,因此从网上摘录了一些资料。1 首先:在C中定义一个结构体类型要用typedef:typedef struct Student{int a;}Stu;于是在声明变量的时候就可:Stu stu1;如果没有typedef就必须用struct Student stu1;来声明这里的Stu实际上就是struct Student的别名。另外这里也可以不写Student(于是也不能struct Student stu1;了)typedef struct{int a;}Stu;但在c++里很简单,直接struct S 阅读全文
posted @ 2014-02-26 12:24 KK4SBB 阅读(266) 评论(0) 推荐(0) 编辑
 
摘要: 逻辑运算符号也是一种运算符号,比如&&(与)、||(或)和!(非)。一般自己在写C/C++程序的时候,通常用逻辑运算符做判断,if(A且B)或者while(A或B),很少用他们做算数运算。因为用逻辑运算符做算数运算,就要涉及到二进制数的每一个bit的值了。今天在找分段树算法的时候发现几个有趣的面试题,关于逻辑运算符的例子。第一个是y=x&&(-x)。这个式子的返回值是最后一位“1”以及其后所有“0”组成的数。比如,设x=40,用二进制表达就是x=00101000。-x=-40,负数在计算机里是用补码表示的(补码就是反码加一,反码是原码取反),-x=1101100 阅读全文
posted @ 2014-02-26 12:23 KK4SBB 阅读(526) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 下一页