自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Thare_Lam

The road of coding is 漫漫

  • 博客(37)
  • 资源 (13)
  • 收藏
  • 关注

原创 Mac开启/关闭充电提示音

开启:defaults write com.apple.PowerChime ChimeOnAllHardware -bool true & open /System/Library/CoreServices/PowerChime.app关闭:defaults write com.apple.PowerChime ChimeOnAllHardware -bool false & killall Po

2017-04-20 13:06:00 5785

原创 Python __getattribute__、__getattr__、__get__总结

先上一段代码:class MyClass(object): v1 = 1 def __getattribute__(self, *args, **kwargs): print '__getattribute__' return object.__getattribute__(self, *args, **kwargs) def __getattr_

2017-03-08 13:19:11 732

原创 黑板客爬虫闯关第四关

上学期太忙了,第四关也就一直没去捣鼓(严重拖延症)。今天天气不错,也就抽点时间来整了整。 这一关的核心是Python多线程。密码总共有13页,每一页出现的密码是随机的。也就是说,即使你从第一页翻到最后一页,每一位的密码也不一定能全部获得。而且你会发现,页面载入速度非常慢(这是黑板课老师故意的),这样可以很好地使用Python多线程。Python的多线程和Java多线程不太一样:“Python的多线

2016-03-12 14:34:03 1843

原创 Lab4 Authentication

Lab OverviewIn this lab, you’ll explore authentication. The key problem that authentication addresses is that how to identify the identity of a user. Think online banking system, on which many users ar

2015-12-11 21:47:56 1450 2

原创 MAC下wireshark "No interface found"解决办法

今天打开wireshark突然发现抓不到包,提示”No interface found”。网上查了下,只要执行sudo chmod 777 /dev/bpf*再重启wireshark即可。

2015-12-09 21:25:19 7341 2

原创 算法实验

注:代码已检查,仅供参考,请勿照抄。如有错误请指出,谢谢。Lab 1-快速排序Lab 2-背包问题Lab 3-任务调度Lab 4-红黑树Lab 4-AVL树

2015-12-07 14:46:19 965

原创 Mac下安装mysql-python失败解决方法

今日在安装mysql-python时候提示以下错误(Mac OS 10.11.1):百度后得到如下便利的解决方案:$ export PATH=$PATH:/usr/local/mysql/bin中间可能会让你安装命令行执行工具(如果安装了Xcode就不会)。接下来再安装mysqp-python即可$ sudo pip install mysql-python

2015-12-02 00:00:42 4009

原创 Lab3 Privilege Separation

Lab OverviewIn this lab, you’ll explore privilege separation. The key insight of privilege separation is to give minimal privilege to each component of a system, so that when one component of the syste

2015-11-17 22:24:04 1054 1

原创 Java中不同数字类型之间的转换

今天在复习Java的时候看到一些和我一直以来想象中不一样的东西,特记录下来。在许多计算机语言中,往往都有基本数据类型之间的自动转换。比如int a = 1;double b = 3.2d;System.out.println(a + b);在执行a+b的时候,a首先会先转换成double,再和b进行加法运算。也就是说,当两个不同类型的数进行基本运算符操作时,精度小的那个数会首先转换成精度大的数

2015-11-13 21:15:55 1268

原创 Lab2 Return-To-Libc

Lab OverviewIn this lab, you’ll explore how to defeat the protection mechanisms introduced to counter buffer overflows. The first type of countermeasure is non­executable stack, which will mark the sta

2015-11-08 10:05:33 1153

原创 Lab1 Buffer OverFlow

Lab OverViewImportant Note: This course’s labs, including this lab, ask you to design exploits and to perform attacks. These exploits and attacks are realistic enough that you might be able to use them

2015-11-08 09:44:10 1413

原创 动态规划之备忘录法

动态规划与分治方法相似,都是通过组合子问题的解来求解原文题。分治方法将问题划分为互不相交的子问题,递归地求解子问题,再将它们的解组合起来,求出原问题的解。与之相反,动态规划应用于子问题重叠的情况,即不同的子问题具有公共的子子问题。在这种情况下,分治算法会做许多不必要的工作,它会反复地求解那些公共子子问题。而动态规划算法对每个子子问题只求解一次,将其解保存在一个表格中,从而无需每次求解一个子子问题时都

2015-11-04 21:04:58 2720

原创 Python使用socket传输文件

昨晚的高网实验要求用Socket编程实现两台机器的文件传输,还要记录传输时间并进行MD5验证,于是便用python简单实现了下。 过程其实挺简单,先建立两个进程的TCP连接,然后client先向server发送文件信息(包括文件名和文件大小以及MD5值),这个文件信息的大小是预先设定好的,也就是client和server都知道,这样server才能准确判断接收的数据哪些是文件信息哪些是真正的文件。

2015-10-30 09:33:35 16099 5

原创 Android中Listview的getChildAt()只能更新当前显示在屏幕上的Item的解决办法

一直以为Android ListView可以直接通过item的序号来动态对其设置,然后做过才发现,Android中ListView只能获取当前屏幕中显示的item并更改。所以想要修改指定的item(知道其序号)必须另辟蹊径。在这里,ListView是已经加载完成的。如果目标item项的positionposition >= ListView.getFirstVisiblePosition() &&

2015-10-14 20:12:39 890

原创 Fragment如何调用所在Activity的dispatchTouchEvent(MotionEvent ev)函数

上一篇博客中讲过如何判断软键盘的弹出并隐藏,其中hideKeyboard()函数放在Activity的dispatchTouchEvent(MotionEvent ev)函数中就可以完美地使用:public boolean dispatchTouchEvent(MotionEvent ev) { // TODO Auto-generated method stub i

2015-10-14 20:06:24 4662 2

原创 Android判断软键盘弹出并隐藏的简单完美解决方案

最近项目中有一个编辑框,下面是个ListView。在触发编辑框弹出软键盘后,ListView还能滑动,并且ListView的item还能响应单击。这样的体验效果很不好。于是便想在滑动或单击item时判断键盘是否弹出,若弹出,则把它隐藏。 网上一搜,发现Android并没有直接提供软键盘的弹出与隐藏判断,一些解决方案诸如判断父控件的高度或者判断if(getWindow().getAttributes

2015-10-14 20:00:54 3874

转载 Java内存回收机制

引言   Java的堆是一个运行时数据区,类的实例(对象)从中分配空间。Java虚拟机(JVM)的堆中储存着正在运行的应用程序所建立的所有对象,这些对象通过new、newarray、anewarray和multianewarray等指令建立,但是它们不需要程序代码来显式地释放。一般来说,堆的是由垃圾回收 来负责的,尽管JVM规范并不要求特殊的垃圾回收技术,甚至根本就不需要垃圾回收,但是由于内存的

2015-10-14 19:53:25 371

原创 1079. Total Sales of Supply Chain

Tips:真是no zuo no die.说好的尽量用C来写,脑子一抽,又用Java来写了,最直接的方法,结果来了个超时.好吧,以为是算法问题,继续改,各种思路,仍得不到解决.换C++吧,还是各种思路,没能AC.最后想试试看用C++来写最开始的最直接的方法,呵呵,AC了…再说一遍,没什么事别用Java!!!这题没什么技巧,也没什么陷阱,无非就先把输入的数据用二维数组保存起来,然后用到了队列.其它

2015-10-14 19:39:06 780

原创 1078. Hashing

Tips:说到此题真是略显辛酸.3月份做这题的时候犯过错,现在又犯了同样的错.务必看清题目啊,题目说的很清楚,用平方探测法处理冲突,怎么就是不长眼呢?素数的计算.也挺久没遇到素数了,突然一下子忘了2是不是素数,然后想当然的认为它不是.以后碰到这种问题得好好思考思考,网上查查,确认之后再写.不然写到后面把前面的问题给忽略了,就会一直找不到错误在哪.C/C++的一些基本的原理还是没高清.给数组开辟

2015-10-14 19:37:35 387

原创 1077. Kuchiguse

Tips:此题采用的是边输入边比较的方法,拿第一次输入的字符串依次和后面输入的字符串进行比较,left下标非递减.因为读入的字符串可能带有空格,于是乎gets(common)连续执行了两次才去除了回车的麻烦.具体原因还没深究,标记下以后再来更新.中间循环体加入了left<=rigth,这样如果前面有完全不匹配的字符串时,left就会赋值大于right,从而不再执行循环的内容.相同代码用Jav

2015-10-14 19:35:59 471

原创 1027. Colors in Mars

Tips:注意大小写.#include <stdio.h>void p(int a){ char c; if(a < 10) c = a + '0'; else{ switch(a){ case 10: c = 'A'; break;

2015-10-14 19:34:11 390

原创 1015. Reversible Primes

Tips:这题开始一直没太弄懂题目,以为给出的数是以d为底,相当于d进制(但各位可能比d大),然后转换成10进制,再倒置.结果只能过一个点.而且如果按照我的思路,第二个case应该是No才对.最后只能搜搜其它人的答案了.原来是这样做的:先把给出的十进制数转换成d进制,然后这个d进制再逆置,再转换成十进制,再判断. 最后借鉴了某位浙大大神的blog,其中的转置处理写的很nice.#includ

2015-10-14 19:33:04 428

原创 1011. World Cup Betting

Tips:太简单了,没啥好说的.#include <stdio.h>int main(){ int i; float d[3][3]; float dMax[3]; char t[3] = {'W','T','L'}; char c[3]; float money; while(scanf("%f %f %f",&d[0][0],&d[0]

2015-10-14 19:30:25 432

原创 1009. Product of Polynomials

Tips:本题与1002类似,只不过此题是求乘积,但和1002注意的地方一样.还需注意的是,本题开辟的数组空间大小应为2001.#include <iostream>using namespace std;#define LEN 2001int main() { int k1,k2,i,j,count; int *pCoe; double *pIndex;

2015-10-14 19:29:09 371

原创 1008. Elevator

Tips:这题实在没什么难度,也就不说什么了.#include <stdio.h>int main(){ int n,floor,time,last,gap,i; while((scanf("%d",&n) != EOF)){ time = 0; last = 0; for(i = 0;i < n;i++){

2015-10-14 19:27:39 450

原创 1007. Maximum Subsequence Sum

Tips:这题真心是郁闷要死了.自己没有看太清题目,加上题目给的实例又比较特殊,我一直以为后面是输出最大序列的左右两个下标,结果一直只对两个点.后来网上查了下别人的blog再仔细对了下题目,才发现自己理解错误.本题注意的点:(1)数列全为负数输出第一位和最后一位.(2)如果数列最大为0,则输出0 0 0即可.(3)如果数列最大子数列最左项和最右项不能为0.本题一次循环即可得出结果.边输入边用m

2015-10-14 19:26:14 456

原创 1006. Sign In and Sign Out

Tips:这题没什么陷阱,基本上例子能通过也就能AC,所以通过率也蛮高的.本题看似有些复杂,需要把字符串时间转换成我们熟悉的int类型来判断时间的早晚.其实这里有个更方便的方法,就是直接利用strcmp(str1,str2)来比较简便.注意输完M后getchar()掉回车.#include <stdio.h>#include <string.h>int main(){ int n,

2015-10-14 19:24:20 477

原创 1005. Spell It Right

Tips:这题算是很简单的一道题了,注意单词不要拼写错误就行.#include <stdio.h>char* converse(int n){ switch(n){ case 0: return "zero"; case 1: return "one"; case 2: return "two"; case 3: retur

2015-10-14 19:22:10 369

原创 1002. A+B for Polynomials

Tips:double数组必须初始化为0.默认虽为0,但是是不准确的0.第2行输入的数据在加之前要判断num[i]是不是0,加之后也要判断下是否为0,再对count进行响应操作.最后打印数据的时候空格放在数据前打印,若放在后面会造成最后一个数据也打印一个空格,从而格式错误.#include<stdio.h>#define LEN 1001int main() { double nu

2015-10-14 19:20:33 414

原创 1001. A+B Format

Tips:首先判断和的正负,这个比较容易考虑到.从高位开始输出,每三位一个分隔,要注意若更高位有过输出,则次位输出的时候不够三位记得补0.#include <stdio.h>int main() { int a,b,c,temp; int flag1,flag2; while(scanf("%d %d",&a,&b) != EOF){ c = a + b

2015-10-14 19:16:53 407

原创 Java内存回收机制(转)

引言   Java的堆是一个运行时数据区,类的实例(对象)从中分配空间。Java虚拟机(JVM)的堆中储存着正在运行的应用程序所建立的所有对象,这些对象通过new、newarray、anewarray和multianewarray等指令建立,但是它们不需要程序代码来显式地释放。一般来说,堆的是由垃圾回收 来负责的,尽管JVM规范并不要求特殊的垃圾回收技术,甚至根本就不需要垃圾回收,但是由于内存

2015-10-14 19:06:26 425

原创 Fragment如何调用所在Activity的dispatchTouchEvent(MotionEvent ev)函数

上一篇博客中讲过如何判断软键盘的弹出并隐藏http://www.cnblogs.com/thare1307/p/4617558.html  其中hideKeyboard()函数放在Activity的dispatchTouchEvent(MotionEvent ev)函数中就可以完美地使用  public boolean dispatchTouchEvent(MotionEvent

2015-10-14 19:06:24 1309

原创 Android判断软键盘弹出并隐藏的简单完美解决方案

最近项目中有一个编辑框,下面是个ListView。在触发编辑框弹出软键盘后,ListView还能滑动,并且ListView的item还能响应单击。这样的体验效果很不好。于是便想在滑动或单击item时判断键盘是否弹出,若弹出,则把它隐藏。  网上一搜,发现Android并没有直接提供软键盘的弹出与隐藏判断,一些解决方案诸如判断父控件的高度或者判断if(getWindow().getAtt

2015-10-14 19:06:22 5212

原创 Android中Listview的getChildAt()只能更新当前显示在屏幕上的Item的解决办法

一直以为Android ListView可以直接通过item的序号来动态对其设置,然后做过才发现,Android中ListView只能获取当前屏幕中显示的item并更改。所以想要修改指定的item(知道其序号)必须另辟蹊径。在这里,ListView是已经加载完成的。  首先先进行判断。如果目标Item的序号在当前显示的第一项和最后一项之间( 即>= ListView.getFirstVisib

2015-10-14 19:06:19 1775

原创 黑板课爬虫闯关第三关

前面两关算是比较容易,第三关就有些难度了,因为还需要有web方面的知识才能想到方法。第二关结束后,点击下一关,出来以下页面:乍一看还以为进错了,先不管,注册登录再说。登录后才进入这个页面:题目说比上一关多了两层保护,我们可以看到顶部有个注销按钮,也就是说首先要先登录才能继续做题。根据我那薄弱的web知识,当时第一想法就是:第一,通过增加header伪装浏览器;第二,拿我当前登录的cookie去登录。

2015-10-14 19:03:35 3971

原创 黑板客爬虫闯关第二关

这一关相比第一关反而更容易,因为不需要进行复杂的正则判断,只需要用循环尝试密码即可。这里需要用到requests的post请求,并在请求里加上用户名和密码即可。# coding=utf-8import requestswrongNotify = '您输入的密码错误, 请重新输入'website = 'http://www.heibanke.com/lesson/crawler_ex01/'in

2015-10-14 18:19:35 2813

原创 黑板课爬虫闯关第一关

黑板课爬虫闯关—第一关刚开始学习python,看了些语法后就想找些小例子来写写。因为语言这东西光看不写是不行的。知乎上看到大家各种说python写的网络爬虫非常nb的样子,便也想来搞搞。正好又看到黑板课老师在知乎的回答,一不小心点进了黑板课爬虫闯关,于是踏上了闯关的征程。第一题比较简单,就是根据网页给的数字不断更新网址后的数字,直到提示进入下一关为止。分析一下大概思路:用python获取网页,然后

2015-10-14 18:04:40 4079

python文件传输demo

python文件传输demo

2017-03-27

Lab4-Authentication

Lab4-Authentication代码、实验文档和相关文章。

2015-12-15

cookie产生与认证

通过用户名和密码(50字节)以及当前时间(24字节)来产生一个252位的cookie。random.c用于产生随机key。cookie中不含":;="。

2015-12-15

算法实验2-背包问题(更新1.1)

实现0-1背包的动态规划算法求解 实现部分背包的贪心算法求解

2015-12-11

算法实验4-红黑树

实验红黑树的基本操作(初始化、删除、插入)

2015-12-07

算法实验2-背包问题

实现0-1背包的动态规划算法求解 实现部分背包的贪心算法求解

2015-12-07

算法实验4-平衡二叉树

实现平衡二叉树(AVL树)基本操作(初始化、删除、插入)

2015-12-07

算法实验3-任务调度

在单处理器上具有期限和惩罚的单位时间任务调度问题的贪心算法

2015-12-07

算法实验-背包问题

实现0-1背包的动态规划算法求解 实现部分背包的贪心算法求解

2015-12-07

算法实验1-快速排序

实现对数组的普通快速排序和随机快速排序,并统计算法运行时间。

2015-12-07

Lab 3-Privilege Separation

Lab 3-Privilege Separation,包含代码、实验说明和论文。

2015-11-23

Lab1-Buffer OverFlow

Lab1-Buffer OverFlow,包含代码、实验说明和论文。

2015-11-10

Lab2-Return-To-Libc

Lab2-Return-To-Libc,包含代码、实验说明、相关论文。

2015-11-10

空空如也

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

TA关注的人

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