﻿<?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++博客-powerwater-文章分类-数论</title><link>http://www.cppblog.com/powerwater/category/17950.html</link><description /><language>zh-cn</language><lastBuildDate>Sat, 20 Oct 2012 13:22:34 GMT</lastBuildDate><pubDate>Sat, 20 Oct 2012 13:22:34 GMT</pubDate><ttl>60</ttl><item><title>1174: 【USACO】麦香牛肉</title><link>http://www.cppblog.com/powerwater/articles/190044.html</link><dc:creator>龙在江湖</dc:creator><author>龙在江湖</author><pubDate>Sun, 09 Sep 2012 11:31:00 GMT</pubDate><guid>http://www.cppblog.com/powerwater/articles/190044.html</guid><description><![CDATA[<div><center><h2>1174: 【USACO】麦香牛肉</h2>时间限制: 1 Sec&nbsp;&nbsp;内存限制: 16 MB<br />提交: 115&nbsp;&nbsp;解决: 67<br />[<a href="http://oj.jzxx.net/submitpage.php?id=1174">提交</a>][<a href="http://oj.jzxx.net/problemstatus.php?id=1174">状态</a>][<a href="http://oj.jzxx.net/bbs.php?pid=1174">讨论版</a>]</center><h2>题目描述</h2><div>农 夫约翰的奶牛几乎要武装暴动，因为他们听说麦当劳要推出新产品麦香牛肉。奶牛们要尽力阻止这种产品的上市。他们研究了一种&#8220;劣等包装&#8221;策略。奶牛们说： &#8220;如果麦香牛肉有3块，6块以及10块装这三种，那么想买 1, 2, 4, 5, 7, 8, 11, 14,  或17块牛肉的顾客就得不到满足了。劣等的包装，劣等的产品！&#8221;  帮助奶牛们。给出N (不同包装的种类数, 1 &lt;= N &lt;= 10)，以及N个正整数 (1 &lt;= i &lt;=  256)表示每种包装中牛肉数量，输出最大的不能买到的牛肉数量。如果任何消费要求都可以被满足或不能满足的牛肉数量没有上界，则输出0。最大的可能值 （如果存在）不超过2,000,000,000。</div><h2>输入</h2><div>第1行: N 第2..N+1行: 一个盒子里的牛肉数量。</div><h2>输出</h2><div>输出题目中要求的单个整数。</div><h2>样例输入</h2> 			<div><span>3 3 6 10</span></div><h2>样例输出</h2> 			<div>17</div><h2>提示</h2> 			<h2>来源</h2> 			<div><p><a href="http://oj.jzxx.net/problemset.php?search=USACO%202002%20Winter%20Orange">USACO 2002 Winter Orange</a></p></div></div><br />题解：<br />&nbsp;&nbsp; n=1 输出0<br />&nbsp;&nbsp; n个整数最大公约数不为1 输出0<br />&nbsp;&nbsp; 逻辑动归：f[i]={f[i-a[j]||f[i]}, 0=&lt;j&lt;n,i&gt;a[j] ，i不超过两个数的最小公倍数，应该小于256*256。<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_192633" onclick="this.style.display='none'; Code_Closed_Text_192633.style.display='none'; Code_Open_Image_192633.style.display='inline'; Code_Open_Text_192633.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" height="16" width="11"><img id="Code_Open_Image_192633" style="display: none" onclick="this.style.display='none'; Code_Open_Text_192633.style.display='none'; Code_Closed_Image_192633.style.display='inline'; Code_Closed_Text_192633.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" height="16" width="11"><span id="Code_Closed_Text_192633" style="border-right: #808080 1px solid; border-top: #808080 1px solid; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">code</span><span id="Code_Open_Text_192633" style="display: none"><br /><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">fstream</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">algorithm</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">using</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">namespace</span><span style="color: #000000; ">&nbsp;std;<br /></span><span style="color: #0000FF; ">const</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;N(</span><span style="color: #000000; ">70000</span><span style="color: #000000; ">);<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;n,a[</span><span style="color: #000000; ">15</span><span style="color: #000000; ">];<br /></span><span style="color: #0000FF; ">bool</span><span style="color: #000000; ">&nbsp;f[N];<br />ifstream&nbsp;cin(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">nuggets.in</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />ofstream&nbsp;cout(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">nuggets.out</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;gcd(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;x,</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;y)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;z;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(z</span><span style="color: #000000; ">=</span><span style="color: #000000; ">x</span><span style="color: #000000; ">%</span><span style="color: #000000; ">y;z;x</span><span style="color: #000000; ">=</span><span style="color: #000000; ">y,y</span><span style="color: #000000; ">=</span><span style="color: #000000; ">z,z</span><span style="color: #000000; ">=</span><span style="color: #000000; ">x</span><span style="color: #000000; ">%</span><span style="color: #000000; ">y);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;y;<br />}<br /></span><span style="color: #0000FF; ">bool</span><span style="color: #000000; ">&nbsp;possible()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(n</span><span style="color: #000000; ">==</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;t</span><span style="color: #000000; ">=</span><span style="color: #000000; ">a[</span><span style="color: #000000; ">0</span><span style="color: #000000; ">];<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">1</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; ">)&nbsp;t</span><span style="color: #000000; ">=</span><span style="color: #000000; ">gcd(t,a[i]);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(t</span><span style="color: #000000; ">==</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">;<br />}<br /></span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;solve()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;fill(f,f</span><span style="color: #000000; ">+</span><span style="color: #000000; ">N,</span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">);&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;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; ">)&nbsp;f[a[i]]</span><span style="color: #000000; ">=</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">1</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 />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;j</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;j</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">n;j</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(a[j]</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">i)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(f[i</span><span style="color: #000000; ">-</span><span style="color: #000000; ">a[j]])<br />&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f[i]</span><span style="color: #000000; ">=</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">break</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">N</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;i</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;i</span><span style="color: #000000; ">--</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #000000; ">!</span><span style="color: #000000; ">f[i])<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">i</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">break</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />}&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;main()<br />{&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;cin</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">n;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;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; ">)&nbsp;cin</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">a[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #000000; ">!</span><span style="color: #000000; ">possible())&nbsp;cout</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;solve();<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />}</span></span></div><img src ="http://www.cppblog.com/powerwater/aggbug/190044.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/powerwater/" target="_blank">龙在江湖</a> 2012-09-09 19:31 <a href="http://www.cppblog.com/powerwater/articles/190044.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>