﻿<?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++博客-看海的小星-随笔分类-POJ</title><link>http://www.cppblog.com/cuijiaxing/category/14637.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 22 Aug 2010 07:29:12 GMT</lastBuildDate><pubDate>Sun, 22 Aug 2010 07:29:12 GMT</pubDate><ttl>60</ttl><item><title>poj题目分类</title><link>http://www.cppblog.com/cuijiaxing/archive/2010/08/21/124210.html</link><dc:creator>崔佳星</dc:creator><author>崔佳星</author><pubDate>Sat, 21 Aug 2010 12:07:00 GMT</pubDate><guid>http://www.cppblog.com/cuijiaxing/archive/2010/08/21/124210.html</guid><wfw:comment>http://www.cppblog.com/cuijiaxing/comments/124210.html</wfw:comment><comments>http://www.cppblog.com/cuijiaxing/archive/2010/08/21/124210.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cuijiaxing/comments/commentRss/124210.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cuijiaxing/services/trackbacks/124210.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A+B Problem&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 送分题1001&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Exponentiation&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp...&nbsp;&nbsp;<a href='http://www.cppblog.com/cuijiaxing/archive/2010/08/21/124210.html'>阅读全文</a><img src ="http://www.cppblog.com/cuijiaxing/aggbug/124210.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cuijiaxing/" target="_blank">崔佳星</a> 2010-08-21 20:07 <a href="http://www.cppblog.com/cuijiaxing/archive/2010/08/21/124210.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>pku 1042</title><link>http://www.cppblog.com/cuijiaxing/archive/2010/08/21/124186.html</link><dc:creator>崔佳星</dc:creator><author>崔佳星</author><pubDate>Sat, 21 Aug 2010 07:09:00 GMT</pubDate><guid>http://www.cppblog.com/cuijiaxing/archive/2010/08/21/124186.html</guid><wfw:comment>http://www.cppblog.com/cuijiaxing/comments/124186.html</wfw:comment><comments>http://www.cppblog.com/cuijiaxing/archive/2010/08/21/124186.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cuijiaxing/comments/commentRss/124186.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cuijiaxing/services/trackbacks/124186.html</trackback:ping><description><![CDATA[<p>贪心算法，使用STL的priority_queue来维护一个队列。保证鱼数最多（相同鱼则保存标号较小的）的一个序列。然后贪心就可以了。一下是代码<br>#include&lt;iostream&gt;<br>#include&lt;queue&gt;<br>using namespace std;<br>int n,h;<br>int f[30],t[30],d[30];<br>int best[30],way[30],maxinum,tot,tag=0;<br>struct node<br>{<br>&nbsp;int num;<br>&nbsp;int fish;<br>&nbsp;void set(int id,int f)<br>&nbsp;{<br>&nbsp;&nbsp;num=id;<br>&nbsp;&nbsp;fish=f;<br>&nbsp;}<br>};<br>bool operator&lt;(const node a,const node b)<br>{<br>&nbsp;if(a.fish==b.fish)<br>&nbsp;&nbsp;return a.num&gt;b.num;<br>&nbsp;else<br>&nbsp;&nbsp;return a.fish&lt;b.fish;<br>}<br>priority_queue&lt;node&gt; qu;<br>node now;<br>int main()<br>{<br>&nbsp;while(scanf("%d",&amp;n)&amp;&amp;n)<br>&nbsp;{<br>&nbsp;&nbsp;if(tag)<br>&nbsp;&nbsp;&nbsp;printf("\n");<br>&nbsp;&nbsp;cin&gt;&gt;h;<br>&nbsp;&nbsp;h*=12; <br>&nbsp;&nbsp;maxinum=-1;<br>&nbsp;&nbsp;int i,j;<br>&nbsp;&nbsp;for(i=0;i&lt;n;i++)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;cin&gt;&gt;f[i];<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;for(i=0;i&lt;n;i++)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;cin&gt;&gt;d[i];<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;for(i=0;i&lt;n-1;i++)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;cin&gt;&gt;t[i];<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;///////////数据输入完毕，开始进入计算<br>&nbsp;&nbsp;for(i=0;i&lt;n;i++)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;memset(way,0,sizeof(way));<br>&nbsp;&nbsp;&nbsp;while(!qu.empty())<br>&nbsp;&nbsp;&nbsp;&nbsp;qu.pop();<br>&nbsp;&nbsp;&nbsp;if(i&gt;0)<br>&nbsp;&nbsp;&nbsp;&nbsp;h-=t[i-1];<br>&nbsp;&nbsp;&nbsp;tot=0;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;for(j=0;j&lt;=i;j++)<br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;now.set(j,f[j]);<br>&nbsp;&nbsp;&nbsp;&nbsp;qu.push(now);&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;for(j=0;j&lt;h;j++)<br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;now=qu.top();<br>&nbsp;&nbsp;&nbsp;&nbsp;qu.pop();<br>&nbsp;&nbsp;&nbsp;&nbsp;tot+=now.fish;<br>&nbsp;&nbsp;&nbsp;&nbsp;now.fish-=d[now.num];<br>&nbsp;&nbsp;&nbsp;&nbsp;if(now.fish&lt;0)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;now.fish=0;<br>&nbsp;&nbsp;&nbsp;&nbsp;way[now.num]+=5;<br>&nbsp;&nbsp;&nbsp;&nbsp;qu.push(now);<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;if(tot&gt;maxinum)<br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;maxinum=tot;<br>&nbsp;&nbsp;&nbsp;&nbsp;memcpy(best,way,sizeof(way));<br>&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;}<br>&nbsp;&nbsp;printf("%d",best[0]);<br>&nbsp;&nbsp;for(i=1;i&lt;n;i++)<br>&nbsp;&nbsp;&nbsp;printf(", %d",best[i]);<br>&nbsp;&nbsp;printf("\nNumber of fish expected: %d\n",maxinum);<br>&nbsp;&nbsp;tag=1;<br>&nbsp;}<br>&nbsp;return 0;</p>
<p>}</p>
<img src ="http://www.cppblog.com/cuijiaxing/aggbug/124186.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cuijiaxing/" target="_blank">崔佳星</a> 2010-08-21 15:09 <a href="http://www.cppblog.com/cuijiaxing/archive/2010/08/21/124186.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>poj 2572</title><link>http://www.cppblog.com/cuijiaxing/archive/2010/08/19/123979.html</link><dc:creator>崔佳星</dc:creator><author>崔佳星</author><pubDate>Thu, 19 Aug 2010 08:26:00 GMT</pubDate><guid>http://www.cppblog.com/cuijiaxing/archive/2010/08/19/123979.html</guid><wfw:comment>http://www.cppblog.com/cuijiaxing/comments/123979.html</wfw:comment><comments>http://www.cppblog.com/cuijiaxing/archive/2010/08/19/123979.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cuijiaxing/comments/commentRss/123979.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cuijiaxing/services/trackbacks/123979.html</trackback:ping><description><![CDATA[<p style="FONT-SIZE: 14pt">大整数的加法。与以前高精度算法不同的是这次要一下子读入一个算式。然后简便的是，这次不用再交换顺序了，直接加。但是结果的判断稍微麻烦一点，要把开头的0都去掉才行。一下是我的代码。哎，刚开始把自己弄得挺混乱的，后来愤怒了，就把所有代码全删掉重新写了一遍。然后一次AC<br>#include&lt;iostream&gt;<br>#include&lt;stdio.h&gt;<br>#include&lt;cstring&gt;<br>using namespace std;<br>char a[12],b[12],c[12];<br>char temp[25];<br>bool add(char *first,char *second)<br>{<br>&nbsp;int len1=strlen(first);<br>&nbsp;int len2=strlen(second);<br>&nbsp;first[len1]='0';<br>&nbsp;int i,j;<br>&nbsp;for(i=0;i&lt;len2;i++)<br>&nbsp;{<br>&nbsp;&nbsp;second[i]-='0';<br>&nbsp;}<br>&nbsp;for(j=0;j&lt;=len1;j++)<br>&nbsp;{<br>&nbsp;&nbsp;first[j]-='0';<br>&nbsp;}<br>&nbsp;for(i=0;i&lt;len2;i++)<br>&nbsp;{<br>&nbsp;&nbsp;first[i]+=second[i];<br>&nbsp;}<br>&nbsp;for(i=0;i&lt;len1;i++)<br>&nbsp;{<br>&nbsp;&nbsp;if(first[i]&gt;=10)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;first[i+1]+=first[i]/10;<br>&nbsp;&nbsp;&nbsp;first[i]%=10;<br>&nbsp;&nbsp;}<br>&nbsp;}<br>&nbsp;for(i=0;i&lt;=len1;i++)<br>&nbsp;&nbsp;first[i]+='0';<br>&nbsp;while(first[len1]=='0')<br>&nbsp;&nbsp;len1--;<br>&nbsp;int len3=strlen(c);<br>&nbsp;len3--;<br>&nbsp;while(c[len3]=='0')<br>&nbsp;&nbsp;len3--;<br>&nbsp;if(len1!=len3)<br>&nbsp;&nbsp;return false;<br>&nbsp;while(len3&gt;=0)<br>&nbsp;{<br>&nbsp;&nbsp;if(c[len3]!=first[len3])<br>&nbsp;&nbsp;&nbsp;return false;<br>&nbsp;&nbsp;len3--;<br>&nbsp;}<br>&nbsp;return true;<br>}<br>int main()<br>{<br>&nbsp;while(gets(temp))<br>&nbsp;{<br>&nbsp;&nbsp;int kk=0;<br>&nbsp;&nbsp;while(temp[kk]!='+')<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;a[kk]=temp[kk];<br>&nbsp;&nbsp;&nbsp;kk++;<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;a[kk]='\0';<br>&nbsp;&nbsp;kk++;<br>&nbsp;&nbsp;int kkk=0;<br>&nbsp;&nbsp;while(temp[kk]!='=')<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;b[kkk]=temp[kk];<br>&nbsp;&nbsp;&nbsp;kk++;kkk++;<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;b[kkk]='\0';<br>&nbsp;&nbsp;kk++;<br>&nbsp;&nbsp;kkk=0;<br>&nbsp;&nbsp;while(temp[kk]!='\0')<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;c[kkk]=temp[kk];<br>&nbsp;&nbsp;&nbsp;kk++;kkk++;<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;c[kkk]='\0';</p>
<p style="FONT-SIZE: 14pt">&nbsp;&nbsp;int len1=strlen(a);<br>&nbsp;&nbsp;int len2=strlen(b);<br>&nbsp;&nbsp;if(len1==1&amp;&amp;len2==1&amp;&amp;a[0]=='0'&amp;&amp;b[0]=='0')<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;cout&lt;&lt;"True"&lt;&lt;endl;<br>&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;if(len1&gt;len2)<br>&nbsp;&nbsp;&nbsp;if(add(a,b))<br>&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"True"&lt;&lt;endl;<br>&nbsp;&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"False"&lt;&lt;endl;<br>&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;if(add(b,a))<br>&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"True"&lt;&lt;endl;<br>&nbsp;&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"False"&lt;&lt;endl;<br>&nbsp;}<br>&nbsp;return 0;</p>
<p style="FONT-SIZE: 14pt">}</p>
<img src ="http://www.cppblog.com/cuijiaxing/aggbug/123979.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cuijiaxing/" target="_blank">崔佳星</a> 2010-08-19 16:26 <a href="http://www.cppblog.com/cuijiaxing/archive/2010/08/19/123979.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>poj 2309</title><link>http://www.cppblog.com/cuijiaxing/archive/2010/08/19/123962.html</link><dc:creator>崔佳星</dc:creator><author>崔佳星</author><pubDate>Thu, 19 Aug 2010 05:13:00 GMT</pubDate><guid>http://www.cppblog.com/cuijiaxing/archive/2010/08/19/123962.html</guid><wfw:comment>http://www.cppblog.com/cuijiaxing/comments/123962.html</wfw:comment><comments>http://www.cppblog.com/cuijiaxing/archive/2010/08/19/123962.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cuijiaxing/comments/commentRss/123962.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cuijiaxing/services/trackbacks/123962.html</trackback:ping><description><![CDATA[<p style="FONT-SIZE: 14pt">给出一棵二分搜索树，再给一个节点编号n，求以这个节点为根节点的子树叶子节点的最大值与最小值。若n是奇数，那么他必然是个叶子节点，最大最小都是他自己。否则求n所在的层数，他的层数就是他的因子中2的个数（规律），转化为求n的因子中2的个数。而2的个数取决于n的二进制表示中最后一个1所处的位置i，因为之前的某几个1，假设处于j（j&gt;i）,那么n可以表示为2^j+2^i+2^x(x&gt;i且个数未定)=2^i*(1+2^(j-i)+2^(x-i)),看见米有，n必须有i个因子2.求出i的值后，即层数，可得n的左右各有num=2^i-1个儿孙（女），不信请看图，概不解释。那么最小值就是n-num,最大值就是n+num.那马怎么求num呢，这时就可以请出神奇的位运算了（以速度"嗖嗖嗖"的快而扬名ACM界），首先是确定二进制n后缀连续0的个数，这样想：怎么取出这i个0呢？其实不必考虑这个掣肘的问题，咱们直接跑到结果上考虑，就是求2^i-1,你花仙米有，这是个等差数列的前n项和：2^0+2^1+2^2+&#8230;&#8230;+2^(i-1).那么这又是个什么形式呢，这就是二进制只有连续i个1的（其余都是前导0）数的十进制表示形式，OK，好办了，利用系统自动转换功能，咱们只需把这i个1罗列出来即可：把n的后i个0变成1，可采取如下形式n^(n|n-1),稍微解释下，n|n-1是将后i个0变成1，把第i+1个1变成0，然后和n抑或一下，得到什么？哈，就是2^i-1,即i个1的十进制形式,代码就不放了，上面明白了实现很简单的！<br>那啥，转载务必注明：Pzjay原创呃！</p>
<p style="FONT-SIZE: 14pt">本文来自CSDN博客，转载请标明出处：<a href="http://blog.csdn.net/shifuwawa/archive/2010/01/07/5153446.aspx">http://blog.csdn.net/shifuwawa/archive/2010/01/07/5153446.aspx</a><br><br>以下是我根据上面的描述写出来的代码，一次AC，0MS<br>#include&lt;iostream&gt;<br>using namespace std;<br>int main()<br>{<br>&nbsp;int n;<br>&nbsp;cin&gt;&gt;n;<br>&nbsp;while(n--)<br>&nbsp;{<br>&nbsp;&nbsp;int k;<br>&nbsp;&nbsp;cin&gt;&gt;k;<br>&nbsp;&nbsp;if(k%2!=0)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;cout&lt;&lt;k&lt;&lt;" "&lt;&lt;k&lt;&lt;endl;<br>&nbsp;&nbsp;&nbsp;continue;<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;int num=k^(k|k-1);<br>&nbsp;&nbsp;cout&lt;&lt;k-num&lt;&lt;" "&lt;&lt;k+num&lt;&lt;endl;<br>&nbsp;}<br>&nbsp;return 0;<br>}</p>
<img src ="http://www.cppblog.com/cuijiaxing/aggbug/123962.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cuijiaxing/" target="_blank">崔佳星</a> 2010-08-19 13:13 <a href="http://www.cppblog.com/cuijiaxing/archive/2010/08/19/123962.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>poj 2305</title><link>http://www.cppblog.com/cuijiaxing/archive/2010/08/19/123938.html</link><dc:creator>崔佳星</dc:creator><author>崔佳星</author><pubDate>Thu, 19 Aug 2010 03:26:00 GMT</pubDate><guid>http://www.cppblog.com/cuijiaxing/archive/2010/08/19/123938.html</guid><wfw:comment>http://www.cppblog.com/cuijiaxing/comments/123938.html</wfw:comment><comments>http://www.cppblog.com/cuijiaxing/archive/2010/08/19/123938.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cuijiaxing/comments/commentRss/123938.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cuijiaxing/services/trackbacks/123938.html</trackback:ping><description><![CDATA[<span style="FONT-SIZE: 14pt">不得不说poj 2305是一道进制转换的经典题目。一开始我没有考虑到整除的情况。所以总是WA。后来加了一个判断就AC了。<br>#include&lt;iostream&gt;<br>#include&lt;cstring&gt;<br>using namespace std;<br>char s1[1005],s2[15];<br>int main()<br>{<br>&nbsp;int n;<br>&nbsp;while(cin&gt;&gt;n&amp;&amp;n)<br>&nbsp;{<br>&nbsp;&nbsp;cin&gt;&gt;s1&gt;&gt;s2;<br>&nbsp;&nbsp;__int64 a=0,b=0;int len1,len2;<br>&nbsp;&nbsp;len1=strlen(s1);len2=strlen(s2);<br>&nbsp;&nbsp;for(int i=0;i&lt;len2;i++)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;a*=n;<br>&nbsp;&nbsp;&nbsp;a+=s2[i]-'0';<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;for(int j=0;j&lt;len1;j++)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;b*=n;<br>&nbsp;&nbsp;&nbsp;b+=s1[j]-'0';<br>&nbsp;&nbsp;&nbsp;if(b&gt;=a)<br>&nbsp;&nbsp;&nbsp;&nbsp;b%=a;<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;int k=0;<br>&nbsp;&nbsp;if(b==0)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;cout&lt;&lt;"0"&lt;&lt;endl;<br>&nbsp;&nbsp;&nbsp;continue;<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;while(b!=0)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;s2[k++]=b%n+'0';<br>&nbsp;&nbsp;&nbsp;b/=n;<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;s2[k]='\0';<br>&nbsp;&nbsp;int len=strlen(s2);<br>&nbsp;&nbsp;for(k=len-1;k&gt;=0;k--)<br>&nbsp;&nbsp;&nbsp;cout&lt;&lt;s2[k];<br>&nbsp;&nbsp;cout&lt;&lt;endl;<br>&nbsp;}<br>&nbsp;return 0;<br>}</span>
<img src ="http://www.cppblog.com/cuijiaxing/aggbug/123938.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cuijiaxing/" target="_blank">崔佳星</a> 2010-08-19 11:26 <a href="http://www.cppblog.com/cuijiaxing/archive/2010/08/19/123938.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>