博文

亲戚(normal)(2009-05-27 21:11:00)

摘要:【四川选拔】亲戚(normal) Time Limit:10000MS  Memory Limit:65536KTotal Submit:4 Accepted:1 Case Time Limit:1000MS Description   若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。   规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚。如果x,y是亲戚,那么x的亲戚都是y的亲戚,y的亲戚也都是x的亲戚。 Input   第一行:三个整数n,m,p,(n<=5000,m<=5000,p<=5000),分别表示有n个人,m个亲戚关系,询问p对亲戚关系。   以下m行:每行两个数Mi,Mj,1<=Mi,Mj<=N,表示Ai和Bi具有亲戚关系。   接下来p行:每行两个数Pi,Pj,询问Pi和Pj是否具有亲戚关系。 Output   P行,每行一个’Yes’或’No’。表示第i个询问的答案为“具有”或“不具有”亲戚关系。 Sample Input   6 5 3   1 2   1 5   3 4   5 2   1 3   1 4   2 3   5 6 Sample Output   Yes   Yes   No Source xinyue   g不知道是不是并查集。思路, 针对每一对亲戚关系,找一个最小的编号做为家长。 更新另一个所有有关的家族! 源代码: #include<stdio.h>int M[5005];int main(){ int n,m,p; int i,a,b,temp,k; scanf("%d %d %d",&n,&m,&p);  for(i=1;i<=5000;i++)  M[i]=i; for(i=1;i<=m;i++) {  scanf("%d %d",&a,&b);  if(M[b]<M[a])  { &......

阅读全文(1130) | 评论:0

项目学习心得4.14(2009-04-14 18:49:00)

摘要: 项目进展:首先,1. 针对mysql的两种驱动: 一种是org.gjt.mm.mysql.Driver  一种是com.mysql.jdbc.Driver  org.gjt.mm.mysql.Driver是早期的驱动名称,  后来就改名为com.mysql.jdbc.Driver,  现在一般都推荐使用 com.mysql.jdbc.Driver。  在最新版本的mysql jdbc驱动中,为了保持对老版本的兼容,  仍然保留了org.gjt.mm.mysql.Driver,  但是实际上 org.gjt.mm.mysql.Driver中调用了com.mysql.jdbc.Driver,  因此现在这两个驱动没有什么区别。 2.mysql的驱动有五个JAR包:  mysql-connector-java-5.0.8-bin.jar  jxl.jar  msutil.jar  msbase.jar   mssqlserver.jar  存在E:\mysql\mysql的驱动JAR包 3.  Statement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和 execute。  使用哪一个方法由 SQL 语句所产生的内容决定。   executeQuery  SELECT   executeUpdate INSERT、UPDATE 或 DELETE    execute 返回多记录集  详细用法参见E:\mysql\excute、executeQuery和executeUpdate.txt 4.for update 锁记录集!若为主键刚为锁行记录  拥有锁记录的权限的要是同是数据库连接!  在同一方法中多次连......

阅读全文(1253) | 评论:0

createStatement(ResultSet.TYPE_SCROLL_SE(2009-03-09 13:16:00)

摘要: (来自ibm) 用缺省设置创建时,ResultSet 是一种只能访问一次(one-time-through)、只能向前访问(forward-only)和只读的对象。您只能访问数据一次,如果再次需要该数据,必须重新查询数据库。然而,并不只有这一种方式。通过设置 Statement 对象上的参数,您可以控制它产生的 ResultSet。例如:... Class.forName(driverName); db = DriverManager.getConnection(connectURL); Statement statement = db.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);   String orderElName = xmlfileEl.getElementsByTagName("order").item(0) .getFirstChild().getNodeValue();...这个 Statement 现在将产生可以更新并将应用其他数据库用户所作更改的 ResultSet。您还可以在这个 ResultSet 中向前和向后移动。第一个参数指定 ResultSet 的类型。其选项有:TYPE_FORWARD_ONLY:缺省类型。只允许向前访问一次,并且不会受到其他用户对该数据库所作更改的影响。 TYPE_SCROLL_INSENSITIVE:允许在列表中向前或向后移动,甚至可以进行特定定位,例如移至列表中的第四个记录或者从当前位置向后移动两个记录。不会受到其他用户对该数据库所作更改的影响。 TYPE_SCROLL_SENSITIVE:象 TYPE_SCROLL_INSENSITIVE 一样,允许在记录中定位。这种类型受到其他用户所作更改的影响。如果用户在执行完查询之后删除一个记录,那个记录将从 ResultSet 中消失。类似的,对数据值的更改也将反映在 ResultSet 中。 第二个参数设置 ResultSet 的并发性,该参数确定是否可以更新 ResultSet。其选项有:CONCUR_READ_ONLY:这是缺省值,指定不可以更新 ResultSet CONCUR_U......

阅读全文(918) | 评论:0

eclipse快捷键大全(2008-10-29 21:10:00)

摘要:Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Alt+↑ 当前行和上面一行交互位置(同上)Alt+← 前一个编辑的页面Alt+→ 下一个编辑的页面(当然是针对上面那条来说了)Alt+Enter 显示当前选择资源(工程,or 文件 or文件)的属性Shift+Enter 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)Shift+Ctrl+Enter 在当前行插入空行(原理同上条)Ctrl+Q 定位到最后编辑的地方Ctrl+L 定位在某行 (对于程序超过100的人就有福音了)Ctrl+M 最大化当前的Edit或View (再按则反之)Ctrl+/ 注释当前行,再按则取消注释Ctrl+O 快速显示 OutLineCtrl+T 快速显示当前类的继承结构Ctrl+W 关闭当前EditerCtrl+K 参照选中的Word快速定位到下一个Ctrl+E 快速显示当前Editer的下拉列表(如果当前页面没有显示的用黑体表示)Ctrl+/(小键盘) 折叠当前类中的所有代码Ctrl+×(小键盘) 展开当前类中的所有代码Ctrl+Space 代码助手完成一些代码的插入(但一般和输入法有冲突,可以修改输入法的热键,也可以暂用Alt+/来代替)Ctrl+Shift+E 显示管理当前打开的所有的View的管理器(可以选择关闭,激活等操作)Ctrl+J 正向增量查找(按下Ctrl+J后,你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在stutes line中显示没有找到了,查一个单词时,特别实用,这个功能Idea两年前就有了)Ctrl+Shift+J 反向增量查找(和上条相同,只不过是从后往前查)Ctrl+Shift+F4 关闭所有打开的EditerCtrl+Shift+X 把当前选中的文本全部变味小写Ctrl+Shift+Y 把当前选中的文本全部变为小写Ctrl+Shift+F 格式化当前代码Ctrl+Shift+P 定位到对于的匹配符(譬如{}) (从前面定位后面时,光标要在匹配符里面,后面到前面,则反之)下面的快捷键是重构里面常用的,本......

阅读全文(1830) | 评论:0

Eclipse3.3的安装配置(2008-10-28 15:48:00)

摘要:Eclipse3.3的安装配置 Eclipse是一款开发Java的强大的开源IDE,它可以满足从企业级Java应用到手机终端Java游戏的开发。以Eclipse3.3为例,聊几句Eclipse的安装配置。一、安装JDKEclipse是一个基于Java平台的开发环境,它需要使用JDK的编译器,于是我们必须首先安装JDK。目前最新的JDK版本是JDK6U6,先从SUN的官方站点http://java.sun.com下载JDK6U6,安装到计算机上,假定安装目录是C:\Program Files\Java\jdk1.6.0_06。注意JDK6的安装文件夹为jdk1.6,但在Eclipse的Preferences中的编译器选项上显示为JDK6。二、设置环境变量WinXP环境下,我的电脑——属性——高级——环境变量,在全局变量中添加三个环境变量JAVA_HOME、PATH和CLASSPATH。在Windows的较低版本的操作系统中,可以尝试使用set命令。JAVA_HOME是JDK的安装目录,设为C:\Program Files\Java\jdk1.6.0_06;PATH在末尾添加C:\Program Files\Java\jdk1.6.0_06\bin,各path值之间用分号隔开(注意:如果系统安装了多个Java虚拟机,必须把JDK1.6的路径放在其他JVM的前面,否则Eclipse启动将报错);Java虚拟机会根据CLASSPATH来搜索class文件所在目录,虽然这不是必须的,我们完全可以在运行Java程序时指定CLASSPATH,但是为了能更方便地运行Java程序,建议设置CLASSPATH,设为句点(.)。三、安装Eclipse实际上,Eclipse是不需要安装的。将下载下来的压缩包解压到一个文件夹即可。Eclipse第一次运行时,会提示你选择一个默认的工作目录,设置一下,很简单。OK!学习Eclipse的最好方法就是马上使用它!  ......

阅读全文(2462) | 评论:0

棋盘分割(2008-10-16 17:03:00)

摘要: 棋盘分割Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 23    Accepted Submission(s): 18 Problem Description 将一个8*8的棋盘进行如下分割:将原棋盘割下一块矩形棋盘并使剩下部分也是矩形,再将剩下的部分继续如此分割,这样割了(n-1)次后,连同最后剩下的矩形棋盘共有n块矩形棋盘。(每次切割都只能沿着棋盘格子的边进行) 原棋盘上每一格有一个分值,一块矩形棋盘的总分为其所含各格分值之和。现在需要把棋盘按上述规则分割成n块矩形棋盘,并使各矩形棋盘总分的均方差最小。 均方差,其中平均值xi为第i块矩形棋盘的总分。 请编程对给出的棋盘及n,求出O'的最小值。   Input 第1行为一个整数n(1 < n < 15)。 第2行至第9行每行为8个小于100的非负整数,表示棋盘上相应格子的分值。每行相邻两数之间用一个空格分隔。   Output 仅一个数,为O'(四舍五入精确到小数点后三位)。   Sample Input 3 1 1 1 1 1 1 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 3   Sample Output 1.633   Source 华东交通大学2008(秋季)ACM程序设计竞赛(公开赛)   Recommend lcy   #include<stdio.h>#include<math.h>int f[8][8];double g[20][8][8][8][8];int main(){ int n,b; int i,j,ii,jj,i1,j1,k; double total=0,res......

阅读全文(2867) | 评论:2

【练习试题】:办公室失窃案(2008-10-16 14:28:00)

摘要:【练习试题】:办公室失窃案 Time Limit:1000MS  Memory Limit:65536KTotal Submit:8 Accepted:1 Description 有一天,某办公室发生了失窃案,为了搜集线索,每个职员被要求说明自己在那些时间段里离开了办公室.现在你写一个程序,分析出在这一天中那些时间段办公室空无一人. Input 输入(包含多个测试数据):第一行是一个整数n(0<=n<=100),表示职员的总数,接下来是n段职员自述.每段职员自述的第一行是一个整数ti(0<=ti<=10),接下来ti行给出了该职员不在办公室的所有时间段.每个时间段都是一下面的形式给出的:起始时间-终止时间,其中起始时间和终止时间都是以12小时表示法给出的,格式为hh:mmnn,其中nn为am(上午)或者pm(下午)hh的第一个0可以被省略.终止时间>起始时间.所有时刻均不早于8:00am,也不晚于9:00pm.输入保证了同一职员的任意两个时间段步重叠也不相邻. Output 输出:包括了所有无人的时间段,每个时间段独占一行,格式类似与输入文件,但是hh的第一个0必须被输出.任意两个时间段不能重叠也不能相邻.如果没有相应的时间段需要被输出,则输出”No” 注:12:00pm表示中午12点(输入输出都按这个来) Sample Input 3 2 8:00am-9:00am 5:00pm-9:00pm 1 8:00am-1:00pm 2 8:00am-10:00am 6:00pm-9:00pm Sample Output 08:00am-09:00am Source 没得话讲! 这题目*&^%^$%*^% 不过有蛮多细节没考虑到的! 题目算法还是很简单的 #include<stdio.h>int a[30][80];int main(){// freopen("WORDS7.in","r",stdin); int n,N,i,j,m,t,tt; int mark,g=0; int sn,sm,en,em; char str[20]; while(scanf("%d",&am......

阅读全文(1685) | 评论:0

【金凌模拟试题】:计算面积(2008-10-16 12:50:00)

摘要: 【金凌模拟试题】:计算面积 Time Limit:1000MS  Memory Limit:65536KTotal Submit:9 Accepted:1 Description jyy在平面上放置了N个地雷,假设每个地雷爆炸以后,都会将以它为圆心,半径为1的圆内所有敌人摧毁。问这N个地雷的火力所覆盖的面积是多少? Input 第一行整数N(N<=100),以后N行,每行两个整数(x, y)为每个地雷的坐标。 Output 一行,为火力覆盖的面积,精确到小数点后两位。 Sample Input 3 1 1 1 2 2 2 Sample Output 6.84 Source Added by Fxdmhtt 还是多亏荷妈帮我算积分!不然我是算不出来那个面积! 不知道测试数据的覆盖范围有多广,b1是一个小方形的面积,b2是指两个四分之一圆相交后的面积!b4四分之一圆的面积!! 相应的a 表示个数 #include<stdio.h>int f[3000][3000];int main(){// freopen("area9.in","r",stdin);    //设置输入和输出文件// freopen("output.txt","w",stdout);  int a4,a2,a1,mina,minb,maxa,maxb; int ii,jj; double b4=0.7853981633974,b2=0.9566114774906,b1=1; int n,i,j,a,b; double res;// while(scanf("%d",&n)!=EOF) { // if(n==0) break;  scanf("%d",&n);  mina=minb=50000;  maxa=maxb=0;  for(i=0;i<3000;i++)   for(j=0;j<3000;j++)  &......

阅读全文(1922) | 评论:0

"下沙野骆驼"ACM夏令营(2008-10-09 18:10:00)

摘要:"下沙野骆驼"ACM夏令营 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submission(s) : 8   Accepted Submission(s) : 2 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description 大家都知道,杭电计算机学院为了吸引更多的学生参与到程序设计竞赛中去,从2005年秋天,开始举行月赛,并一直坚持到了现在。事实表明,这项措施的效果还是很明显的,现在坚持参加训练的学生比以前有了较大幅度的增长,整体水平也有了较大的提高。为了更好的促进这项竞赛的发展,计算机学院又有了新的计划:准备在每年的暑假举行一个为期半个月的程序设计夏令营活动,活动的全称是“下沙野骆驼ACM夏令营”,准备邀请全球的编程高手共同训练,邀请对象当然少不了HFUT的DYGG,NIT的DGMM,ZJUT的QWDD,如果QH的LTC一定要来,我们也不会嫌弃,虽然他水平比其他人差了些,毕竟是杭州人,要给点面子的,再说,共同进步才是我们的最终目的,呵呵。活动的安排初步定为7项内容,具体是:1、第一天,倒时差(主要照顾欧美的选手)。2、第二天,参观杭电校园,并在参观结束举行有奖竞答,偷偷透露一下,题目我已经设计好了:“杭电校院一共有几棵树?”(正确答案:3897棵),答对的营员奖励雪糕一支(不是哈根达斯,是杭州五丰生产的,民族工业还是要支持的)。3、第三天,参观杭电ACMer的寝室,主要目的是让部分来自资本主义国家的选手看看我们是如何管理学生宿舍的,其中一项重要内容是向全球推广我校首创的“党员模范寝室”。4、第四天,练习赛,题目只有一个:“非著名高校HD一共有教职工num个,分布在X个部门,假设每个部门有y1个正处级领导,y2个副处级领导,y3个付处级调研员,y4个正科级干部,y5个副科级干部,请输出HD的领导人员占教职工总数的比例,结果保留两位小数。”(告诉你,这个题目对于欧美选手来说有个陷阱,最后的结果可能大于100%!这是他们如何也想不到的:)5、第五天~第十三天,算法交流,主要讨......

阅读全文(2718) | 评论:0

符号三角形(2008-10-08 21:41:00)

摘要:符号三角形 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submission(s) : 12   Accepted Submission(s) : 3 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description 符号三角形的 第1行有n个由“+”和”-“组成的符号 ,以后每行符号比上行少1个,2个同号下面是”+“,2个异 号下面是”-“ 。计算有多少个不同的符号三角形,使其所含”+“ 和”-“ 的个数相同 。 n=7时的1个符号三角形如下:+ + - + - + + + - - - - + - + + + - - + + - - + - - - + Input 每行1个正整数n <=24,n=0退出. Output n和符号三角形的个数. Sample Input 15 16 19 20 0 Sample Output 15 1896 16 5160 19 32757 20 59984 Source 华东交通大学2008(秋季)ACM程序设计竞赛(公开赛) 怎么讲呢!回溯吧!不过我的是超时了! 先算出结果!复制出来拷到数组中来!直接查表!   #include<stdio.h> int main(){ int n; int a[25]={0,0,0,4,6,0,0,12,40,0,0,171,410,0,0,1896,5160,0,0,32757,59984,0,0,431095,822229}; while(scanf("%d",&n)!=EOF) {  if(n==0) break;  printf("%d %d\n",n,a[n]); }  return 0;}......

阅读全文(3821) | 评论:1