- 博客(16)
- 收藏
- 关注
原创 [计算机基础]线程安全
线程安全是指某个函数、函数库在多线程环境中被调用时,能够正确地处理各个线程的局部变量使程序功能正确完成。如果一个多线程程序每次运行结果和单线程运行结果是一样的,其他变量也和预期是一样的,则称这个函数是线程安全的。线程安全的问题是由全局变量和静态变量引起的。个人理解线程安全跟操作系统中的同步与互斥、数据库中的数据库数据的一致性维护是类似的。核心就是如果不考虑同步和互斥,那么在一个可被公共
2013-03-04 11:31:15 430
原创 [SQL]WHERE与HAVING的区别
在sql中,常用WHERE和HAVING来对select出来的数据做filter.二者的区别在于:(1)HAVING用于集合函数后,例:select country, count() as num from table1 group by country having num>10;而不能写成....where num>10. where用于在table 中本就存在的字段,而且不
2013-01-29 20:39:59 615
原创 【字符串】KMP字符串匹配算法
为了实习面试,复习算法和coding练手感。OK.正题。1.什么是KMP.KMP是K M P这三个人发现的一种字符串匹配算法。具体来说,设目标串str,模式串pat. kmp可以在O(n+m)时间内找出str中的pat。KMP快的原因是每次匹配到某个字符失配时,不是回到开始匹配的位置的下一个字符重新匹配,而是通过预处理模式串pat,找出失配时,下一次应该从设么位置开始继续匹配。这样一来
2012-11-15 14:26:11 804
原创 【Ubuntu】用vim来合并两个文件的命令
首先进入到该两个文件所在的目录,设文件名分别为f1,f2现在想要将f2中第x行到最后,复制到f1末尾去vim f1:行号 //光标移到行号所在位置yG 复制从当前行到末尾:o f2G //到文件末尾P //粘贴刚才从f1中复制的部分到f2的末尾:wq //保存并退出done
2012-09-27 13:14:17 4574
原创 【java】写Naive Bayesian过程中用到的
串行贝叶斯写完了,跟范师兄商量后决定并行的下周再开始写,今天也周五了,事情不太多,就总结下写并行中遇到的问题及解决。ps: 对java不熟的菜菜伤不起。现在这些东西,也只是刚好能使用,一没完全弄透个中原理,二没发挥Java的强大功能。1.static关键字.Static可以修饰method,也可以修饰variable,它表示该变量或方法可以被直接访问而不许要类创建对象。相当于C++里的全局
2012-08-03 16:11:52 935
原创 【Java】Java中foreach循环的使用
在jdk1.5及以后的版本,都支持foreach循环。以下列出常用for循环的地方以及foreach在对应情况下的语法模式:public class Test { public static void main(String[] args){ /*for中对象是数组*/ int a[]={1,2,3}; for(int i=0;i<3;i++) System.out.pr
2012-07-20 21:45:37 4845
原创 【编译原理】编译原理课程设计中遇到的问题及解决
本来自己平时做题也大多是用.cpp的c风格写程序,自我感觉c语言的那些语法用法都已经很熟了,写编译的过程中,也遇到写新的小问题,说明自己还是对c了解的不够深入。1.switch...case...语句中,如果在某一个case下面存在变量定义语句,则会隔断switch..case体,所以如果要在某case里面定义变量,必须用{}switch ch{ case 'a': char ci
2012-05-12 12:45:33 2399
原创 【java&数据库】写冰川立方体中遇到的问题及解决
师兄那么好,冰川的实验我都不好意思拖了,可是还是因为重感冒一周,从4月20号左右,拖到今天(都5月了),还没完成,觉得很荽。神牛说,进去好好表现,早点出来。。。我这表现,也太懒了。。我有点受不了。。平时做题做惯了,而且也都用的c++,notepad++ && g++,no IDE,但是这次是要操作数据库的,还要用java写,本来就对java没怎么用不熟。师兄本来说的是用sqlsever,结果被
2012-05-02 22:59:23 871
原创 【线段树】Another LCIS
题目链接:http://acm.uestc.edu.cn/problem.php?pid=1425思路:此题是一个线段树操作。要求的是对一个序列,进行成端增减一个值之后的最长连续上升序列长度。涉及到庞大量的成段更新,所以应该应用lazy思想以不至于超时,达到更新结点操作的时间均为o(lgn)。线段树中的结点需记录的信息详见代码注释。类似这类成段更新的线段树的题目,都需要注意的两个地方:
2011-11-03 23:43:20 849
原创 【线段树】hdoj4027Can you answer these queries?
题意:n个数,每一次修改操作都是对一个给定区间的每一个数x->sqrt(x),每一次询问是求出给定区间的和。思路:典型地用线段树维护区间动态和。但是此题有一个特点,即一个数(#include#include#include#include#include#inc
2011-09-19 15:14:40 625
原创 【线段树】City Horizon
题意:给出一堆建筑物的左右端点(a,b),范围很大10^9,建筑物都是长方形的且可以相互覆盖,每个建筑物的高度是hi.求这些建筑物总共覆盖的面积。思路:这题由于建筑物的个数比较多,4*10^4,所以如果暴力枚举o(n^2)的话,肯定会超时的。所以想到用线段树优化来寻找或者标记
2011-09-18 00:51:11 1240
原创 【归并树】soj 3010 kth number
题意:给n个数,q次询问。每次求出指定区间(x,y)之间排序后第k个数。考虑到n的范围是10^5,m的范围是5*10^4.常规方法必然超时。考虑使用树结构来存储每一段区间(按线段树建树方式划分和查找,提高效率)。总的来讲,就是把数组用归并排序,因为我们希望得到每个二区间的
2011-09-14 01:28:30 1004 3
原创 【二进制】求一个数的二进制表示中1的个数
题目:求一个正整数x中1的个数思考:二进制是一个01串。统计该串中1的个数。方法1:将x按照朴素的方法转化成二进制串,如果x的某二进制位上为1,则res++.求得最后x中1的个数。int x;while(x){ res += (x%2); x/=2;
2011-09-12 23:30:18 1034
原创 【线段树】soj 3019 Count Color
这道题,基本上可以算是线段树成段更新的基本操作练习的裸题了。主要是一个lazy-tag思想的应用。注意边界条件不要搞错了。其他就没什么了。#include#include#include#includeusing namespace std;con
2011-09-12 23:11:54 656
原创 【线段树】线段树学习贴(持续更新)
线段树是一棵完全二叉树,树的每一个结点存储了一条线段(其中自己按需要给该线段区间赋予了一些属性值)。其实质是二分与递归的思想。像数据结构这样的东西,我觉得通过一定量题目的练习与思考,就还是比较容易掌握。于是,我的线段树之路开始了。题目http://zuojie.3322.org:88/soj/problem.action?id=3019 Count Color思路:线段树基本操作练
2011-09-12 18:57:44 685
原创 【STL】 string和char 数组类型互换
例:string st;string 的输入输出是用cin,cout,但是cin,cout很慢,于是希望在有大量输入输出时,使用printf来输出字符数组char s[N];strcpy(s,st.c_str());即可。输出时可用printf("%s\n",s)
2011-09-12 13:59:53 1102
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人