现在位置: 首页 > unlisted发表的所有文章
  • 09月
  • 21日
综合 ⁄ 共 2944字 评论关闭
Disk Schedule Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2368    Accepted Submission(s): 333 Problem Description 有很多从磁盘读取数据的需求,包括顺序读取、随机读取。为了提高效率,需要人为安排磁盘读取。然而,在现实中,这种做法很复杂。我们考虑一个相对简单的场景。磁盘有许多轨道,每个轨道有许多扇区,用于存储数据。当我们想在特定扇区来读取数据时,磁头需要跳转到特定的轨道、具体扇区进行读取操作。为了简单,我们假设磁头可以在某个......
阅读全文
  • 05月
  • 25日
综合 ⁄ 共 17862字 评论关闭
  一、概述   Javascript函数劫持,也就是老外提到的Javascript hijacking技术。最早还是和剑心同学讨论问题时偶然看到的一段代码,大概这样写的:     window.alert = function(s) {};   觉得这种用法很巧妙新颖,和API Hook异曲同工,索性称之为Javascript function hook,也就是函数劫持。通过替换js函数的实现来达到劫持这个函数调用的目的,一个完整的hook alert函数例子如下: <!--1.htm--><script type="text/javascript"><!--var _alert = alert;window.alert = function(s) {    if (co......
阅读全文
  • 04月
  • 29日

kmp

综合 ⁄ 共 1441字 评论关闭
简而言之 用途: kmp算法用于在【长串】中找【模式串】,并返回【配准的位置】,速度上优于暴力的算法。 暴力法简述: 长串A,短串B,从头(i = j = 0)开始逐个(++)比较,如果A[i] != B[j],j退回0,i退回本次匹配 i 初始位置,并i++,如此往复。如果在脑中模拟这一过程,好比【短串在长串中 滑动(向右),每滑一步,把短串中的内容从头到尾刷一遍<最坏情况>】,因此时间复杂度为 O(M * N)。 kmp 法简述: 1.我看到的所有讲kmp的blog,都提到kmp 的核心,在于【不回溯长串】,意思是说kmp进行匹配时,i是没有上面暴......
阅读全文
  • 04月
  • 19日
综合 ⁄ 共 9961字 评论关闭
          设计一个简单的,易用的通信框架应该包含三个部分:监听器(耦合UI线程和通信线程),计时器(在通信超时的情况下,通知UI线程),通信体(维护通信)。   下面给出一个设计完好的例子:         UI代码: package app.midlet; import javax.microedition.io.HttpConnection; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.TextBox; i......
阅读全文
  • 04月
  • 17日
综合 ⁄ 共 2570字 评论关闭
一、编译过程分析    编译软件读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并按照操作系统对可执行文件格式的要求链接生成可执行程序. 二、编译流程表    C源程序(.c文件)             (编辑器)-->    预处理过程(.c文件)                  -->    编译、优化过程(.s或.asm文件)  (编译器)-->    汇编过程(.o或.obj文件)       (汇编器)-->    链接过程(.exe文件、.elf文件、.bin文件等) (链接器LD) 三、预处理过程:    该阶段主要工作是读......
阅读全文
  • 03月
  • 17日
综合 ⁄ 共 1217字 评论关闭
#include <cstdio> #define lson l , m , rt << 1 #define rson m + 1 , r , rt << 1 | 1 const int maxn = 55555; int sum[maxn<<2];//x4 void PushUP(int rt) {//区间求和,从叶子节点更新上来 sum[rt] = sum[rt<<1] + sum[rt<<1|1]; } void build(int l,int r,int rt) { if (l == r) {//线段树是基于数组的,节点一层一层排下来,完全二叉树 scanf("%d",&sum[rt]); return ; }//从父节点出发,左儿子和右儿子是通过数组下标找到的 //而其对应的左端点和右端点是在参数传递的时候......
阅读全文
  • 02月
  • 09日
综合 ⁄ 共 1751字 评论关闭
由于众所周知的原因, google无法访问, 一直使用的smarthost也无法工作, 简单一些还可以通过IP地址来访问, 可以通过如下方式来寻找相应的IP地址: 1, 使用公共的web ping工具找到Google.com ip;  工具有不少,如StartPing或APM Cloud Monitor, 输入Google.com, 得出如下结果,  Region Country City Result min. rrt avg. rrt max. rrt IP Europe Italy Milan Ok 0.2 0.3 0.3 173.194.116.4 Europe Latvia Riga Ok 10.4 10.5 10.6 173.194.32.33 Europe Lithuania Siauliai Ok 3.2 3.2 3.3 84.15.64.37 North America Uni......
阅读全文
  • 01月
  • 15日
综合 ⁄ 共 4533字 评论关闭
今天被傻逼联通坑死了,,目前还没弄懂它坑爹的话费机制 浪费老子10块钱,,我屮艸芔茻 进入正题。。 今天用kruskal写了个题。。大致流程。,其实复杂程度和prim算法差不多。 先按照边排序,然后一个个选出来,用并查集判断是否形成环。 poj2485: 同样,回头整理的时候会给出结题报告的。 直接贴代码; /* * ===================================================================================== * * Filename: 2485.c * * Description: poj2485 * * Version: 1.0 * Created: 2014/7/6......
阅读全文
  • 01月
  • 12日
综合 ⁄ 共 1576字 评论关闭
链接:http://acm.hdu.edu.cn/showproblem.php?pid=4821 题意:给一个字符串,选m个长度为l的子串组成新的串,要求这m个子串互不相同,问有多少种组合。 字符串hash题目,以前没做过,做这道之前还用bkdrhash做了两道简单的题目,POJ1200和HDU1800。 用base数组记录乘了几个seed,base[i]表示seed^i,这个数组在之后计算子串hash值的时候会用到,先预处理一遍节省时间。 如果字符串从前往后hash,则hash[ i ] - hash[ i - l ] * base[ l ] 就是子串 [ i - l , i ] 的hash值,而从后往前hash的话 hash[ i ] - hash[ i + l ] * base......
阅读全文
  • 11月
  • 16日
综合 ⁄ 共 1299字 评论关闭
题意:给定区间[L,U],求区间的两对素数,分别是距离最小和距离最大的。这里距离就是两个数的差值 思路:预处理筛选出sqrt(2,147,483,647)以内的素数,然后去筛选出[L,U]的合数,最后从[L,U]的素数中扫描答案 这里用int溢出了。坑。。。 code: #include <iostream> #include <cstdio> #include <algorithm> #include <cmath> #include <cstring> #include <string> #include <iomanip> #include <queue> #include <vector> #include <set> #include <map> typ......
阅读全文
  • 10月
  • 02日
综合 ⁄ 共 429字 评论关闭
获取当前具有输入焦点控件的窗口句柄 由于GetFocus只能本身进程调用,所以必须调用AttachThreadInput函数附加线程 HWND wnd;//窗口句柄 wnd=GetForegroundWindow();//获得当前激活的窗口句柄 DWORD SelfThreadId=GetCurrentThreadId();//获取本身的线程ID DWORD ForeThreadId=GetWindowThreadProcessId(wnd,NULL);//根据窗口句柄获取线程ID AttachThreadInput(ForeThreadId,SelfThreadId,true);//附加线程 wnd=GetFocus();//获取具有输入焦点的窗口句柄 AttachThreadInput(ForeThreadId,SelfThreadId,false);//取消附加的线......
阅读全文
  • 09月
  • 10日
综合 ⁄ 共 693字 评论关闭
题目:输入一个正整数数组,把数组里的所有数字拼接起来排成一个数,打印出能拼接处的所有数字中最小的一个,例如,输入数组,{32,321},则打印出这个3个数字能排成的最小数字32132. 通过比较组合的字符串的大小来排序原来的整数数组,例如 32和321比较的结果是 ”32321“>"32132" 所以认为 32是大于321的。利用冒泡排序的方法解决之。 int compare2int(int a,int b){//比较字符串a+b与b+a的大小 char s1[10],s2[10],tmp1[10]; sprintf(s1,"%d",a); sprintf(tmp1,"%d",a); sprintf(s2,"%d",b); strcat(tmp1,s2); strcat(......
阅读全文