- 博客(144)
- 资源 (7)
- 收藏
- 关注
原创 POJ 2253
青蛙跳石头,要找到青蛙最少要能跳出去的距离,那么首先算出每对石头之间的距离,然后生成最小生成树,找到最小生成树里最长的距离,那么这个距离就是青蛙最少要能跳出去的距离。#include#include#includeint n,m;int x[201],y[201];double d[201];double map[201][201];bool u[201];void prim(){ int i,j
2013-04-22 18:40:29
446
原创 POJ 2251
这个题,就是个BFS,没有什么特殊的技巧可言。#include#include#include#includeusing namespace std;int l,c,r,sum;bool ans;char map[33][33][33];int vis[33][33][33];int chx[]={1,-1,0,0,0,0};int chy[]={0,0,1,-1,0,0};int chz[]={
2013-04-22 18:40:27
464
原创 POJ 1989
求最短非子序列的长度,找出这样的区间:该区间包含1—K的所有数字(可以有重复)。将原序列划分为N个这样的区间,则最终答案为N+1。原因是:长度为K的子序列可以由前K个区间中抽出一个数字组成,但对于K+1这样的子序列就找不到这样一个组合,因为少了最后一个数。就像例子里给的14 5 1 5 3 2 5 1 3 4 4 2 5 1 2 3 3。划分为【 5 1 5 3 2 5 1 3 4 】【 4 2
2013-04-22 18:40:25
640
原创 POJ 1975
大小的比较有传递性,因此可以巧用求最小生成树的方法。#include#includeusing namespace std;int main(){ int i,j,k,cas,n,m; bool a[100][100]; scanf("%d",&cas); while(cas--){ scanf("%d%d",&n,&m); memset(a,0,sizeof(a)); for(i=0;i
2013-04-22 18:40:22
588
原创 POJ 1961
给定一个字符串,求字符串的前几位是循环的子串,并求出循环次数。 用KMP求解,在KMP中有一个p数组记录当前字符的它的上一个位置,且保证这一段一定是来连续的。所以如果i处有循环则i到p[i]的长度即为循环节长度,所以如果i mod (i-p[i])=0则说明有循环,i div (i-p[i])就是循环次数。#include#includeusing namespace std;ch
2013-04-22 18:40:20
502
原创 POJ 1861
找出最小生成树中最长的分支链路,以及输出没对节点间的距离。克鲁斯卡尔算法比较合适,因为克鲁斯卡尔算法首先按照没对节点间的距离排序,在找到最小生成树的时候最后加入生成树的那对节点间的的距离就是生成树中最长的。#include#includeusing namespace std;int pre[1001];int n,m;struct node{ int x,y,w;};node out[15001
2013-04-22 18:40:18
518
原创 java.util.regex.PatternSyntaxException
在处理字符串用到String.replaceAll()这个方法的时候出现了这个异常。。。Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling metacharacter '*' near index 0 *^ at java.util.regex.Pattern.error(Pattern.java:
2013-04-22 18:40:16
6091
1
原创 POJ 1847
这道题的关键是如何将问题转化为最短路径问题,对于从节点 i 到节点 j ,如果不需要扳动扳手则map[i][j]=0,否则map[i][j]=1,这样原问题就变为求从起点到终点的最短路问题。#include#includeint map[105][105];int n,a,b;const int Max=1000;void init(){ int i,j; for(j=1;j for(i=1;i
2013-04-22 18:40:14
506
原创 POJ 1797
这个题就是求两点之间最长路径,将dijkstra算法中松弛那部分的“”即可。#include#includeusing namespace std;int n,m;int map[1000][1000];int vis[1000],d[1000];int min(int a,int b){ if(a>b) return b; return a;}void dijkstra(){ int i,j;
2013-04-22 18:40:12
597
原创 Java有包名的类不能引用默认包中的类?用反射机制解决!
加入有一个类不加package名就属于默认包,如果有一个类有包名那么如何引用那个默认包里的类呢?各种import都不行,Eclipse也无法自动引入。 其实,从 J2SE 1.4 开始,Java 编译器不再支持 import 进未命包名的类、接口。 详见 J2SE 1.4 与 J2SE 1.3 兼容性文档,第 8 点第二部分: http://java.sun.com/javase/
2013-04-22 18:40:10
1448
原创 POJ 1679
判断是否存在唯一的最小生成树,可以先求出一棵最小生成树的值,然后如果图边的条数大于n-1的话则可能存在不止一棵最小生成树,挨条边标记不可用看能否得到值跟原来的到一样的生成树,如果有则生成树不唯一,如果没有则生成树唯一。#include #include #include #include using namespace std;const int maxn=110;int p[110],rank[
2013-04-22 18:40:08
500
原创 ICTCLAS5.0与ictclas4j分词工具
从一开始用的分词工具一直是中科院的ICTCLAS中文词法分析系统,被称为是世界上最好的中文词法分析器,对于ICTCLAS中文词法分析器的其他信息可以Google或者百度百科寻找答案。 之前用的是ictclas4j版本,该版本ictclas4j的编码,等于是把中科院的free ictclas(c++版本)翻译了一遍,没有考虑c和java语言的区别。java语言中默认编码是UTF-16,
2013-04-22 18:40:06
1206
原创 POJ 1664
项目弄得差不多了,这几天没事看一下ACM的题也是挺不错的~【思路】: 1、当n>m时,肯定有n-m个盘子是空的,所以fun(m,n) = fun(m,n-m);2、当n (1)至少有一个盘子是空的,fun(m,n) = fun(m,n-1); (2)每个盘子都不是空的,则先从所有的苹果中拿出n个苹果,相当于先确保每个盘子都至少有一个苹果。fun(m,n) = f
2013-04-22 18:40:04
705
原创 java判断标点符号问题
方法一: 写正则表达式Pattern patPunc = Pattern .compile("[`~!@#$^&*()=|{}':;',\\[\\]. 如果要判断字符串最后一个字符是否为标点符号则可以在最后加上$符号:Pattern patPunc = Pattern .compile("[`~!@#$^&*()=|{}':;',\\[\\].方法二:str = str.rep
2013-04-22 18:40:02
3167
原创 程序员躺枪都快躺成筛子了……
昨天七夕,他来接我下班,还带我去吃饭,听起来温馨浪漫。一坐下来就忙问我要笔记本和笔,问他要干什么,答曰:构思数据库。。。数据库是男是女啊?长得好看吗?身材好吗?他吃得比我快,吃完后坐着看我,我一边埋头吃一边想,这场面真是温馨,喜欢的人在对面,看着我吃好吃的。想起就感动。结果我一抬头,尼玛,原来是在看我背后的电视,我转头看过去,发现新闻女主播长得还挺好看的,就问他“她好看还是我好看?”。结果人转过头
2013-04-22 18:39:59
611
原创 当fork()遇上了printf()
题目:请问下面程序一共输出多少个“-”?#include #include #include int main(void){ int i; for(i=0; i fork(); printf("-"); } return 0;}对fork()比较熟悉的人可能会很容的看出来输出是六个“-”,但是该程序实际输出是八个“-”。首先说一下fork()的特性:
2013-04-22 18:39:57
1140
2
原创 java MySql 数据类型对照表
类型名称显示长度数据库类型JAVA类型JDBC类型索引(int)描述VARCHARL+NVARCHARjava.lang.String12CHARNCHARjava.lang.String1BLOBL+NBLOBjava.lang.byte[]-4TEXT65535VARCHARjava.lang.String-1INTEGER4INTEGER UNSIGNEDjava.lang.Long4TIN
2013-04-22 18:39:55
518
原创 java dom4j 读写XML配置文件
import org.dom4j.*;import org.dom4j.io.*;import java.io.*;import java.util.Iterator;public class RW { //写XML文件 public void Writer() throws IOException { Document doc = DocumentHelper.createDocument()
2013-04-22 18:39:53
644
原创 JAVA HashMap、TreeMap根据value值排序
之前写过一篇TreeMap自定义排序的博客,不过那个是根据key的排序,如果想要根据value的值排序可以这样写: HashMap map = new HashMap(); map.put("aaa", 3); map.put("bbb", 2); map.put("ccc", 5); map.put("ddd", 1); ArrayList> list = new ArrayList
2013-04-22 18:39:51
1042
原创 java JTextArea添加滚动条及弹出窗口阻塞主程序
JTextArea添加滚动条的方法如下: JTextArea jf = new JTextArea(); jf.setEditable(false);//设置不可编辑 jf.setLineWrap(true);//设置自动换行,否则不会出现滚动条 JScrollPane scroll = new JScrollPane(jf); scroll.setBound
2013-04-22 18:39:49
993
原创 Eclipse报错:ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2
今天在实验室调程序遇上Eclipse报这样的错误: ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2JDWP exit error AGENT_ERROR_NO_JNI_ENV(183): [../../../src/share/back/util.c:820] 这种情况我肯定不是第一个人遇
2013-04-22 18:39:47
755
原创 【转载】uml和类之间关系
1、关联双向关联:C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法。在 GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设计模式内的类关系来说显得太抽象了,因为在设计阶段关联关系必须被映射为对象引用或指针。对象引用本身就是有向的,更适合表达我们所讨论的那种关系。所以这种关系在设计的时候比较少用到,关联一般都是有向的。使用ROSE 生成的代码是
2013-04-22 18:39:45
521
原创 【转载】UML类图与类的关系详解 zt
文章来源: UML软件工程组织 ,作了很多整理,方便大家了解更全面。 摘要:类图(Class Diagram)可能是用得最多的一种UML图。类图的基本语法并不复杂,你可能最多学习两三天就可以掌握,然而要真正做到活用类图则可能需要几年的功力。类图是锻炼面向对象分析(OOA:Object-Oriented Analysis)和面向对象设计(OOD:Object-Oriented Design)思想
2013-04-22 18:39:43
1217
原创 查看Ubuntu 版本号
今天更新了一下ubuntu软件包,因为源里有新的ubuntu版本,所以一起更新了,因为傍晚时间比较紧所以更新结束后就走了,晚上回来之后突然想起来了,想要查看一下现在的ubuntu版本号,下面总结了几种方法:方法一: cat /etc/issue 返回结果: Ubuntu 11.04 \n \l 方法二: sudo lsb_release -a 返回结果: No LSB modules ar
2013-04-22 18:39:40
545
原创 MySQL 严重 Bug - 用户登陆漏洞
Security vulnerability in MySQL/MariaDB 在知道用户名的情况下(如root),直接反复重试(平均大约256次)即可登入。受影响的版本:All MariaDB and MySQL versions up to 5.1.61, 5.2.11, 5.3.5, 5.5.22 are vulnerable.MariaDB versions from 5.1.62, 5.
2013-04-22 18:39:38
705
原创 MySQL 中文乱码问题
今天聊天室测试的时候遇上了用Java代码向Mysql数据库插入的一条记录中包含中文后出现乱码的情况,遇上这种事情真心让人蛋疼不已,主要的解决办法就是要使得Java字符编码形式跟Mysql的字符编码形式一致就没问题了。 Eclipse字符编码查看方法:Window->preferences->General->Worksapce 右面Text file encoding即为Eclipse的
2013-04-22 18:39:36
546
原创 java连接Mysql数据库
最近真是各种忙,各种烦,因为,到期末了,你懂得。。。写聊天室的时候要用到数据库存储用户信息,就写了一个小的Demo在这里贴一下吧,这里用的数据库是Mysql。import java.sql.*;import java.util.*;public class Mysql { private Connection conn; private Statement state; private Resu
2013-04-22 18:39:34
626
原创 12 个有效的提高编程技能的方法
1. 永远不要停止学习和阅读阅读 书籍,而不只是网站阅读 只为自我提升,而不是为了下一个项目阅读 提升你的基础,而不只是最新技术2. 跟比你聪明的人一起工作跟比你更聪明的人或者是更有经验的人一起工作,可以让你快速提升3. 变成一个全才不要过于钻牛角尖,这可能会让你停滞不前和伤害你的就业前景。4. 阅读并记录别人的代码其实写代码比阅读并理解别人的代码要容易的多。5. 在实际的项目中获取编程经验只有在
2013-04-22 18:39:32
482
原创 O(lg m + lgn)时间复杂度求两个有序序列合并后第K大的数
【题意】:Give a divide and conquer algorithm for the following problem: you are given two sorted lists of size m and n, and are allowed unit time access to the ith element of each list. Give an O(lg m + l
2013-04-22 18:39:30
1507
原创 C语言解惑:什么是数组名
数组是指针的基础,多数人就是从数组的学习开始指针的旅程的。 下面我节选一些在各种论坛和文章里经常见到的关于数组的文字:“一维数组是一级指针”“二维数组是二级指针”“数组名可以作为指针使用”“数组名就是..........的常量指针”“数组名就是..........的指针常量”..................................这些文字看起
2013-04-22 18:39:28
630
原创 非递归实现二叉树的遍历
刚从小米校园实习生招聘回来,有一道要求用非递归实现二叉树的先序遍历,回来把这先序、中序、后序都好好弄弄吧…… 非递归的话要存储节点的父节点,但是二叉树中的各节点又没有指向父节点的指针,所以……用栈吧。。。void PreOrder(BiTree T){ //先序遍历二叉树T的非递归算法 while(!(T==NULL&&top==NULL)) { if(T) { printf("%d
2013-04-22 18:39:26
509
原创 Java中抽象类与接口的区别
由于抽象类和接口这两种机制的存在,才赋予了Java强大的 面向对象能力。 从语法定义层面看abstract class 和 interface 在abstract class方式中,Demo可以有自己的数据成员,也可以有非 abstract的成员方法,而在interface方式的实现中,Demo只能够有静态的不能被修改的数据成员(也就是必须是static final 的,不过在interf
2013-04-22 18:39:24
458
原创 云计算、社交网络和移动互联网------转自月光博客
本文转自月光博客,本人觉得不错特意转来,希望能有更多的人看到这篇文章,对更多的人有所帮助!本文的目的是用简明扼要的语言向你解释这三个时下最流行的IT术语(云计算、社交网络和移动互联网)的实质,分析它们的问题,并预测未来趋势。 什么是云计算 首先是云计算。时至今日,我的身边还常有朋友问起,这个喊得震天响的云计算,到底是什么东西?开始时我也会解释一大堆话,后来发现,简单记得住最管用。于是概括为一句
2013-04-22 18:39:22
969
原创 C语言random问题
总结一下C语言random的用法: srand((int)time(NULL))用于设定随机数种子。 rand()%100,产生0-99的随机数。如果要产生16-59之间的数,你可以这样写:rand()%44+16(这里44由59-16+1得到)。其他情况与此雷同。 下面是与random有关的两个问题(来自百度知道): 问题1:怎样获得一个真
2013-04-22 18:39:20
9147
原创 邮件列表的文化与礼节 (转)
计算机技术的革新速度极其惊人,在网络通讯交流技术上 更是如此,从最古老的UNIX上的talk命令(各类IM软件的前身)发展到今天的各种IM(Instant Messenger,例如QQ、MSN等)以及VoIP(Voice over Internet Protocol,例如Skype)软件。在功能、技术和效率上翻了何止10倍。 然而,计算机技术、学术的交流圈却忠于传统的一些通讯交流技术,人们还在
2013-04-22 18:39:17
566
原创 USACO 3.4.4
动态规划,dp[i][j]表示第i张光盘用了j时间存了多少首哥,Max[i]表示第i张光盘存储歌曲最大数目。初始化时dp[i][0]=Max[i-1]。 #include #include using namespace std;int T[21],dp[21][21],Max[21];int main(){ ifstream fin("rockers.in"); ofstream fou
2013-04-22 18:39:15
572
原创 USACO 3.4.3
用y=1...m这些直线截题中的两条线段,算出x坐标的差值,取整。 #include using namespace std;int main(){ ifstream fin("fence9.in"); ofstream fout("fence9.out"); double m,n,p; int count = 0; fin>>n>>m>>p; for(int i=1;i { doubl
2013-04-22 18:39:13
538
原创 USACO 3.4.2
#include#include#includeusing namespace std;ifstream fin;ofstream fout;void process(string s1,string s2){ string s3,s4; int b; if(!s1.empty()){ char a=s1[0]; b=s2.find(a); s4=s2.substr(0,b); s3=
2013-04-22 18:39:11
387
原创 USACO 3.4.1
自己不太会计算几何,借鉴了一下别人的方法, 1.判断多边形是否合法 任两条边都不相交即合法,注意这里的相交是严格相交,顶点相交不算相交。 2.能看到哪些边 扫描线处理 #include#include#includeusing namespace std;ifstream fin("fence4.in");ofstream fout
2013-04-22 18:39:09
472
原创 USACO 3.3.5
博弈论,当你在i到j中取了i之后,那么你就只能在i + 1到j中作为后手取值,故你所能取得的值为i + 1到j的和减去作为先手所取得的最大值。 初始化: dp[i][i] = sum[i][i] = a[i]; 状态转移方程: dp[i][j] = max(a[i] + sum[i + 1][j] - dp[i + 1][j], a[j] + sum[i][j - 1] - dp[i][j
2013-04-22 18:39:07
457
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅