﻿<?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++博客-I want to be CRAZY!!!</title><link>http://www.cppblog.com/phonism/</link><description>本来无望的事，大胆尝试，往往能成功。</description><language>zh-cn</language><lastBuildDate>Wed, 08 Apr 2026 14:02:35 GMT</lastBuildDate><pubDate>Wed, 08 Apr 2026 14:02:35 GMT</pubDate><ttl>60</ttl><item><title>几道GCD相关题目总结</title><link>http://www.cppblog.com/phonism/archive/2012/09/23/191725.html</link><dc:creator>phonism</dc:creator><author>phonism</author><pubDate>Sun, 23 Sep 2012 10:19:00 GMT</pubDate><guid>http://www.cppblog.com/phonism/archive/2012/09/23/191725.html</guid><wfw:comment>http://www.cppblog.com/phonism/comments/191725.html</wfw:comment><comments>http://www.cppblog.com/phonism/archive/2012/09/23/191725.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/phonism/comments/commentRss/191725.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/phonism/services/trackbacks/191725.html</trackback:ping><description><![CDATA[修改自：<a href="http://hi.baidu.com/arorua_/item/381bb88d817b122d100ef3a1">http://hi.baidu.com/arorua_/item/381bb88d817b122d100ef3a1</a><br />Number one：poj2480&nbsp;<a href="http://poj.org/problem?id=2480">http://poj.org/problem?id=2480</a><br />题意是：求<span style="font-family: 'Times New Roman', Times, serif; font-size: 16px; line-height: normal; ">&#8721;gcd(i, N) 1&lt;=i &lt;=N.&nbsp;</span><span style="font-family: 'Times New Roman', Times, serif; font-size: 16px; line-height: normal; ">&nbsp;N(1 &lt; N &lt; 2^31)<br /></span>解法：<span style="font-family: 'Times New Roman', Times, serif; font-size: 16px; line-height: normal; ">&#8721;</span>gcd(i, n) ==&nbsp;<span style="font-family: 'Times New Roman', Times, serif; font-size: 16px; line-height: normal; ">&#8721;(f</span>ac[i] * phi(n / fac[i])) (fac存的是n的所有约数)<br />代码：<br /><div style="font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; background-color: #eeeeee; "><img id="Code_Closed_Image_181821" onclick="this.style.display='none'; Code_Closed_Text_181821.style.display='none'; Code_Open_Image_181821.style.display='inline'; Code_Open_Text_181821.style.display='inline';" height="16" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" width="11" align="top"><img id="Code_Open_Image_181821" style="display: none" onclick="this.style.display='none'; Code_Open_Text_181821.style.display='none'; Code_Closed_Image_181821.style.display='inline'; Code_Closed_Text_181821.style.display='inline';" height="16" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top"><span id="Code_Closed_Text_181821" style="border-right: #808080 1px solid; border-top: #808080 1px solid; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">poj2480</span><span id="Code_Open_Text_181821" style="display: none"><br /><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; ">//</span><span style="color: #008000; ">sigma(gcd(i,&nbsp;n))&nbsp;==&nbsp;sigma(fac[i]&nbsp;*&nbsp;phi(n&nbsp;/&nbsp;fac[i]))</span><span style="color: #008000; "><br /></span><br />#include&nbsp;&lt;cstdio&gt;<br />#include&nbsp;&lt;cstring&gt;<br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><br /><span style="color: #0000FF; ">long</span>&nbsp;<span style="color: #0000FF; ">long</span>&nbsp;n,&nbsp;ans;<br /><span style="color: #0000FF; ">int</span>&nbsp;fac[32000],&nbsp;cnt;<br /><br /><span style="color: #008000; ">//</span><span style="color: #008000; ">get&nbsp;eular</span><span style="color: #008000; "><br /></span><span style="color: #0000FF; ">long</span>&nbsp;<span style="color: #0000FF; ">long</span>&nbsp;get_eular(<span style="color: #0000FF; ">long</span>&nbsp;<span style="color: #0000FF; ">long</span>&nbsp;n)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">long</span>&nbsp;<span style="color: #0000FF; ">long</span>&nbsp;res&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">long</span>&nbsp;<span style="color: #0000FF; ">long</span>&nbsp;i&nbsp;=&nbsp;2;&nbsp;i&nbsp;*&nbsp;i&nbsp;&lt;=&nbsp;n;&nbsp;i++)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(n&nbsp;%&nbsp;i&nbsp;==&nbsp;0)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n&nbsp;/=&nbsp;i;&nbsp;res&nbsp;=&nbsp;res&nbsp;*&nbsp;(i&nbsp;-&nbsp;1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(n&nbsp;%&nbsp;i&nbsp;==&nbsp;0)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n&nbsp;/=&nbsp;i;&nbsp;res&nbsp;=&nbsp;res&nbsp;*&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(n&nbsp;&gt;&nbsp;1)&nbsp;res&nbsp;*=&nbsp;n&nbsp;-&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;res;<br />}<br /><br /><span style="color: #0000FF; ">void</span>&nbsp;get_factor(<span style="color: #0000FF; ">long</span>&nbsp;<span style="color: #0000FF; ">long</span>&nbsp;n)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;cnt&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;memset(fac,&nbsp;0,&nbsp;<span style="color: #0000FF; ">sizeof</span>(fac));<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;1;&nbsp;(<span style="color: #0000FF; ">long</span>&nbsp;<span style="color: #0000FF; ">long</span>)i&nbsp;*&nbsp;i&nbsp;&lt;=&nbsp;n;&nbsp;i++)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(n&nbsp;%&nbsp;i&nbsp;==&nbsp;0)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(i&nbsp;*&nbsp;i&nbsp;==&nbsp;n)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fac[cnt++]&nbsp;=&nbsp;i;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fac[cnt++]&nbsp;=&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fac[cnt++]&nbsp;=&nbsp;n&nbsp;/&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br /><span style="color: #0000FF; ">int</span>&nbsp;main()&nbsp;{<br />#ifndef&nbsp;ONLINE_JUDGE<br />&nbsp;&nbsp;&nbsp;&nbsp;freopen("p2480",&nbsp;"r",&nbsp;stdin);<br /><span style="color: #0000FF; ">#endif</span><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(scanf("%lld",&nbsp;&amp;n)&nbsp;!=&nbsp;EOF)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get_factor(n);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;cnt;&nbsp;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans&nbsp;+=&nbsp;fac[i]&nbsp;*&nbsp;(get_eular(n&nbsp;/&nbsp;fac[i]));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%lld\n",&nbsp;ans);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}<br /></span></div><br /><br /><br /><img src ="http://www.cppblog.com/phonism/aggbug/191725.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/phonism/" target="_blank">phonism</a> 2012-09-23 18:19 <a href="http://www.cppblog.com/phonism/archive/2012/09/23/191725.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DP求期望入门</title><link>http://www.cppblog.com/phonism/archive/2012/09/18/191146.html</link><dc:creator>phonism</dc:creator><author>phonism</author><pubDate>Tue, 18 Sep 2012 12:07:00 GMT</pubDate><guid>http://www.cppblog.com/phonism/archive/2012/09/18/191146.html</guid><wfw:comment>http://www.cppblog.com/phonism/comments/191146.html</wfw:comment><comments>http://www.cppblog.com/phonism/archive/2012/09/18/191146.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/phonism/comments/commentRss/191146.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/phonism/services/trackbacks/191146.html</trackback:ping><description><![CDATA[&lt;题意题解等等再补^_^&gt;<br />求概率：<a href="http://livearchive.onlinejudge.org/index.php?option=com_onlinejudge&amp;Itemid=8&amp;page=show_problem&amp;problem=3874" target="_blank"><br />uvalive5863</a>&nbsp;<a href="http://acm.hdu.edu.cn/showproblem.php?pid=4089" target="_blank">hdu4089</a><br />求期望：<br /><a href="http://poj.org/problem?id=2096" target="_blank">poj2096</a>&nbsp;<a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3329" target="_blank">zoj3329</a>&nbsp;<a href="http://acm.hdu.edu.cn/showproblem.php?pid=4035" target="_blank">hdu4035</a><img src ="http://www.cppblog.com/phonism/aggbug/191146.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/phonism/" target="_blank">phonism</a> 2012-09-18 20:07 <a href="http://www.cppblog.com/phonism/archive/2012/09/18/191146.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>筛素数和欧拉函数的模板</title><link>http://www.cppblog.com/phonism/archive/2012/09/17/190996.html</link><dc:creator>phonism</dc:creator><author>phonism</author><pubDate>Mon, 17 Sep 2012 10:23:00 GMT</pubDate><guid>http://www.cppblog.com/phonism/archive/2012/09/17/190996.html</guid><wfw:comment>http://www.cppblog.com/phonism/comments/190996.html</wfw:comment><comments>http://www.cppblog.com/phonism/archive/2012/09/17/190996.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/phonism/comments/commentRss/190996.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/phonism/services/trackbacks/190996.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><img id="Code_Closed_Image_182450" onclick="this.style.display='none'; Code_Closed_Text_182450.style.display='none'; Code_Open_Image_182450.style.display='inline'; Code_Open_Text_182450.style.display='inline';" height="16" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" width="11" align="top"><img id="Code_Open_Image_182450" style="display: none" onclick="this.style.display='none'; Code_Open_Text_182450.style.display='none'; Code_Closed_Image_182450.style.display='inline'; Code_Closed_Text_182450.style.display='inline';" height="16" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top"><span id="Code_Closed_Text_182450" style="border-right: #808080 1px solid; border-top: #808080 1px solid; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">筛素数和欧拉函数</span><span id="Code_Open_Text_182450" style="display: none"><br /><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; ">/*</span><span style="color: #008000; ">******************************************************************************<br />&nbsp;&nbsp;&nbsp;&nbsp;素数＋欧拉函数表<br />******************************************************************************</span><span style="color: #008000; ">*/</span><br /><span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;size&nbsp;=&nbsp;1000010;<br /><br /><span style="color: #0000FF; ">int</span>&nbsp;phi[size],&nbsp;prime[size];<br /><span style="color: #0000FF; ">bool</span>&nbsp;check[size];<br /><br /><span style="color: #0000FF; ">void</span>&nbsp;excelphi()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;memset(check,&nbsp;<span style="color: #0000FF; ">false</span>,&nbsp;<span style="color: #0000FF; ">sizeof</span>(check));<br />&nbsp;&nbsp;&nbsp;&nbsp;phi[1]&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;tot&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;2;&nbsp;i&nbsp;&lt;=&nbsp;size;&nbsp;i++)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(!check[i])&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prime[tot++]&nbsp;=&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;phi[i]&nbsp;=&nbsp;i&nbsp;-&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;j&nbsp;=&nbsp;0;&nbsp;j&nbsp;&lt;&nbsp;tot;&nbsp;j++)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(i&nbsp;*&nbsp;prime[j]&nbsp;&gt;&nbsp;size)&nbsp;<span style="color: #0000FF; ">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;check[i*prime[j]]&nbsp;=&nbsp;<span style="color: #0000FF; ">true</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(i&nbsp;%&nbsp;prime[j]&nbsp;==&nbsp;0)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;phi[i*prime[j]]&nbsp;=&nbsp;phi[i]*prime[j];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;phi[i*prime[j]]&nbsp;=&nbsp;phi[i]*(prime[j]&nbsp;-&nbsp;1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /></span></div>再贴个筛区间素数的：<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><img id="Code_Closed_Image_182517" onclick="this.style.display='none'; Code_Closed_Text_182517.style.display='none'; Code_Open_Image_182517.style.display='inline'; Code_Open_Text_182517.style.display='inline';" height="16" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" width="11" align="top"><img id="Code_Open_Image_182517" style="display: none" onclick="this.style.display='none'; Code_Open_Text_182517.style.display='none'; Code_Closed_Image_182517.style.display='inline'; Code_Closed_Text_182517.style.display='inline';" height="16" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top"><span id="Code_Closed_Text_182517" style="border-right: #808080 1px solid; border-top: #808080 1px solid; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">筛区间素数</span><span id="Code_Open_Text_182517" style="display: none"><br /><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; ">/*</span><span style="color: #008000; ">******************************************************************************<br />&nbsp;&nbsp;&nbsp;&nbsp;筛区间素数<br />******************************************************************************</span><span style="color: #008000; ">*/</span><br /><span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;size&nbsp;=&nbsp;32000,&nbsp;maxn&nbsp;=&nbsp;1000010;<br /><span style="color: #0000FF; ">int</span>&nbsp;check[maxn],&nbsp;prime[size],&nbsp;ans[maxn],&nbsp;cnt;<br /><br /><span style="color: #0000FF; ">void</span>&nbsp;get_small_prime()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;cnt&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;memset(check,&nbsp;0,&nbsp;<span style="color: #0000FF; ">sizeof</span>(check));<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;2;&nbsp;i&nbsp;&lt;&nbsp;size;&nbsp;i++)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(!check[i])&nbsp;prime[cnt++]&nbsp;=&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;j&nbsp;=&nbsp;i&nbsp;*&nbsp;i;&nbsp;j&nbsp;&lt;&nbsp;size;&nbsp;j&nbsp;+=&nbsp;i)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;check[i]&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br /><span style="color: #0000FF; ">void</span>&nbsp;get_large_prime(<span style="color: #0000FF; ">int</span>&nbsp;l,&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;r)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;cnt&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;memset(ans,&nbsp;0,&nbsp;<span style="color: #0000FF; ">sizeof</span>(ans));<br />&nbsp;&nbsp;&nbsp;&nbsp;memset(check,&nbsp;0,&nbsp;<span style="color: #0000FF; ">sizeof</span>(check));<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;prime[i]&nbsp;*&nbsp;prime[i]&nbsp;&lt;=&nbsp;r;&nbsp;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;j&nbsp;=&nbsp;l&nbsp;/&nbsp;prime[i];&nbsp;j&nbsp;*&nbsp;prime[i]&nbsp;&lt;=&nbsp;r;&nbsp;j++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(j&nbsp;&gt;&nbsp;1&nbsp;&amp;&amp;&nbsp;j&nbsp;*&nbsp;prime[i]&nbsp;&gt;=&nbsp;l)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;check[j&nbsp;*&nbsp;prime[i]&nbsp;-&nbsp;l]&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;l;&nbsp;i&nbsp;&lt;=&nbsp;r;&nbsp;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(!check[i-l]&nbsp;&amp;&amp;&nbsp;i&nbsp;&gt;&nbsp;1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans[cnt++]&nbsp;=&nbsp;i;<br />}<br /></span></div><img src ="http://www.cppblog.com/phonism/aggbug/190996.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/phonism/" target="_blank">phonism</a> 2012-09-17 18:23 <a href="http://www.cppblog.com/phonism/archive/2012/09/17/190996.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>浅尝状态压缩</title><link>http://www.cppblog.com/phonism/archive/2012/08/09/186731.html</link><dc:creator>phonism</dc:creator><author>phonism</author><pubDate>Thu, 09 Aug 2012 04:29:00 GMT</pubDate><guid>http://www.cppblog.com/phonism/archive/2012/08/09/186731.html</guid><wfw:comment>http://www.cppblog.com/phonism/comments/186731.html</wfw:comment><comments>http://www.cppblog.com/phonism/archive/2012/08/09/186731.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/phonism/comments/commentRss/186731.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/phonism/services/trackbacks/186731.html</trackback:ping><description><![CDATA[&nbsp; &nbsp; 学习状态压缩，首先要会基础的<a href="http://zh.wikipedia.org/wiki/%E4%BD%8D%E6%93%8D%E4%BD%9C" target="_blank">位运算</a>，然后要知道位运算的一些基本应用，这方面<a href="http://www.matrix67.com/blog/archives/263/" target="_blank">Matrix67大牛</a>总结的很好。学习了这些，接下来可以看看<a href="http://wenku.baidu.com/view/16d299d63186bceb19e8bb12.html" target="_blank">这篇论文</a>，讲的挺好。<img src ="http://www.cppblog.com/phonism/aggbug/186731.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/phonism/" target="_blank">phonism</a> 2012-08-09 12:29 <a href="http://www.cppblog.com/phonism/archive/2012/08/09/186731.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Matrix小记</title><link>http://www.cppblog.com/phonism/archive/2012/08/04/186286.html</link><dc:creator>phonism</dc:creator><author>phonism</author><pubDate>Sat, 04 Aug 2012 12:32:00 GMT</pubDate><guid>http://www.cppblog.com/phonism/archive/2012/08/04/186286.html</guid><wfw:comment>http://www.cppblog.com/phonism/comments/186286.html</wfw:comment><comments>http://www.cppblog.com/phonism/archive/2012/08/04/186286.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/phonism/comments/commentRss/186286.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/phonism/services/trackbacks/186286.html</trackback:ping><description><![CDATA[贴个专题<a href="http://acm.hdu.edu.cn/forum/read.php?tid=15908">http://acm.hdu.edu.cn/forum/read.php?tid=15908</a><br /><br />FOJ1683：<a href="http://acm.fzu.edu.cn/problem.php?pid=1683">http://acm.fzu.edu.cn/problem.php?pid=1683</a><br />题意：已知 F（n）=3 * F（n-1）+2 * F（n-2）+7 * F（n-3），n&gt;=3，其中F（0）=1，F（1）=3，F（2）=5，对于给定的每个n，输出F（0）+ F（1）+ &#8230;&#8230; + F（n） mod 2009。<br />题解：找到递推矩阵 <p style="margin-bottom: 0in">[S(n-1)] &nbsp; [1 3 2 7] &nbsp; &nbsp; [S(n)]</p> <p style="margin-bottom: 0in">[F(n-1)] * [0 3 2 7] &nbsp;= &nbsp;[F(n)]</p> <p style="margin-bottom: 0in">[F(n-2)] &nbsp; [0 1 0 0] &nbsp; &nbsp; [F(n-1)]</p> <p style="margin-bottom: 0in">[F(n-3)] &nbsp; [0 0 1 0] &nbsp; &nbsp; [F(n-2)]</p> <p style="margin-bottom: 0in"> 然后矩阵快速幂就破了 代码就不贴了。<br /><br />HDU2256：<a href="http://acm.hdu.edu.cn/showproblem.php?pid=2256">http://acm.hdu.edu.cn/showproblem.php?pid=2256</a><br /></p><p style="margin-bottom: 0in">这题可以用矩阵乘法解，非常巧妙。。。</p> <p style="margin-bottom: 0in">贴个解题报告吧：<br /><a href="http://chensmiles.blog.163.com/blog/static/121463991201073104757471/">http://chensmiles.blog.163.com/blog/static/12146399120107310<br />4757471/</a></p><p>&nbsp;</p><br /><br /><br /><img src ="http://www.cppblog.com/phonism/aggbug/186286.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/phonism/" target="_blank">phonism</a> 2012-08-04 20:32 <a href="http://www.cppblog.com/phonism/archive/2012/08/04/186286.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>背包小记</title><link>http://www.cppblog.com/phonism/archive/2012/08/04/186274.html</link><dc:creator>phonism</dc:creator><author>phonism</author><pubDate>Sat, 04 Aug 2012 10:05:00 GMT</pubDate><guid>http://www.cppblog.com/phonism/archive/2012/08/04/186274.html</guid><wfw:comment>http://www.cppblog.com/phonism/comments/186274.html</wfw:comment><comments>http://www.cppblog.com/phonism/archive/2012/08/04/186274.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/phonism/comments/commentRss/186274.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/phonism/services/trackbacks/186274.html</trackback:ping><description><![CDATA[今天做了一下背包专题，连接<a href="http://acm.hust.edu.cn:8080/judge/contest/view.action?cid=10736#overview">http://acm.hust.edu.cn:8080/judge/contest/view.action?cid=10736#overview</a>密码是：sduacm&nbsp;个人觉得这几题都很不错<br />额，第一题就不说了，普通的0－1背包<br /><br />G题(HDU4091)是2011年上海区预赛第一题，据说AC这道题就可以拿铜牌了(囧) 题意是给俩个物品，每个物品有价值和体积，显然直接贪心不对，可以当作背包来解，但背包的容量很大，不能直接背包。这题的做法是：现求总容量对俩个物品的体积的LCM取余的余数，然后在余数中枚举，对其他的容量贪心，很容易证明这个思路的正确性。<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><img id="Code_Closed_Image_182103" onclick="this.style.display='none'; Code_Closed_Text_182103.style.display='none'; Code_Open_Image_182103.style.display='inline'; Code_Open_Text_182103.style.display='inline';" height="16" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" width="11" align="top"><img id="Code_Open_Image_182103" style="display: none" onclick="this.style.display='none'; Code_Open_Text_182103.style.display='none'; Code_Closed_Image_182103.style.display='inline'; Code_Closed_Text_182103.style.display='inline';" height="16" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top"><span id="Code_Closed_Text_182103" style="border-right: #808080 1px solid; border-top: #808080 1px solid; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">HDU4091</span><span id="Code_Open_Text_182103" style="display: none"><br /><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; ">//</span><span style="color: #008000; ">枚举即可破&nbsp;因为只有俩种物品&nbsp;找到俩种物品体积的lcm然后去余&nbsp;对余数枚举<br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">然后对其他的贪心&nbsp;</span><span style="color: #008000; "><br /></span><br />#include&nbsp;&lt;iostream&gt;<br />#include&nbsp;&lt;cstdio&gt;<br />#include&nbsp;&lt;cstring&gt;<br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><span style="color: #0000FF; ">#define</span>&nbsp;LL&nbsp;long&nbsp;long<br /><br />LL&nbsp;gcd(LL&nbsp;a,&nbsp;LL&nbsp;b)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;b&nbsp;?&nbsp;gcd(b,&nbsp;a&nbsp;%&nbsp;b)&nbsp;:&nbsp;a;<br />}<br /><br /><span style="color: #0000FF; ">int</span>&nbsp;main()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;t;<br />&nbsp;&nbsp;&nbsp;&nbsp;LL&nbsp;n,&nbsp;s1,&nbsp;v1,&nbsp;s2,&nbsp;v2;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(scanf("%d",&nbsp;&amp;t)&nbsp;!=&nbsp;EOF)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;cas&nbsp;=&nbsp;1;&nbsp;cas&nbsp;&lt;=&nbsp;t;&nbsp;cas++)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf("%I64d%I64d%I64d%I64d%I64d",&nbsp;&amp;n,&nbsp;&amp;s1,&nbsp;&amp;v1,&nbsp;&amp;s2,&nbsp;&amp;v2);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LL&nbsp;tmp&nbsp;=&nbsp;2&nbsp;*&nbsp;s1&nbsp;*&nbsp;s2&nbsp;/&nbsp;gcd(s1,&nbsp;s2);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LL&nbsp;tem&nbsp;=&nbsp;n&nbsp;/&nbsp;tmp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n&nbsp;%=&nbsp;tmp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(tem)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tem--;&nbsp;n&nbsp;+=&nbsp;tmp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LL&nbsp;res&nbsp;=&nbsp;max((tem)*(tmp/s1)*v1,&nbsp;(tem)*(tmp/s2)*v2);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LL&nbsp;temp&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(s2&nbsp;&gt;&nbsp;s1)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;swap(s1,&nbsp;s2);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;swap(v1,&nbsp;v2);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;=&nbsp;n&nbsp;/&nbsp;s1;&nbsp;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(temp&nbsp;&lt;&nbsp;i*v1&nbsp;+&nbsp;(n-i*s1)/s2*v2)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp&nbsp;=&nbsp;i*v1&nbsp;+&nbsp;(n-i*s1)/s2*v2;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;res&nbsp;+=&nbsp;temp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("Case&nbsp;#%d:&nbsp;%I64d\n",&nbsp;cas,&nbsp;res);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}<br /></span></div><br />I题(SGU259)单机调度问题，题意是只有一个打印机，有许多传单需要打印和分发，打印的时间T[i]，分发的时间是L[i]，每个传单必须先打印后分发，假设有很多分发员，问将左右的传单打印并且分发完所用完的最短时间。这题直观有个感觉就是因为分发员有很多人，分发时间长的传单显然先打印比较好，并且很容易证明这个贪心思想的正确性。因此对L从大到小排序，然后再求的时间就是最短的时间。<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><img id="Code_Closed_Image_182021" onclick="this.style.display='none'; Code_Closed_Text_182021.style.display='none'; Code_Open_Image_182021.style.display='inline'; Code_Open_Text_182021.style.display='inline';" height="16" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" width="11" align="top"><img id="Code_Open_Image_182021" style="display: none" onclick="this.style.display='none'; Code_Open_Text_182021.style.display='none'; Code_Closed_Image_182021.style.display='inline'; Code_Closed_Text_182021.style.display='inline';" height="16" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top"><span id="Code_Closed_Text_182021" style="border: 1px solid #808080; background-color: #ffffff; ">SGU259</span><span id="Code_Open_Text_182021" style="display: none"><br /><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; ">/*</span><span style="color: #008000; "><br />&nbsp;*&nbsp;Author:&nbsp;&nbsp;whxnwjq<br />&nbsp;*&nbsp;Algorithm:&nbsp;<br />&nbsp;*&nbsp;File&nbsp;Name:&nbsp;I.cpp<br />&nbsp;</span><span style="color: #008000; ">*/</span><br />#include&nbsp;&lt;map&gt;<br />#include&nbsp;&lt;queue&gt;<br />#include&nbsp;&lt;cmath&gt;<br />#include&nbsp;&lt;<span style="color: #0000FF; ">string</span>&gt;<br />#include&nbsp;&lt;cstring&gt;<br />#include&nbsp;&lt;algorithm&gt;<br />#include&nbsp;&lt;iostream&gt;<br />#include&nbsp;&lt;cstdlib&gt;<br />#include&nbsp;&lt;vector&gt;<br />#include&nbsp;&lt;cstdio&gt;<br />#include&nbsp;&lt;stack&gt;<br />#include&nbsp;&lt;<span style="color: #0000FF; ">set</span>&gt;<br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><br /><span style="color: #0000FF; ">#define</span>&nbsp;PI&nbsp;acos(-1)<br /><span style="color: #0000FF; ">#define</span>&nbsp;LL&nbsp;long&nbsp;long<br /><span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;inf&nbsp;=&nbsp;0x7fffffff;<br /><span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">double</span>&nbsp;eps&nbsp;=&nbsp;1e-6;<br /><br /><span style="color: #0000FF; ">struct</span>&nbsp;Node&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;t,&nbsp;l;<br />}a[222];<br /><br /><span style="color: #0000FF; ">bool</span>&nbsp;cmp(Node&nbsp;x,&nbsp;Node&nbsp;y)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;x.l&nbsp;&gt;&nbsp;y.l;<br />}<br /><br /><span style="color: #0000FF; ">int</span>&nbsp;main()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;T,&nbsp;sum,&nbsp;tmp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(cin&nbsp;&gt;&gt;&nbsp;T)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;=&nbsp;0,&nbsp;tmp&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;T;&nbsp;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&nbsp;&gt;&gt;&nbsp;a[i].t;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;T;&nbsp;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&nbsp;&gt;&gt;&nbsp;a[i].l;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sort(a,&nbsp;a+T,&nbsp;cmp);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;T;&nbsp;i++)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;+=&nbsp;a[i].t;&nbsp;tmp&nbsp;-=&nbsp;a[i].t;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(tmp&nbsp;&lt;&nbsp;0)&nbsp;tmp&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp&nbsp;=&nbsp;max(a[i].l,&nbsp;tmp);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;+=&nbsp;tmp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;sum&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}<br /></span></div><br />SPOJ39_PIGBANK：这题是个经典的完全背包问题，题意是有个储蓄罐，知道了空的时候的质量和装满硬币的质量，给了一些硬币的质量和价值，求储蓄罐装满时硬币的最小价值。<br />经典题。<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><img id="Code_Closed_Image_163150" onclick="this.style.display='none'; Code_Closed_Text_163150.style.display='none'; Code_Open_Image_163150.style.display='inline'; Code_Open_Text_163150.style.display='inline';" height="16" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" width="11" align="top"><img id="Code_Open_Image_163150" style="display: none" onclick="this.style.display='none'; Code_Open_Text_163150.style.display='none'; Code_Closed_Image_163150.style.display='inline'; Code_Closed_Text_163150.style.display='inline';" height="16" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top"><span id="Code_Closed_Text_163150" style="border-right: #808080 1px solid; border-top: #808080 1px solid; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">SPOJ39_PIGBANK</span><span id="Code_Open_Text_163150" style="display: none"><br /><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; ">/*</span><span style="color: #008000; "><br />&nbsp;*&nbsp;Author:&nbsp;&nbsp;phonism<br />&nbsp;*&nbsp;Algorithm:&nbsp;完全背包经典题<br />&nbsp;*&nbsp;File&nbsp;Name:&nbsp;spoj39_PIGBANK.cpp<br />&nbsp;</span><span style="color: #008000; ">*/</span><br />#include&nbsp;&lt;map&gt;<br />#include&nbsp;&lt;queue&gt;<br />#include&nbsp;&lt;cmath&gt;<br />#include&nbsp;&lt;<span style="color: #0000FF; ">string</span>&gt;<br />#include&nbsp;&lt;cstring&gt;<br />#include&nbsp;&lt;algorithm&gt;<br />#include&nbsp;&lt;iostream&gt;<br />#include&nbsp;&lt;cstdlib&gt;<br />#include&nbsp;&lt;vector&gt;<br />#include&nbsp;&lt;cstdio&gt;<br />#include&nbsp;&lt;stack&gt;<br />#include&nbsp;&lt;<span style="color: #0000FF; ">set</span>&gt;<br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><br /><span style="color: #0000FF; ">#define</span>&nbsp;PI&nbsp;acos(-1)<br /><span style="color: #0000FF; ">#define</span>&nbsp;LL&nbsp;long&nbsp;long<br /><span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;inf&nbsp;=&nbsp;10101001;<br /><span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">double</span>&nbsp;eps&nbsp;=&nbsp;1e-6;<br /><br /><span style="color: #0000FF; ">int</span>&nbsp;main()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;t,&nbsp;n,&nbsp;m,&nbsp;a,&nbsp;u[1000],&nbsp;v[1000],&nbsp;dp[11000];<br />&nbsp;&nbsp;&nbsp;&nbsp;cin&nbsp;&gt;&gt;&nbsp;t;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(t--)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&nbsp;&gt;&gt;&nbsp;n&nbsp;&gt;&gt;&nbsp;m&nbsp;&gt;&gt;&nbsp;a;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;1;&nbsp;i&nbsp;&lt;=&nbsp;a;&nbsp;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&nbsp;&gt;&gt;&nbsp;u[i]&nbsp;&gt;&gt;&nbsp;v[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;11000;&nbsp;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dp[i]&nbsp;=&nbsp;inf;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dp[0]&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;1;&nbsp;i&nbsp;&lt;=&nbsp;a;&nbsp;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;j&nbsp;=&nbsp;v[i];&nbsp;j&nbsp;&lt;=&nbsp;m&nbsp;-&nbsp;n;&nbsp;j++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dp[j]&nbsp;=&nbsp;min(dp[j],&nbsp;dp[j-v[i]]&nbsp;+&nbsp;u[i]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(dp[m-n]&nbsp;!=&nbsp;inf)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"The&nbsp;minimum&nbsp;amount&nbsp;of&nbsp;money&nbsp;in&nbsp;the&nbsp;piggy-bank&nbsp;is&nbsp;";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;dp[m-n]&nbsp;&lt;&lt;&nbsp;"."&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;puts("This&nbsp;is&nbsp;impossible.");<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}<br /><br /></span></div><br /><br /><br /><br /><br /><br /><img id="Code_Closed_Image_180912" onclick="this.style.display='none'; Code_Closed_Text_180912.style.display='none'; Code_Open_Image_180912.style.display='inline'; Code_Open_Text_180912.style.display='inline';" height="16" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" width="11" align="top" style="font-size: 13px; display: none; "><span id="Code_Closed_Text_180912" style="font-size: 13px; border: 1px solid #808080; background-color: #ffffff; display: none; ">HDU4091</span><img src ="http://www.cppblog.com/phonism/aggbug/186274.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/phonism/" target="_blank">phonism</a> 2012-08-04 18:05 <a href="http://www.cppblog.com/phonism/archive/2012/08/04/186274.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>2012.8.3日水一发</title><link>http://www.cppblog.com/phonism/archive/2012/08/03/186199.html</link><dc:creator>phonism</dc:creator><author>phonism</author><pubDate>Fri, 03 Aug 2012 13:43:00 GMT</pubDate><guid>http://www.cppblog.com/phonism/archive/2012/08/03/186199.html</guid><wfw:comment>http://www.cppblog.com/phonism/comments/186199.html</wfw:comment><comments>http://www.cppblog.com/phonism/archive/2012/08/03/186199.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/phonism/comments/commentRss/186199.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/phonism/services/trackbacks/186199.html</trackback:ping><description><![CDATA[今天发现这个网站<a href="http://www.donews.com/">http://www.donews.com/</a>挺不错的 &nbsp;虽然上面没有什么的算法，但是都是IT行业一些比较前沿的新闻什么的，对以后应该会有作用吧<img src ="http://www.cppblog.com/phonism/aggbug/186199.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/phonism/" target="_blank">phonism</a> 2012-08-03 21:43 <a href="http://www.cppblog.com/phonism/archive/2012/08/03/186199.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>