﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-zzg</title><link>http://www.cppblog.com/zzg/</link><description>Walking to the sky</description><language>zh-cn</language><lastBuildDate>Fri, 10 Apr 2026 10:19:18 GMT</lastBuildDate><pubDate>Fri, 10 Apr 2026 10:19:18 GMT</pubDate><ttl>60</ttl><item><title>vc++ 生成release 版</title><link>http://www.cppblog.com/zzg/archive/2009/10/09/98178.html</link><dc:creator>zzg</dc:creator><author>zzg</author><pubDate>Fri, 09 Oct 2009 10:32:00 GMT</pubDate><guid>http://www.cppblog.com/zzg/archive/2009/10/09/98178.html</guid><wfw:comment>http://www.cppblog.com/zzg/comments/98178.html</wfw:comment><comments>http://www.cppblog.com/zzg/archive/2009/10/09/98178.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zzg/comments/commentRss/98178.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zzg/services/trackbacks/98178.html</trackback:ping><description><![CDATA[
		<p>
				<font size="3">
						<font color="#ff0000">生成release版的步骤</font>：<br />右键点击菜单空白处——选择“组建”——选择“Win32 Release“——重新编译链接。</font>
		</p>
		<p>
				<font size="3">
						<font color="#ff0000">我遇到的一个错误</font>：<br />Release/Server.pch No such file or directory<br />Server是我的程序名。解决方法：<br />工程——设置——C/C++——分类：预编译的头文件——不使用预补偿页眉——确定——全部重建<br /><br />不生成release版的话到别人的机器上不好使，这就是发布啊！！同学们！</font>
		</p>
<img src ="http://www.cppblog.com/zzg/aggbug/98178.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zzg/" target="_blank">zzg</a> 2009-10-09 18:32 <a href="http://www.cppblog.com/zzg/archive/2009/10/09/98178.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据库连接池</title><link>http://www.cppblog.com/zzg/archive/2009/07/07/89424.html</link><dc:creator>zzg</dc:creator><author>zzg</author><pubDate>Tue, 07 Jul 2009 01:30:00 GMT</pubDate><guid>http://www.cppblog.com/zzg/archive/2009/07/07/89424.html</guid><wfw:comment>http://www.cppblog.com/zzg/comments/89424.html</wfw:comment><comments>http://www.cppblog.com/zzg/archive/2009/07/07/89424.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zzg/comments/commentRss/89424.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zzg/services/trackbacks/89424.html</trackback:ping><description><![CDATA[数据库连接池概述：<br /><div class="spctrl"></div>　　数据库连接是一种关键的有限的昂贵的资源，这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性，影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。<br /><div class="spctrl"></div>　　数据库连接池负责分配、管理和释放数据库连接，它允许应用程序重复使用一个现有的数据库连接，而再不是重新建立一个；释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。<br /><div class="spctrl"></div>　　数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中，这些数据库连接的数量是由最小数据库连接数来设定的。无论这些数据库连接是否被使用，连接池都将一直保证至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数，当应用程序向连接池请求的连接数超过最大连接数量时，这些请求将被加入到等待队列中。数据库连接池的最小连接数和最大连接数的设置要考虑到下列几个因素：<br /><div class="spctrl"></div>　　1) 最小连接数是连接池一直保持的数据库连接，所以如果应用程序对数据库连接的使用量不大，将会有大量的数据库连接资源被浪费；<br /><div class="spctrl"></div>　　2) 最大连接数是连接池能申请的最大连接数，如果数据库连接请求超过此数，后面的数据库连接请求将被加入到等待队列中，这会影响之后的数据库操作。<br /><div class="spctrl"></div>　　3) 如果最小连接数与最大连接数相差太大，那么最先的连接请求将会获利，之后超过最小连接数量的连接请求等价于建立一个新的数据库连接。不过，这些大于最小连接数的数据库连接在使用完不会马上被释放，它将被放到连接池中等待重复使用或是空闲超时后被释放。<br /><br /><br /><p><font size="6"><i>Proxool is a Java connection pool.</i> It's not rocket science but we've been doing it since 2001 and we've ironed out a lot of problems. Development has slowed down considerably over the past few years but we're still here, making releases and answering support questions.<br /><br />rocket science :</font></p><div class="mut_jies"><strong>航天器学,复杂的事<br />iron out 熨平<br /><br /></strong></div><img src ="http://www.cppblog.com/zzg/aggbug/89424.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zzg/" target="_blank">zzg</a> 2009-07-07 09:30 <a href="http://www.cppblog.com/zzg/archive/2009/07/07/89424.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>The requested resource (There is no Action mapped for namespace / and action  错误处理</title><link>http://www.cppblog.com/zzg/archive/2009/05/29/86071.html</link><dc:creator>zzg</dc:creator><author>zzg</author><pubDate>Fri, 29 May 2009 08:00:00 GMT</pubDate><guid>http://www.cppblog.com/zzg/archive/2009/05/29/86071.html</guid><wfw:comment>http://www.cppblog.com/zzg/comments/86071.html</wfw:comment><comments>http://www.cppblog.com/zzg/archive/2009/05/29/86071.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zzg/comments/commentRss/86071.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zzg/services/trackbacks/86071.html</trackback:ping><description><![CDATA[    首先对着原来对的查了半天 ，也没找到错。<br />     后来发现自己struts.xml的名字写成了structs.xml<br />   再后来验证还是错误，百度得知它应该放到src下面和各种包是同级关系。通过！<img src ="http://www.cppblog.com/zzg/aggbug/86071.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zzg/" target="_blank">zzg</a> 2009-05-29 16:00 <a href="http://www.cppblog.com/zzg/archive/2009/05/29/86071.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql 远程登录及常用命令</title><link>http://www.cppblog.com/zzg/archive/2009/05/29/86066.html</link><dc:creator>zzg</dc:creator><author>zzg</author><pubDate>Fri, 29 May 2009 06:42:00 GMT</pubDate><guid>http://www.cppblog.com/zzg/archive/2009/05/29/86066.html</guid><wfw:comment>http://www.cppblog.com/zzg/comments/86066.html</wfw:comment><comments>http://www.cppblog.com/zzg/archive/2009/05/29/86066.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zzg/comments/commentRss/86066.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zzg/services/trackbacks/86066.html</trackback:ping><description><![CDATA[
		<p>第一招、mysql服务的启动和停止</p>
		<p>net stop mysql</p>
		<p>net start mysql</p>
		<p>第二招、登陆mysql</p>
		<p>语法如下： mysql -u用户名 -p用户密码</p>
		<p>键入命令mysql -uroot -p， 回车后提示你输入密码，输入12345，然后回车即可进入到mysql中了，mysql的提示符是：</p>
		<p>mysql&gt;</p>
		<p>注意，如果是连接到另外的机器上，则需要加入一个参数-h机器IP</p>
		<p>第三招、增加新用户</p>
		<p>格式：grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"</p>
		<p>如，增加一个用户user1密码为password1，让其可以在本机上登录， 并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql，然后键入以下命令：</p>
		<p>grant select,insert,update,delete on *.* to user1@localhost Identified by "password1";</p>
		<p>如果希望该用户能够在任何机器上登陆mysql，则将localhost改为"%"。</p>
		<p>如果你不想user1有密码，可以再打一个命令将密码去掉。</p>
		<p>grant select,insert,update,delete on mydb.* to user1@localhost identified by "";</p>
		<p>第四招： 操作数据库</p>
		<p>登录到mysql中，然后在mysql的提示符下运行下列命令，每个命令以分号结束。</p>
		<p>1、 显示数据库列表。</p>
		<p>show databases;</p>
		<p>缺省有两个数据库：mysql和test。 mysql库存放着mysql的系统和用户权限信息，我们改密码和新增用户，实际上就是对这个库进行操作。</p>
		<p>2、 显示库中的数据表：</p>
		<p>use mysql;</p>
		<p>show tables;</p>
		<p>3、 显示数据表的结构：</p>
		<p>describe 表名;</p>
		<p>4、 建库与删库：</p>
		<p>create database 库名;</p>
		<p>drop database 库名;</p>
		<p>5、 建表：</p>
		<p>use 库名;</p>
		<p>create table 表名(字段列表);</p>
		<p>drop table 表名;</p>
		<p>6、 清空表中记录：</p>
		<p>delete from 表名;</p>
		<p>7、 显示表中的记录：</p>
		<p>select * from 表名;</p>
		<p>第五招、导出和导入数据</p>
		<p>1. 导出数据：</p>
		<p>mysqldump --opt test &gt; mysql.test</p>
		<p>即将数据库test数据库导出到mysql.test文件，后者是一个文本文件</p>
		<p>如：mysqldump -u root -p123456 --databases dbname &gt; mysql.dbname</p>
		<p>就是把数据库dbname导出到文件mysql.dbname中。</p>
		<p>2. 导入数据:</p>
		<p>mysqlimport -u root -p123456 &lt; mysql.dbname。</p>
		<p>不用解释了吧。</p>
		<p>3. 将文本数据导入数据库:</p>
		<p>文本数据的字段数据之间用tab键隔开。</p>
		<p>use test;</p>
		<p>load data local infile "文件名" into table 表名;</p>
		<p>1:使用SHOW语句找出在服务器上当前存在什么数据库：</p>
		<p>mysql&gt; SHOW DATABASES;</p>
		<p>2:2、创建一个数据库MYSQLDATA</p>
		<p>mysql&gt; CREATE DATABASE MYSQLDATA;</p>
		<p>3:选择你所创建的数据库</p>
		<p>mysql&gt; USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!)</p>
		<p>4:查看现在的数据库中存在什么表</p>
		<p>mysql&gt; SHOW TABLES;</p>
		<p>5:创建一个数据库表</p>
		<p>mysql&gt; CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));</p>
		<p>6:显示表的结构：</p>
		<p>mysql&gt; DESCRIBE MYTABLE;</p>
		<p>7:往表中加入记录</p>
		<p>mysql&gt; insert into MYTABLE values ("hyq","M");</p>
		<p>8:用文本方式将数据装入数据库表中(例如D:/mysql.txt)</p>
		<p>mysql&gt; LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE MYTABLE;</p>
		<p>9:导入.sql文件命令(例如D:/mysql.sql)</p>
		<p>mysql&gt;use database;</p>
		<p>mysql&gt;source d:/mysql.sql;</p>
		<p>10:删除表</p>
		<p>mysql&gt;drop TABLE MYTABLE;</p>
		<p>11:清空表</p>
		<p>mysql&gt;delete from MYTABLE;</p>
		<p>12:更新表中数据</p>
		<p>mysql&gt;update MYTABLE set sex="f" where name='hyq';</p>
		<p>posted on 2006-01-10 16:21 happytian 阅读(6) 评论(0) 编辑 收藏 收藏至365Key</p>
		<p>13：备份数据库</p>
		<p>mysqldump -u root 库名&gt;xxx.data</p>
		<p>14：例2：连接到远程主机上的MYSQL</p>
		<p>假设远程主机的IP为：110.110.110.110，用户名为root,密码为abcd123。则键入以下命令：</p>
		<p>
				<font color="#33cc33">mysql -h110.110.110.110 -uroot -pabcd123                       // 远程登录</font>
		</p>
		<p>(注:u与root可以不用加空格，其它也一样)</p>
		<p>3、退出MYSQL命令： exit (回车)</p>
<img src ="http://www.cppblog.com/zzg/aggbug/86066.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zzg/" target="_blank">zzg</a> 2009-05-29 14:42 <a href="http://www.cppblog.com/zzg/archive/2009/05/29/86066.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件测试中的各种版本</title><link>http://www.cppblog.com/zzg/archive/2009/05/25/85729.html</link><dc:creator>zzg</dc:creator><author>zzg</author><pubDate>Mon, 25 May 2009 09:30:00 GMT</pubDate><guid>http://www.cppblog.com/zzg/archive/2009/05/25/85729.html</guid><wfw:comment>http://www.cppblog.com/zzg/comments/85729.html</wfw:comment><comments>http://www.cppblog.com/zzg/archive/2009/05/25/85729.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zzg/comments/commentRss/85729.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zzg/services/trackbacks/85729.html</trackback:ping><description><![CDATA[      很多软件在正式发布前都会发布一些预览版或者测试版，一般都叫“beta版”或者“rc版”，特别是开源软件，甚至有“alpha版”，下面来解释一下各个版本的意思。<br /><br /><font color="#33ff66">alpha版</font>：内部测试版。α是希腊字母的第一个，表示最早的版本，一般用户不要下载这个版本，这个版本包含很多BUG，功能也不全，主要是给开发人员和测试人员测试和找<font style="BACKGROUND-COLOR: #ffffff">BUG</font>用的。<br /><br /><font color="#00ff66">beta版</font>：公开测试版。β是希腊字母的第二个，顾名思义，这个版本比alpha版发布得晚一些，主要是给“部落”用户和忠实用户测试用的，该版本任然存在很多BUG，但是相对alpha版要稳定一些。这个阶段版本的软件还会不断增加新功能。如果你是发烧友，可以下载这个版本。<br /><br /><font color="#00ff33">rc版：</font>全写：Release Candidate（候选版本），该版本又较beta版更进一步了，该版本功能不再增加，和最终发布版功能一样。这个版本有点像最终发行版之前的一个类似预览版，这个的发布就标明离最终发行版不远了。作为普通用户，如果你很急着用这个软件的话，也可以下载这个版本。<br /><br /><font color="#00ff33">stable版：</font>稳定版。在开源软件中，都有stable版，这个就是开源软件的最终发行版，用户可以放心大胆的用了。<br /><br />另外，对于商业软件，还有一下版本：<br />RTM版：全称为Release to Manufacture。零售版，工厂版。改版程序已经固定，就差工厂包装、光盘印图案等工作了。<br />OEM版：厂商定制版。<br />EVAL版：评估版。就是有30或者60天等使用期限的版本。<br />RTL版：Retail.(零售版)，这个版本就是真正发售的版本，有漂亮的包装、光盘、说明书等东西和高昂的价格。<br />CTP:Community Test Preview 社区测试试用版 <br /><img src ="http://www.cppblog.com/zzg/aggbug/85729.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zzg/" target="_blank">zzg</a> 2009-05-25 17:30 <a href="http://www.cppblog.com/zzg/archive/2009/05/25/85729.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>杭州现场赛那个并查集题目</title><link>http://www.cppblog.com/zzg/archive/2009/05/01/81629.html</link><dc:creator>zzg</dc:creator><author>zzg</author><pubDate>Fri, 01 May 2009 07:44:00 GMT</pubDate><guid>http://www.cppblog.com/zzg/archive/2009/05/01/81629.html</guid><wfw:comment>http://www.cppblog.com/zzg/comments/81629.html</wfw:comment><comments>http://www.cppblog.com/zzg/archive/2009/05/01/81629.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zzg/comments/commentRss/81629.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zzg/services/trackbacks/81629.html</trackback:ping><description><![CDATA[题目描述：<br /><h1 style="COLOR: #1a5cc8">Junk-Mail Filter</h1><font size="+0"><b><span style="FONT-WEIGHT: bold; FONT-SIZE: 12px; COLOR: green; FONT-FAMILY: Arial">Time Limit: 15000/8000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)<br />Total Submission(s): 620    Accepted Submission(s): 174<br /></span></b></font><br /><br /><div class="panel_title" align="left">Problem Description</div><div class="panel_content">Recognizing junk mails is a tough task. The method used here consists of two steps:<br />1) Extract the common characteristics from the incoming email.<br />2) Use a filter matching the set of common characteristics extracted to determine whether the email is a spam.<br /><br />We want to extract the set of common characteristics from the N sample junk emails available at the moment, and thus having a handy data-analyzing tool would be helpful. The tool should support the following kinds of operations:<br /><br />a) “M X Y”, meaning that we think that the characteristics of spam X and Y are the same. Note that the relationship defined here is transitive, so<br />relationships (other than the one between X and Y) need to be created if they are not present at the moment.<br /><br />b) “S X”, meaning that we think spam X had been misidentified. Your tool should remove all relationships that spam X has when this command is received; after that, spam X will become an isolated node in the relationship graph.<br /><br />Initially no relationships exist between any pair of the junk emails, so the number of distinct characteristics at that time is N.<br />Please help us keep track of any necessary information to solve our problem.</div><div class="panel_bottom"> </div><br /><div class="panel_title" align="left">Input</div><div class="panel_content">There are multiple test cases in the input file.<br />Each test case starts with two integers, N and M (1 ≤ N ≤ 10<sup>5</sup> , 1 ≤ M ≤ 10<sup>6</sup>), the number of email samples and the number of operations. M lines follow, each line is one of the two formats described above.<br />Two successive test cases are separated by a blank line. A case with N = 0 and M = 0 indicates the end of the input file, and should not be processed by your program.</div><div class="panel_bottom"> </div><br /><div class="panel_title" align="left">Output</div><div class="panel_content">For each test case, please print a single integer, the number of distinct common characteristics, to the console. Follow the format as indicated in the sample below.</div><div class="panel_bottom"> </div><br /><div class="panel_title" align="left">Sample Input</div><div class="panel_content"><pre>5 6
M 0 1
M 1 2
M 1 3
S 1
M 1 2
S 3

3 1
M 1 2

0 0</pre></div><div class="panel_bottom"> </div><br /><div class="panel_title" align="left">Sample Output</div><div class="panel_content"><pre>Case #1: 3
Case #2: 2</pre></div><div class="panel_bottom"> </div><br /><div class="panel_title" align="left">Source</div><div class="panel_content"><a href="http://acm.hdu.edu.cn/search.php?field=problem&amp;key=西湖之恋——HDU现场赛题目&amp;source=1">西湖之恋——HDU现场赛题目 </a></div><div class="panel_bottom"> </div><br /><div class="panel_title" align="left">Recommend</div><div class="panel_content">lcy<br /><br /><font color="#66ff00">分析：<br />有于有可能要删掉以前的根节点。所以要保存它的信息。<br />a[i] 表是原来编号为i的字母的位置，例如原来是a[i]=i;<br />现在删掉i后，假如 i 原来是一个集合的根节点。那么，只对b[i]--;<br />即这个集合的个数 减一。而这个i  的位置则移动到数组最后面 a[sum]中。<br />此时a[i]=sum;完成i的转移。<br />因而当findroot(i)时应该变成 find(a[i])，<br />相当于寻址。</font><br /><br />MY ACCEPTED CODE：<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id="Codehighlighter1_0_324_Open_Image" onclick="this.style.display='none'; Codehighlighter1_0_324_Open_Text.style.display='none'; Codehighlighter1_0_324_Closed_Image.style.display='inline'; Codehighlighter1_0_324_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_0_324_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_0_324_Closed_Text.style.display='none'; Codehighlighter1_0_324_Open_Image.style.display='inline'; Codehighlighter1_0_324_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span id="Codehighlighter1_0_324_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span><span id="Codehighlighter1_0_324_Open_Text"><span style="COLOR: #008000">/*</span><span style="COLOR: #008000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />******************************************************<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />HDU 2473 Junk-Mail Filter (2008Regional杭州现场赛题目)<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />using 并差集<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />memory 5384K<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />runtime 1265MS<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />codelength 1373B<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />Accepted time 2009-05-01 15:28:34<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />1327276 2009-05-01 15:28:34 Accepted 2473 1265MS 5384K 1373 B G++ baozi <br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />******************************************************<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /></span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000"> std;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000"> Maxn 1100005</span><span style="COLOR: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> father[Maxn],a[Maxn],b[Maxn];<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> n,q;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> init()    <br /><img id="Codehighlighter1_446_547_Open_Image" onclick="this.style.display='none'; Codehighlighter1_446_547_Open_Text.style.display='none'; Codehighlighter1_446_547_Closed_Image.style.display='inline'; Codehighlighter1_446_547_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_446_547_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_446_547_Closed_Text.style.display='none'; Codehighlighter1_446_547_Open_Image.style.display='inline'; Codehighlighter1_446_547_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_446_547_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/images/dot.gif" /></span><span id="Codehighlighter1_446_547_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">n;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br /><img id="Codehighlighter1_478_541_Open_Image" onclick="this.style.display='none'; Codehighlighter1_478_541_Open_Text.style.display='none'; Codehighlighter1_478_541_Closed_Image.style.display='inline'; Codehighlighter1_478_541_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_478_541_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_478_541_Closed_Text.style.display='none'; Codehighlighter1_478_541_Open_Image.style.display='inline'; Codehighlighter1_478_541_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_478_541_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/images/dot.gif" /></span><span id="Codehighlighter1_478_541_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        father[i]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">i;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        a[i]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">i;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        b[i]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;    <br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000">    <br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> findroot(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> x)<br /><img id="Codehighlighter1_569_650_Open_Image" onclick="this.style.display='none'; Codehighlighter1_569_650_Open_Text.style.display='none'; Codehighlighter1_569_650_Closed_Image.style.display='inline'; Codehighlighter1_569_650_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_569_650_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_569_650_Closed_Text.style.display='none'; Codehighlighter1_569_650_Open_Image.style.display='inline'; Codehighlighter1_569_650_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_569_650_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/images/dot.gif" /></span><span id="Codehighlighter1_569_650_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(x</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">father[x])<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />     father[x]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">findroot(father[x]);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> father[x];<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> UNION(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> x,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> y)<br /><img id="Codehighlighter1_676_723_Open_Image" onclick="this.style.display='none'; Codehighlighter1_676_723_Open_Text.style.display='none'; Codehighlighter1_676_723_Closed_Image.style.display='inline'; Codehighlighter1_676_723_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_676_723_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_676_723_Closed_Text.style.display='none'; Codehighlighter1_676_723_Open_Image.style.display='inline'; Codehighlighter1_676_723_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_676_723_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/images/dot.gif" /></span><span id="Codehighlighter1_676_723_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    b[y]</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">b[x];<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    b[x]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    father[x]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">y;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> main()<br /><img id="Codehighlighter1_736_1635_Open_Image" onclick="this.style.display='none'; Codehighlighter1_736_1635_Open_Text.style.display='none'; Codehighlighter1_736_1635_Closed_Image.style.display='inline'; Codehighlighter1_736_1635_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_736_1635_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_736_1635_Closed_Text.style.display='none'; Codehighlighter1_736_1635_Open_Image.style.display='inline'; Codehighlighter1_736_1635_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_736_1635_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/images/dot.gif" /></span><span id="Codehighlighter1_736_1635_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> i,ans,count</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,sum,x,y,fa,fb;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000"> que[</span><span style="COLOR: #000000">20</span><span style="COLOR: #000000">];<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(scanf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">n,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">q)</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">EOF)<br /><img id="Codehighlighter1_833_1610_Open_Image" onclick="this.style.display='none'; Codehighlighter1_833_1610_Open_Text.style.display='none'; Codehighlighter1_833_1610_Closed_Image.style.display='inline'; Codehighlighter1_833_1610_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_833_1610_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_833_1610_Closed_Text.style.display='none'; Codehighlighter1_833_1610_Open_Image.style.display='inline'; Codehighlighter1_833_1610_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_833_1610_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/images/dot.gif" /></span><span id="Codehighlighter1_833_1610_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(n</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">q</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">) </span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        init(); <br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        sum</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">n;   <br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">q;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br /><img id="Codehighlighter1_933_1460_Open_Image" onclick="this.style.display='none'; Codehighlighter1_933_1460_Open_Text.style.display='none'; Codehighlighter1_933_1460_Closed_Image.style.display='inline'; Codehighlighter1_933_1460_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_933_1460_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_933_1460_Closed_Text.style.display='none'; Codehighlighter1_933_1460_Open_Image.style.display='inline'; Codehighlighter1_933_1460_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span><span id="Codehighlighter1_933_1460_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/images/dot.gif" /></span><span id="Codehighlighter1_933_1460_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            scanf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%s</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,que);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(strcmp(que,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">M</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)<br /><img id="Codehighlighter1_1011_1193_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1011_1193_Open_Text.style.display='none'; Codehighlighter1_1011_1193_Closed_Image.style.display='inline'; Codehighlighter1_1011_1193_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1011_1193_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1011_1193_Closed_Text.style.display='none'; Codehighlighter1_1011_1193_Open_Image.style.display='inline'; Codehighlighter1_1011_1193_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />            </span><span id="Codehighlighter1_1011_1193_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/images/dot.gif" /></span><span id="Codehighlighter1_1011_1193_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                scanf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">x,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">y);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                fa</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">findroot(a[x]); <br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                fb</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">findroot(a[y]); <br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(fa</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">fb)<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                UNION(fa,fb);  <br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />            }</span></span><span style="COLOR: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_1224_1438_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1224_1438_Open_Text.style.display='none'; Codehighlighter1_1224_1438_Closed_Image.style.display='inline'; Codehighlighter1_1224_1438_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1224_1438_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1224_1438_Closed_Text.style.display='none'; Codehighlighter1_1224_1438_Open_Image.style.display='inline'; Codehighlighter1_1224_1438_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />            </span><span id="Codehighlighter1_1224_1438_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/images/dot.gif" /></span><span id="Codehighlighter1_1224_1438_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                scanf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">x);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                fa</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">findroot(a[x]);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                b[fa]</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                b[sum]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                a[x]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">sum;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                father[sum]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">sum;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                sum</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />            }</span></span><span style="COLOR: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />           <br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span></span><span style="COLOR: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            ans</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">sum;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(b[i]</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />             ans</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Case #%d: %d\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,count</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">,ans);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    <br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;    <br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /></span></div><br /></div><img src ="http://www.cppblog.com/zzg/aggbug/81629.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zzg/" target="_blank">zzg</a> 2009-05-01 15:44 <a href="http://www.cppblog.com/zzg/archive/2009/05/01/81629.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用PreparedStatement 时的错误</title><link>http://www.cppblog.com/zzg/archive/2009/04/17/80256.html</link><dc:creator>zzg</dc:creator><author>zzg</author><pubDate>Fri, 17 Apr 2009 07:54:00 GMT</pubDate><guid>http://www.cppblog.com/zzg/archive/2009/04/17/80256.html</guid><wfw:comment>http://www.cppblog.com/zzg/comments/80256.html</wfw:comment><comments>http://www.cppblog.com/zzg/archive/2009/04/17/80256.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zzg/comments/commentRss/80256.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zzg/services/trackbacks/80256.html</trackback:ping><description><![CDATA[错误描述：<br />当使用Statement  时没有错误，此时要查的信息直接放到了sql中<br />而用PreparedStatement时，报错，查不到要找的数据。<br />找了半天终于知道错误原因了：<br />虽然数据表面上正确，但实际上是不对的，<br />此时你可以看看你数据库中的字段是char（）型的，要以这个数据为条件时在preparedstatement中必须把空格补够。<br />还有一个简单方法，修改数据库，把相应类型改为varchar2（）；<br /><br />alter table tablename modify column_name varchar2(num);<br />commit;<img src ="http://www.cppblog.com/zzg/aggbug/80256.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zzg/" target="_blank">zzg</a> 2009-04-17 15:54 <a href="http://www.cppblog.com/zzg/archive/2009/04/17/80256.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2标签一览</title><link>http://www.cppblog.com/zzg/archive/2009/04/15/80008.html</link><dc:creator>zzg</dc:creator><author>zzg</author><pubDate>Wed, 15 Apr 2009 06:54:00 GMT</pubDate><guid>http://www.cppblog.com/zzg/archive/2009/04/15/80008.html</guid><wfw:comment>http://www.cppblog.com/zzg/comments/80008.html</wfw:comment><comments>http://www.cppblog.com/zzg/archive/2009/04/15/80008.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zzg/comments/commentRss/80008.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zzg/services/trackbacks/80008.html</trackback:ping><description><![CDATA[
		<p>
				<font color="#66ffcc">A： <br />&lt;s:a xhref=""&gt;&lt;/s:a&gt;-----超链接，类似于html里的&lt;a&gt;&lt;/a&gt; <br />&lt;s:action name=""&gt;&lt;/s:action&gt;-----执行一个view里面的一个action <br />&lt;s:actionerror/&gt;-----如果action的errors有值那么显示出来 <br />&lt;s:actionmessage/&gt;-----如果action的message有值那么显示出来 <br />&lt;s:append&gt;&lt;/s:append&gt;-----添加一个值到list，类似于list.add(); <br />&lt;s:autocompleter&gt;&lt;/s:autocompleter&gt;-----自动完成&lt;s:combobox&gt;标签的内容，这个是ajax <br /></font>
				<br />B： <br />&lt;s:bean name=""&gt;&lt;/s:bean&gt;-----类似于struts1.x中的，JavaBean的值 <br /><br />C： <br />&lt;s:checkbox&gt;&lt;/s:checkbox&gt;-----复选框 <br />&lt;s:checkboxlist list=""&gt;&lt;/s:checkboxlist&gt;-----多选框 <br />&lt;s:combobox list=""&gt;&lt;/s:combobox&gt;-----下拉框 <br />&lt;s:component&gt;&lt;/s:component&gt;-----图像符号 <br /><br />D： <br />&lt;s:date/&gt;-----获取日期格式 <br />&lt;s:datetimepicker&gt;&lt;/s:datetimepicker&gt;-----日期输入框 <br />&lt;s:debug&gt;&lt;/s:debug&gt;-----显示错误信息 <br />&lt;s:div&gt;&lt;/s:div&gt;-----表示一个块，类似于html的&lt;div&gt;&lt;/div&gt; <br />&lt;s:doubleselect list="" doubleName="" doubleList=""&gt;&lt;/s:doubleselect&gt;-----双下拉框 <br /><br /><font color="#99ffcc">E： <br />&lt;s:if test=""&gt;&lt;/s:if&gt; <br />&lt;s:elseif test=""&gt;&lt;/s:elseif&gt; <br />&lt;s:else&gt;&lt;/s:else&gt;-----这3个标签一起使用，表示条件判断</font><br /><br />F： <br />&lt;s:fielderror&gt;&lt;/s:fielderror&gt;-----显示文件错误信息 <br />&lt;s:file&gt;&lt;/s:file&gt;-----文件上传 <br />&lt;s:form action=""&gt;&lt;/s:form&gt;-----获取相应form的值 <br /><br />G： <br />&lt;s:generator separator="" val=""&gt;&lt;/s:generator&gt;----和&lt;s:iterator&gt;标签一起使用 <br /><br />H： <br />&lt;s:head/&gt;-----在&lt;head&gt;&lt;/head&gt;里使用，表示头文件结束 <br />&lt;s:hidden&gt;&lt;/s:hidden&gt;-----隐藏值 <br /><br />I： <br />&lt;s:i18n name=""&gt;&lt;/s:i18n&gt;-----加载资源包到值堆栈 <br />&lt;s:include value=""&gt;&lt;/s:include&gt;-----包含一个输出，servlet或jsp页面 <br />&lt;s:inputtransferselect list=""&gt;&lt;/s:inputtransferselect&gt;-----获取form的一个输入 <br />&lt;s:iterator&gt;&lt;/s:iterator&gt;-----用于遍历集合 <br /><br />L： <br />&lt;s:label&gt;&lt;/s:label&gt;-----只读的标签 <br /><br />M： <br />&lt;s:merge&gt;&lt;/s:merge&gt;-----合并遍历集合出来的值 <br /><br />O： <br />&lt;s:optgroup&gt;&lt;/s:optgroup&gt;-----获取标签组 <br />&lt;s:optiontransferselect doubleList="" list="" doubleName=""&gt;&lt;/s:optiontransferselect&gt;-----左右选择框 <br /><br />P： <br />&lt;s:param&gt;&lt;/s:param&gt;-----为其他标签提供参数 <br />&lt;s:password&gt;&lt;/s:password&gt;-----密码输入框 <br />&lt;s:property/&gt;-----得到'value'的属性 <br />&lt;s:push value=""&gt;&lt;/s:push&gt;-----value的值push到栈中,从而使property标签的能够获取value的属性 <br /><br />R： <br />&lt;s:radio list=""&gt;&lt;/s:radio&gt;-----单选按钮 <br />&lt;s:reset&gt;&lt;/s:reset&gt;-----重置按钮 <br /><br />S： <br />&lt;s:select list=""&gt;&lt;/s:select&gt;-----单选框 <br />&lt;s:set name=""&gt;&lt;/s:set&gt;-----赋予变量一个特定范围内的值 <br />&lt;s:sort comparator=""&gt;&lt;/s:sort&gt;-----通过属性给list分类 <br />&lt;s:submit&gt;&lt;/s:submit&gt;-----提交按钮 <br />&lt;s:subset&gt;&lt;/s:subset&gt;-----为遍历集合输出子集 <br /><br /><font color="#00ffff">T： <br />&lt;s:tabbedPanel id=""&gt;&lt;/s:tabbedPanel&gt;-----表格框 <br />&lt;s:table&gt;&lt;/s:table&gt;-----表格 <br />&lt;s:text name=""&gt;&lt;/s:text&gt;-----I18n文本信息 <br />&lt;s:textarea&gt;&lt;/s:textarea&gt;-----文本域输入框 <br />&lt;s:textfield&gt;&lt;/s:textfield&gt;-----文本输入框 <br />&lt;s:token&gt;&lt;/s:token&gt;-----拦截器 <br />&lt;s:tree&gt;&lt;/s:tree&gt;-----树 <br />&lt;s:treenode label=""&gt;&lt;/s:treenode&gt;-----树的结构</font><br /><br />U： <br />&lt;s:updownselect list=""&gt;&lt;/s:updownselect&gt;-----多选择框 <br />&lt;s:url&gt;&lt;/s:url&gt;-----创建url</p>
<img src ="http://www.cppblog.com/zzg/aggbug/80008.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zzg/" target="_blank">zzg</a> 2009-04-15 14:54 <a href="http://www.cppblog.com/zzg/archive/2009/04/15/80008.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>网页中嵌入流媒体（可播放MP3 ，绝大多数视频）</title><link>http://www.cppblog.com/zzg/archive/2009/04/12/79683.html</link><dc:creator>zzg</dc:creator><author>zzg</author><pubDate>Sun, 12 Apr 2009 06:33:00 GMT</pubDate><guid>http://www.cppblog.com/zzg/archive/2009/04/12/79683.html</guid><wfw:comment>http://www.cppblog.com/zzg/comments/79683.html</wfw:comment><comments>http://www.cppblog.com/zzg/archive/2009/04/12/79683.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zzg/comments/commentRss/79683.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zzg/services/trackbacks/79683.html</trackback:ping><description><![CDATA[
		<font color="#009900">&lt;embed src="123.mp3" autostart=false loop=true hidden=no width=200 height=200 controls=console  title="第一首歌" <br />  palette=blue|green align="left" &gt;</font>
		<br />
		<br />//这个只支持少数视频，但支持绝大多数音频<br /><br /><br /><font color="#00ff33"> </font><font color="#6633ff">&lt;object id="player" height="500" width="500" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6"&gt;<br />&lt;param NAME="AutoStart" VALUE="-1"&gt;<br />&lt;!--是否自动播放--&gt;<br />&lt;param NAME="Balance" VALUE="0"&gt;<br />&lt;!--调整左右声道平衡,同上面旧播放器代码--&gt;<br />&lt;param name="enabled" value="-1"&gt;<br />&lt;!--播放器是否可人为控制--&gt;<br />&lt;param NAME="EnableContextMenu" VALUE="-1"&gt;<br />&lt;!--是否启用上下文菜单--&gt;<br />&lt;param NAME="url" VALUE="D:\buding\123.rm"&gt;<br />&lt;!--播放的文件地址--&gt;<br />&lt;param NAME="PlayCount" VALUE="1"&gt;<br />&lt;!--播放次数控制,为整数--&gt;<br />&lt;param name="rate" value="1"&gt;<br />&lt;!--播放速率控制,1为正常,允许小数,1.0-2.0--&gt;<br />&lt;param name="currentPosition" value="0"&gt;<br />&lt;!--控件设置:当前位置--&gt;<br />&lt;param name="currentMarker" value="0"&gt;<br />&lt;!--控件设置:当前标记--&gt;<br />&lt;param name="defaultFrame" value=""&gt;<br />&lt;!--显示默认框架--&gt;<br />&lt;param name="invokeURLs" value="0"&gt;<br />&lt;!--脚本命令设置:是否调用URL--&gt;<br />&lt;param name="baseURL" value=""&gt;<br />&lt;!--脚本命令设置:被调用的URL--&gt;<br />&lt;param name="stretchToFit" value="0"&gt;<br />&lt;!--是否按比例伸展--&gt;<br />&lt;param name="volume" value="50"&gt;<br />&lt;!--默认声音大小0%-100%,50则为50%--&gt;<br />&lt;param name="mute" value="0"&gt;<br />&lt;!--是否静音--&gt;<br />&lt;param name="uiMode" value="Full"&gt;<br />&lt;!--播放器显示模式:Full显示全部;mini最简化;None不显示播放控制,只显示视频窗口;invisible全部不显示--&gt;<br />&lt;param name="windowlessVideo" value="0"&gt;<br />&lt;!--如果是0可以允许全屏,否则只能在窗口中查看--&gt;<br />&lt;param name="fullScreen" value="0"&gt;<br />&lt;!--开始播放是否自动全屏--&gt;<br />&lt;param name="enableErrorDialogs" value="-1"&gt;<br />&lt;!--是否启用错误提示报告--&gt;<br />&lt;param name="SAMIStyle" value&gt;<br />&lt;!--SAMI样式--&gt;<br />&lt;param name="SAMILang" value&gt;<br />&lt;!--SAMI语言--&gt;<br />&lt;param name="SAMIFilename" value&gt;<br />&lt;!--字幕ID--&gt;<br />&lt;/object&gt;<br /></font><br />这个支持绝大多数视频<br />用法嵌到&lt;body&gt;&lt;/body&gt;<br />中就是了。<br />关于播放器的参数可百度<img src ="http://www.cppblog.com/zzg/aggbug/79683.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zzg/" target="_blank">zzg</a> 2009-04-12 14:33 <a href="http://www.cppblog.com/zzg/archive/2009/04/12/79683.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts2 入门及新手错误总结</title><link>http://www.cppblog.com/zzg/archive/2009/04/12/79682.html</link><dc:creator>zzg</dc:creator><author>zzg</author><pubDate>Sun, 12 Apr 2009 06:30:00 GMT</pubDate><guid>http://www.cppblog.com/zzg/archive/2009/04/12/79682.html</guid><wfw:comment>http://www.cppblog.com/zzg/comments/79682.html</wfw:comment><comments>http://www.cppblog.com/zzg/archive/2009/04/12/79682.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zzg/comments/commentRss/79682.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zzg/services/trackbacks/79682.html</trackback:ping><description><![CDATA[
		<p>struts2.0 上传文件设置上传限制：<br />&lt;constant name="struts.multipart.maxSize" value="52428800" /&gt;<br /><br /></p>
<img src ="http://www.cppblog.com/zzg/aggbug/79682.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zzg/" target="_blank">zzg</a> 2009-04-12 14:30 <a href="http://www.cppblog.com/zzg/archive/2009/04/12/79682.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>