<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>欧几里得 - 标签 - 菠菜眾長</title><link>https://lruihao.cn/tags/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97/</link><description>欧几里得 - 标签 - 菠菜眾長</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><lastBuildDate>Fri, 17 May 2019 09:14:16 +0000</lastBuildDate><atom:link href="https://lruihao.cn/tags/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97/" rel="self" type="application/rss+xml"/><item><title>最大公约数（二进制算法）</title><link>https://lruihao.cn/posts/gcd-bit/</link><pubDate>Fri, 17 May 2019 09:14:16 +0000</pubDate><author>Lruihao</author><guid>https://lruihao.cn/posts/gcd-bit/</guid><description><![CDATA[<blockquote>
<p>二进制最大公约数算法避免了欧几里得算法（辗转相除法）的大量取模操作，有效减少了时间消耗，且更为方便。</p>
</blockquote>
<h2 id="原理">原理</h2>
<p>本算法基于以下事实：</p>
<blockquote>
<p>对于两个数的最大公约数 gcd(m, n)，有
m&lt;n 时，gcd(m, n)=gcd(n, m)
m 偶 n 偶时，gcd(m, n)=2*gcd(m/2, n/2)
m 偶 n 奇时，gcd(m, n)=gcd(m/2, n)
m 奇 n 偶时，gcd(m, n)=gcd(m, n/2)
m 奇 n 奇时，gcd(m, n)=gcd(n, m-n)</p>
</blockquote>
<p>采用递归即可。</p>
<h2 id="实现">实现</h2>
<div class="highlight" id="id-1"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-cpp" data-lang="cpp"><span class="line"><span class="cl"><span class="kr">inline</span> <span class="kt">int</span> <span class="nf">GCD</span><span class="p">(</span><span class="kt">int</span> <span class="n">x</span><span class="p">,</span><span class="kt">int</span> <span class="n">y</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">        <span class="kt">int</span> <span class="n">i</span><span class="p">,</span><span class="n">j</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">        <span class="k">if</span><span class="p">(</span><span class="n">x</span><span class="o">==</span><span class="mi">0</span><span class="p">)</span> <span class="k">return</span> <span class="n">y</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">        <span class="k">if</span><span class="p">(</span><span class="n">y</span><span class="o">==</span><span class="mi">0</span><span class="p">)</span> <span class="k">return</span> <span class="n">x</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">        <span class="k">for</span><span class="p">(</span><span class="n">i</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="mi">0</span><span class="o">==</span><span class="p">(</span><span class="n">x</span><span class="o">&amp;</span><span class="mi">1</span><span class="p">);</span><span class="o">++</span><span class="n">i</span><span class="p">)</span><span class="n">x</span><span class="o">&gt;&gt;=</span><span class="mi">1</span><span class="p">;</span>   <span class="c1">// 去掉所有的 2
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>        <span class="k">for</span><span class="p">(</span><span class="n">j</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="mi">0</span><span class="o">==</span><span class="p">(</span><span class="n">y</span><span class="o">&amp;</span><span class="mi">1</span><span class="p">);</span><span class="o">++</span><span class="n">j</span><span class="p">)</span><span class="n">y</span><span class="o">&gt;&gt;=</span><span class="mi">1</span><span class="p">;</span>   <span class="c1">// 去掉所有的 2
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>        <span class="k">if</span><span class="p">(</span><span class="n">j</span><span class="o">&lt;</span><span class="n">i</span><span class="p">)</span> <span class="n">i</span><span class="o">=</span><span class="n">j</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">        <span class="k">while</span><span class="p">(</span><span class="mi">1</span><span class="p">){</span>
</span></span><span class="line"><span class="cl">                <span class="k">if</span><span class="p">(</span><span class="n">x</span><span class="o">&lt;</span><span class="n">y</span><span class="p">)</span><span class="n">x</span><span class="o">^=</span><span class="n">y</span><span class="p">,</span><span class="n">y</span><span class="o">^=</span><span class="n">x</span><span class="p">,</span><span class="n">x</span><span class="o">^=</span><span class="n">y</span><span class="p">;</span>   <span class="c1">// 若 x &lt; y 交换 x, y
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>                <span class="k">if</span><span class="p">(</span><span class="mi">0</span><span class="o">==</span><span class="p">(</span><span class="n">x</span><span class="o">-=</span><span class="n">y</span><span class="p">))</span> <span class="k">return</span> <span class="n">y</span><span class="o">&lt;&lt;</span><span class="n">i</span><span class="p">;</span>  <span class="c1">// 若 x == y， gcd == x == y （就是在辗转减，while(1) 控制）
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>                <span class="k">while</span><span class="p">(</span><span class="mi">0</span><span class="o">==</span><span class="p">(</span><span class="n">x</span><span class="o">&amp;</span><span class="mi">1</span><span class="p">))</span><span class="n">x</span><span class="o">&gt;&gt;=</span><span class="mi">1</span><span class="p">;</span> <span class="c1">// 去掉所有的 2
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>        <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight" id="id-2"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-cpp" data-lang="cpp"><span class="line"><span class="cl"><span class="kt">int</span> <span class="nf">get_lcm</span><span class="p">(</span><span class="kt">int</span> <span class="n">a</span><span class="p">,</span><span class="kt">int</span> <span class="n">b</span><span class="p">)</span><span class="c1">///获得最小公倍数
</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="kt">int</span> <span class="n">x</span><span class="o">=</span><span class="n">a</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="kt">int</span> <span class="n">y</span><span class="o">=</span><span class="n">b</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="k">while</span><span class="p">(</span><span class="n">b</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="p">{</span>
</span></span><span class="line"><span class="cl">        <span class="kt">int</span> <span class="n">t</span><span class="o">=</span><span class="n">a</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">        <span class="n">a</span><span class="o">=</span><span class="n">b</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">        <span class="n">b</span><span class="o">=</span><span class="n">t</span><span class="o">%</span><span class="n">b</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="p">}</span>
</span></span><span class="line"><span class="cl">    <span class="k">return</span> <span class="n">x</span><span class="o">/</span><span class="n">a</span><span class="o">*</span><span class="n">y</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></td></tr></table>
</div>
</div>]]></description></item><item><title>The equation-SGU106（扩展欧几里得）</title><link>https://lruihao.cn/posts/euclid/</link><pubDate>Fri, 10 Aug 2018 10:32:39 +0000</pubDate><author>Lruihao</author><guid>https://lruihao.cn/posts/euclid/</guid><description><![CDATA[<h3 id="题意">题意：</h3>
<p>给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。</p>
<h3 id="分析">分析：</h3>
<p>对于解二元一次不定方程，容易想到利用扩展欧几里得求出一组可行解后找到通解，下面来介绍一下欧几里得以及扩展欧几里得。</p>
<h4 id="欧几里得">欧几里得：</h4>
<p>又名辗转相除法，是用来计算两个数的最大公约数，其中就是利用 gcd(a,b)=gcd(b,a mod b) 来求解。下证 gcd(a,b)=gcd(b,a mod b) 的正确性：</p>
<p>设 a,b 的一个公约数为 d</p>
<p>设 a mod b=r，则 a=kb+r(k 为整数），r=a-kb</p>
<p>因为 d|a,d|b</p>
<p>所以 d|a-kb, 即 d|r，而 r=a mod b</p>
<p>所以 d 为 b,a mod b 的公约数</p>
<p>又因为 d 也为 a,b 的公约数，所以（a,b) 和 (b,a mod b) 的公约数一样，所以最大公约数必然一样，得证。</p>
<p>代码描述：</p>
<div class="highlight" id="id-1"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-c" data-lang="c"><span class="line"><span class="cl"><span class="kt">int</span> <span class="nf">gcd</span><span class="p">(</span><span class="kt">int</span> <span class="n">a</span><span class="p">,</span><span class="kt">int</span> <span class="n">b</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="k">if</span> <span class="p">(</span><span class="n">b</span><span class="o">==</span><span class="mi">0</span><span class="p">)</span> <span class="k">return</span> <span class="n">a</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="k">return</span> <span class="nf">gcd</span><span class="p">(</span><span class="n">b</span><span class="p">,</span><span class="n">a</span><span class="o">%</span><span class="n">b</span><span class="p">);</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></td></tr></table>
</div>
</div><h4 id="扩展欧几里得">扩展欧几里得</h4>
<p>顾名思义，为上述欧几里得算法的扩展。欧几里得是用来求 a,b 的最大公约数，那么扩展欧几里得不仅能求出 a,b 的最大公约数，还能求出满足 ax+by=gcd(a,b) 的一组可行解。<br>
求解过程中，扩展欧几里得比欧几里得多了一个赋值过程，具体证明如下：</p>
<p>设 ax1+by1=gcd(a,b),bx2+(a mod b)y2=gcd(b,a mod b)</p>
<p>因为由欧几里得算法可知，gcd(a,b)=gcd(b,a mod b)</p>
<p>所以 ax1+by1=bx2+(a mod b)y2</p>
<p>因为<code>a mod b=a-(a div b)*b（div 为整除</code></p>
<p>所以有<code>ax1+by1=bx2+(a-(a div b)*b)y2</code></p>
<p>将右边移项，展开得：</p>
<div class="highlight" id="id-2"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">ax1+by1=ay2+bx2-(a div b)*b*y2
</span></span><span class="line"><span class="cl">       =ay2+b[x2-(a div b)]y2</span></span></code></pre></td></tr></table>
</div>
</div><p>所以可得：
<code>x1=y2</code>
<code>y1=x2-(a div b)*y2</code></p>
<p>将得到的的 x1,y1 递归操作求解 x2,y2，如此循环往复，将会像欧几里得一样得到 b=0 的情况，此时递归结束，返回 x=1,y=0，回溯得解。</p>
<p>代码描述：</p>
<p>此函数返回的是 a,b 的最大公约数，同时也求解出满足 ax+by=gcd(a,b) 的一组可行的 (x,y)</p>
<div class="highlight" id="id-3"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-c" data-lang="c"><span class="line"><span class="cl"><span class="kt">int</span> <span class="nf">exgcd</span><span class="p">(</span><span class="kt">int</span> <span class="n">a</span><span class="p">,</span><span class="kt">int</span> <span class="n">b</span><span class="p">,</span><span class="kt">int</span> <span class="o">&amp;</span><span class="n">x</span><span class="p">,</span><span class="kt">int</span> <span class="o">&amp;</span><span class="n">y</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="k">if</span> <span class="p">(</span><span class="n">b</span><span class="o">==</span><span class="mi">0</span><span class="p">)</span> <span class="p">{</span><span class="n">x</span><span class="o">=</span><span class="mi">1</span><span class="p">;</span><span class="n">y</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="k">return</span> <span class="n">a</span><span class="p">;}</span>
</span></span><span class="line"><span class="cl">    <span class="kt">int</span> <span class="n">t</span><span class="o">=</span><span class="nf">exgcd</span><span class="p">(</span><span class="n">b</span><span class="p">,</span><span class="n">a</span><span class="o">%</span><span class="n">b</span><span class="p">,</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="kt">int</span> <span class="n">x0</span><span class="o">=</span><span class="n">x</span><span class="p">,</span><span class="n">y0</span><span class="o">=</span><span class="n">y</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="n">x</span><span class="o">=</span><span class="n">y0</span><span class="p">;</span><span class="n">y</span><span class="o">=</span><span class="n">x0</span><span class="o">-</span><span class="p">(</span><span class="n">a</span><span class="o">/</span><span class="n">b</span><span class="p">)</span><span class="o">*</span><span class="n">y0</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="k">return</span> <span class="n">t</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></td></tr></table>
</div>
</div><h4 id="关于求解二元一次不定方程-axbyc">关于求解二元一次不定方程 ax+by=c</h4>
<p>首先，如果 c 不是 gcd(a,b) 的倍数，方程显然无解。</p>
<p>扩展欧几里得求解的是 ax+by=gcd(a,b)=1 的可行解，但是题目中并没有说 c 与 a,b 互质之类的条件，所以需要在开始时两边同时除以 gcd(a,b)。</p>
<p>设 d=gcd(a,b)</p>
<p>设 a&rsquo;=a/d,b&rsquo;=b/d,c&rsquo;=c/d,</p>
<p>则下面需要求解 a&rsquo;x+b&rsquo;y=c&rsquo;的整数解，而 gcd(a&rsquo;,b&rsquo;)=1，</p>
<p>则我们只需求 a&rsquo;x+b&rsquo;y=1 的可行解</p>
<p>直接使用扩展欧几里得，得到 (x&rsquo;,y&rsquo;), 则最终解为<code>x'*c',y'*c'</code>设为 (x0,y0)。</p>
<p>现在得到了一组可行解，但是如何得到通解呢？</p>
<p>将 (x0,y0) 代入 ax+by=c，则有</p>
<p><code>a*(x0)+b*(y0)=c</code></p>
<p>通过拆添项，可有：</p>
<div class="highlight" id="id-4"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">a*(x0+1*b)+b*(y0-1*a)=c
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">a*(x0+2*b)+b*(y0-2*a)=c
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">a*(x0+3*b)+b*(y0-3*a)=c
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">……</span></span></code></pre></td></tr></table>
</div>
</div><p><code>a*(x0+k*b)+b*(y0-k*a)=c (k∈Z)</code></p>
<p>至此，我们得到了通解的方程</p>
<p><code>x=x0+k*b</code>
<code>y=y0-k*a (k∈Z)</code></p>
<p>这样，所有满足 ax+by=c 的可行解都可求出。</p>
<h3 id="具体实现">具体实现</h3>
<p>有了主体算法，下面要谈到具体实现了。</p>
<h4 id="先处理一下无解的情况">先处理一下无解的情况：</h4>
<ol>
<li>
<p>当 a=0 并且 b=0，而 c≠0 时，显然无解；<br>
当 a=0,b=0，而 c=0 时，[x1,x2],[y1,y2] 都为可行解，根据乘法原理，可行解的个数为<code>(x2-x1+1)*(y2-y1+1)</code>;</p>
</li>
<li>
<p>当 a=0 b≠0 时：<br>
此时即为求解 by=c，则 y=c/b，<br>
如果 c/b 不是整数或 c/b 不在 [y1,y2] 的范围内，无解<br>
否则 [x1,x2] 内全部整数都为可行解。</p>
</li>
<li>
<p>当 b=0,a≠0 时，同上。</p>
</li>
<li>
<p>若 c 不是 gcd(a,b) 的个数，方程显然无解。</p>
</li>
</ol>
<h4 id="处理完了一些繁琐的细节后下面是具体的求解过程">处理完了一些繁琐的细节后，下面是具体的求解过程：</h4>
<ol>
<li>
<p>扩展欧几里得求解的是 ax+by=c，而本题是 ax+by+c=0，需将 c 移项。</p>
</li>
<li>
<p>对于本道题，首先要注意的是，对于负数的模运算在此算法中无法得到正确解，所以要处理一下 a,b,c 的正负情况。
如果 a 为负数，只需将 a 取相反数后，再处理一下 x∈[x1,x2] 的范围。当 a 取了相反数，相当于把 x 也取反，则需要把 x 的范围由 [x1,x2] 转变成 [-x2,-x1], 类似于把数轴反了过来。b 同理。</p>
</li>
<li>
<p>利用扩展欧几里得解二元一次不定方程，得到一组可行解 (x0,y0)。</p>
</li>
<li>
<p>因为题目中对 x,y 有条件约束，而有 x=x0+kb,y=y0-kb，我们可以求出满足 x∈[x1,x2],y∈[y1,y2] 的 k 的取值范围，
即为求解 x1&lt;=x0+kb&lt;=x2,y1&lt;=y0-kb&lt;=y2 的整数 k 的个数
但是在求解这两个一次函数的过程中，会有除不尽的现象，该如何取整呢？</p>
</li>
</ol>
<p>举个例子</p>
<p>当出现 2.5&lt;=k&lt;=5.5 时，我们需要的可行的 k 为 3,4,5，所以需要将 2.5 向上取整得到 3，5.5 向下取整得到 5，即为 3&lt;=k&lt;=5；</p>
<p>当出现-5.5&lt;=&lt;=-2.5 时，我们需要的可行的 k 为-5,-4,-3, 所以需要将-5.5 向上取整得到-5,-2.5 向下取整得到-3，即为-5&lt;=k&lt;=-3；</p>
<p>正负数的情况都已经考虑完全了，可以得到取整的结论：上界下取整，下界上取整。</p>
<p>最后，将得到的两个范围取交集，得到 [l,r]，则最终答案为 r-l+1。</p>
<p>这样，本题就可以完美解决了。</p>
<div class="highlight" id="id-5"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span><span class="lnt">26
</span><span class="lnt">27
</span><span class="lnt">28
</span><span class="lnt">29
</span><span class="lnt">30
</span><span class="lnt">31
</span><span class="lnt">32
</span><span class="lnt">33
</span><span class="lnt">34
</span><span class="lnt">35
</span><span class="lnt">36
</span><span class="lnt">37
</span><span class="lnt">38
</span><span class="lnt">39
</span><span class="lnt">40
</span><span class="lnt">41
</span><span class="lnt">42
</span><span class="lnt">43
</span><span class="lnt">44
</span><span class="lnt">45
</span><span class="lnt">46
</span><span class="lnt">47
</span><span class="lnt">48
</span><span class="lnt">49
</span><span class="lnt">50
</span><span class="lnt">51
</span><span class="lnt">52
</span><span class="lnt">53
</span><span class="lnt">54
</span><span class="lnt">55
</span><span class="lnt">56
</span><span class="lnt">57
</span><span class="lnt">58
</span><span class="lnt">59
</span><span class="lnt">60
</span><span class="lnt">61
</span><span class="lnt">62
</span><span class="lnt">63
</span><span class="lnt">64
</span><span class="lnt">65
</span><span class="lnt">66
</span><span class="lnt">67
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-cpp" data-lang="cpp"><span class="line"><span class="cl"><span class="c1">// BY Rinyo
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>
</span></span><span class="line"><span class="cl"><span class="cp">#include</span><span class="cpf">&lt;cstdio&gt;</span><span class="cp">
</span></span></span><span class="line"><span class="cl"><span class="cp">#include</span><span class="cpf">&lt;cmath&gt;</span><span class="cp">
</span></span></span><span class="line"><span class="cl"><span class="cp"></span><span class="kt">long</span> <span class="kt">long</span> <span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">,</span><span class="n">c</span><span class="p">,</span><span class="n">x1</span><span class="p">,</span><span class="n">x2</span><span class="p">,</span><span class="n">yy1</span><span class="p">,</span><span class="n">y2</span><span class="p">,</span><span class="n">x0</span><span class="p">,</span><span class="n">yy0</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="kr">inline</span> <span class="kt">long</span> <span class="kt">long</span> <span class="nf">cmin</span><span class="p">(</span><span class="k">const</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">&amp;</span><span class="n">x</span><span class="p">,</span><span class="k">const</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">&amp;</span><span class="n">y</span><span class="p">)</span> <span class="p">{</span><span class="k">return</span> <span class="n">x</span><span class="o">&lt;</span><span class="n">y</span><span class="o">?</span><span class="nl">x</span><span class="p">:</span><span class="n">y</span><span class="p">;}</span>
</span></span><span class="line"><span class="cl"><span class="kr">inline</span> <span class="kt">long</span> <span class="kt">long</span> <span class="nf">cmax</span><span class="p">(</span><span class="k">const</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">&amp;</span><span class="n">x</span><span class="p">,</span><span class="k">const</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">&amp;</span><span class="n">y</span><span class="p">)</span> <span class="p">{</span><span class="k">return</span> <span class="n">x</span><span class="o">&gt;</span><span class="n">y</span><span class="o">?</span><span class="nl">x</span><span class="p">:</span><span class="n">y</span><span class="p">;}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="kt">long</span> <span class="kt">long</span> <span class="nf">gcd</span><span class="p">(</span><span class="kt">long</span> <span class="kt">long</span> <span class="n">a</span><span class="p">,</span><span class="kt">long</span> <span class="kt">long</span> <span class="n">b</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="k">if</span> <span class="p">(</span><span class="n">b</span><span class="o">==</span><span class="mi">0</span><span class="p">)</span> <span class="k">return</span> <span class="n">a</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="k">return</span> <span class="n">gcd</span><span class="p">(</span><span class="n">b</span><span class="p">,</span><span class="n">a</span> <span class="o">%</span> <span class="n">b</span><span class="p">);</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="kt">void</span> <span class="nf">exgcd</span><span class="p">(</span><span class="kt">long</span> <span class="kt">long</span> <span class="n">a</span><span class="p">,</span><span class="kt">long</span> <span class="kt">long</span> <span class="n">b</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="k">if</span> <span class="p">(</span><span class="n">b</span><span class="o">==</span><span class="mi">0</span><span class="p">){</span><span class="n">x0</span><span class="o">=</span><span class="mi">1</span><span class="p">;</span><span class="n">yy0</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="k">return</span><span class="p">;}</span>
</span></span><span class="line"><span class="cl">    <span class="n">exgcd</span><span class="p">(</span><span class="n">b</span><span class="p">,</span><span class="n">a</span><span class="o">%</span><span class="n">b</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="kt">long</span> <span class="kt">long</span> <span class="n">t</span><span class="o">=</span><span class="n">x0</span><span class="p">;</span><span class="n">x0</span><span class="o">=</span><span class="n">yy0</span><span class="p">;</span><span class="n">yy0</span><span class="o">=</span><span class="n">t</span><span class="o">-</span><span class="n">a</span><span class="o">/</span><span class="n">b</span><span class="o">*</span><span class="n">yy0</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="k">return</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="kt">int</span> <span class="nf">main</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="n">scanf</span><span class="p">(</span><span class="s">&#34;%I64d%I64d%I64d%I64d%I64d%I64d%I64d&#34;</span><span class="p">,</span><span class="o">&amp;</span><span class="n">a</span><span class="p">,</span><span class="o">&amp;</span><span class="n">b</span><span class="p">,</span><span class="o">&amp;</span><span class="n">c</span><span class="p">,</span><span class="o">&amp;</span><span class="n">x1</span><span class="p">,</span><span class="o">&amp;</span><span class="n">x2</span><span class="p">,</span><span class="o">&amp;</span><span class="n">yy1</span><span class="p">,</span><span class="o">&amp;</span><span class="n">y2</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="n">c</span><span class="o">=-</span><span class="n">c</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="k">if</span> <span class="p">(</span><span class="n">c</span><span class="o">&lt;</span><span class="mi">0</span><span class="p">)</span> <span class="p">{</span><span class="n">a</span><span class="o">=-</span><span class="n">a</span><span class="p">;</span><span class="n">b</span><span class="o">=-</span><span class="n">b</span><span class="p">;</span><span class="n">c</span><span class="o">=-</span><span class="n">c</span><span class="p">;}</span>
</span></span><span class="line"><span class="cl">    <span class="k">if</span> <span class="p">(</span><span class="n">a</span><span class="o">&lt;</span><span class="mi">0</span><span class="p">)</span> <span class="p">{</span><span class="n">a</span><span class="o">=-</span><span class="n">a</span><span class="p">;</span><span class="kt">long</span> <span class="kt">long</span> <span class="n">t</span><span class="o">=</span><span class="n">x1</span><span class="p">;</span><span class="n">x1</span><span class="o">=-</span><span class="n">x2</span><span class="p">;</span><span class="n">x2</span><span class="o">=-</span><span class="n">t</span><span class="p">;}</span>
</span></span><span class="line"><span class="cl">    <span class="k">if</span> <span class="p">(</span><span class="n">b</span><span class="o">&lt;</span><span class="mi">0</span><span class="p">)</span> <span class="p">{</span><span class="n">b</span><span class="o">=-</span><span class="n">b</span><span class="p">;</span><span class="kt">long</span> <span class="kt">long</span> <span class="n">t</span><span class="o">=</span><span class="n">yy1</span><span class="p">;</span><span class="n">yy1</span><span class="o">=-</span><span class="n">y2</span><span class="p">;</span><span class="n">y2</span><span class="o">=-</span><span class="n">t</span><span class="p">;}</span>
</span></span><span class="line"><span class="cl">    <span class="k">if</span> <span class="p">(</span><span class="n">a</span><span class="o">==</span><span class="mi">0</span> <span class="o">&amp;&amp;</span> <span class="n">b</span><span class="o">==</span><span class="mi">0</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="p">{</span>
</span></span><span class="line"><span class="cl">        <span class="k">if</span> <span class="p">(</span><span class="n">c</span><span class="o">==</span><span class="mi">0</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">        <span class="p">{</span>
</span></span><span class="line"><span class="cl">            <span class="n">printf</span><span class="p">(</span><span class="s">&#34;%I64d&#34;</span><span class="p">,(</span><span class="n">x2</span><span class="o">-</span><span class="n">x1</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">y2</span><span class="o">-</span><span class="n">yy1</span><span class="o">+</span><span class="mi">1</span><span class="p">));</span>
</span></span><span class="line"><span class="cl">            <span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">        <span class="p">}</span>
</span></span><span class="line"><span class="cl">        <span class="n">printf</span><span class="p">(</span><span class="s">&#34;0&#34;</span><span class="p">);</span><span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="p">}</span>
</span></span><span class="line"><span class="cl">    <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="n">a</span><span class="o">==</span><span class="mi">0</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="p">{</span>
</span></span><span class="line"><span class="cl">        <span class="k">if</span> <span class="p">(</span><span class="n">c</span> <span class="o">%</span><span class="n">b</span> <span class="o">==</span><span class="mi">0</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">            <span class="k">if</span> <span class="p">(</span><span class="n">c</span><span class="o">/</span><span class="n">b</span><span class="o">&lt;=</span><span class="n">y2</span> <span class="o">&amp;&amp;</span> <span class="n">c</span><span class="o">/</span><span class="n">b</span><span class="o">&gt;=</span><span class="n">yy1</span><span class="p">)</span> <span class="p">{</span><span class="n">printf</span><span class="p">(</span><span class="s">&#34;%I64d&#34;</span><span class="p">,</span><span class="n">x2</span><span class="o">-</span><span class="n">x1</span><span class="o">+</span><span class="mi">1</span><span class="p">);</span><span class="k">return</span> <span class="mi">0</span><span class="p">;}</span>
</span></span><span class="line"><span class="cl">        <span class="n">printf</span><span class="p">(</span><span class="s">&#34;0&#34;</span><span class="p">);</span><span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="p">}</span>
</span></span><span class="line"><span class="cl">    <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="n">b</span><span class="o">==</span><span class="mi">0</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="p">{</span>
</span></span><span class="line"><span class="cl">        <span class="k">if</span> <span class="p">(</span><span class="n">c</span><span class="o">%</span><span class="n">a</span><span class="o">==</span><span class="mi">0</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">            <span class="k">if</span> <span class="p">(</span><span class="n">c</span><span class="o">/</span><span class="n">a</span><span class="o">&lt;=</span><span class="n">x2</span> <span class="o">&amp;&amp;</span> <span class="n">c</span><span class="o">/</span><span class="n">a</span><span class="o">&gt;=</span><span class="n">x1</span><span class="p">)</span> <span class="p">{</span><span class="n">printf</span><span class="p">(</span><span class="s">&#34;%I64d&#34;</span><span class="p">,</span><span class="n">y2</span><span class="o">-</span><span class="n">yy1</span><span class="o">+</span><span class="mi">1</span><span class="p">);</span><span class="k">return</span> <span class="mi">0</span><span class="p">;}</span>
</span></span><span class="line"><span class="cl">        <span class="n">printf</span><span class="p">(</span><span class="s">&#34;0&#34;</span><span class="p">);</span><span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="kt">long</span> <span class="kt">long</span> <span class="n">d</span><span class="o">=</span><span class="n">gcd</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="k">if</span> <span class="p">(</span><span class="n">c</span><span class="o">%</span><span class="n">d</span><span class="o">!=</span><span class="mi">0</span><span class="p">){</span><span class="n">printf</span><span class="p">(</span><span class="s">&#34;0&#34;</span><span class="p">);</span><span class="k">return</span> <span class="mi">0</span><span class="p">;}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="n">a</span><span class="o">=</span><span class="n">a</span><span class="o">/</span><span class="n">d</span><span class="p">;</span><span class="n">b</span><span class="o">=</span><span class="n">b</span><span class="o">/</span><span class="n">d</span><span class="p">;</span><span class="n">c</span><span class="o">=</span><span class="n">c</span><span class="o">/</span><span class="n">d</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="n">exgcd</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="n">x0</span><span class="o">=</span><span class="n">x0</span><span class="o">*</span><span class="n">c</span><span class="p">;</span><span class="n">yy0</span><span class="o">=</span><span class="n">yy0</span><span class="o">*</span><span class="n">c</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="kt">double</span> <span class="n">tx2</span><span class="o">=</span><span class="n">x2</span><span class="p">,</span><span class="n">tx1</span><span class="o">=</span><span class="n">x1</span><span class="p">,</span><span class="n">tx0</span><span class="o">=</span><span class="n">x0</span><span class="p">,</span><span class="n">ta</span><span class="o">=</span><span class="n">a</span><span class="p">,</span><span class="n">tb</span><span class="o">=</span><span class="n">b</span><span class="p">,</span><span class="n">tc</span><span class="o">=</span><span class="n">c</span><span class="p">,</span><span class="n">ty1</span><span class="o">=</span><span class="n">yy1</span><span class="p">,</span><span class="n">ty2</span><span class="o">=</span><span class="n">y2</span><span class="p">,</span><span class="n">ty0</span><span class="o">=</span><span class="n">yy0</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="kt">long</span> <span class="kt">long</span> <span class="n">down1</span><span class="o">=</span><span class="n">floor</span><span class="p">(((</span><span class="n">tx2</span><span class="o">-</span><span class="n">tx0</span><span class="p">)</span><span class="o">/</span><span class="n">tb</span><span class="p">)),</span><span class="n">down2</span><span class="o">=</span><span class="n">floor</span><span class="p">(((</span><span class="n">ty0</span><span class="o">-</span><span class="n">ty1</span><span class="p">)</span><span class="o">/</span><span class="n">ta</span><span class="p">));</span>
</span></span><span class="line"><span class="cl">    <span class="kt">long</span> <span class="kt">long</span> <span class="n">r</span><span class="o">=</span><span class="n">cmin</span><span class="p">(</span><span class="n">down1</span><span class="p">,</span><span class="n">down2</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="kt">long</span> <span class="kt">long</span> <span class="n">up1</span><span class="o">=</span><span class="n">ceil</span><span class="p">(((</span><span class="n">tx1</span><span class="o">-</span><span class="n">tx0</span><span class="p">)</span><span class="o">/</span><span class="n">tb</span><span class="p">)),</span><span class="n">up2</span><span class="o">=</span><span class="n">ceil</span><span class="p">(((</span><span class="n">ty0</span><span class="o">-</span><span class="n">ty2</span><span class="p">)</span><span class="o">/</span><span class="n">ta</span><span class="p">));</span>
</span></span><span class="line"><span class="cl">    <span class="kt">long</span> <span class="kt">long</span> <span class="n">l</span><span class="o">=</span><span class="n">cmax</span><span class="p">(</span><span class="n">up1</span><span class="p">,</span><span class="n">up2</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="k">if</span> <span class="p">(</span><span class="n">r</span><span class="o">&lt;</span><span class="n">l</span><span class="p">)</span> <span class="n">printf</span><span class="p">(</span><span class="s">&#34;0&#34;</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="k">else</span> <span class="n">printf</span><span class="p">(</span><span class="s">&#34;%I64d&#34;</span><span class="p">,</span><span class="n">r</span><span class="o">-</span><span class="n">l</span><span class="o">+</span><span class="mi">1</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></td></tr></table>
</div>
</div><p>扩展欧几里得模板</p>
<div class="highlight" id="id-6"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span><span class="lnt">26
</span><span class="lnt">27
</span><span class="lnt">28
</span><span class="lnt">29
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-c" data-lang="c"><span class="line"><span class="cl"><span class="cp">#include</span><span class="cpf">&lt;iostream&gt;</span><span class="cp">
</span></span></span><span class="line"><span class="cl"><span class="cp"></span><span class="n">using</span> <span class="n">namespace</span> <span class="n">std</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="kt">int</span> <span class="nf">exgcd</span><span class="p">(</span><span class="kt">int</span> <span class="n">a</span><span class="p">,</span><span class="kt">int</span> <span class="n">b</span><span class="p">,</span><span class="kt">int</span> <span class="o">&amp;</span><span class="n">x</span><span class="p">,</span><span class="kt">int</span> <span class="o">&amp;</span><span class="n">y</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">     <span class="k">if</span><span class="p">(</span><span class="n">b</span><span class="o">==</span><span class="mi">0</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="p">{</span>
</span></span><span class="line"><span class="cl">        <span class="n">x</span><span class="o">=</span><span class="mi">1</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">        <span class="n">y</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">        <span class="k">return</span> <span class="n">a</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="p">}</span>
</span></span><span class="line"><span class="cl">    <span class="kt">int</span> <span class="n">gcd</span><span class="o">=</span><span class="nf">exgcd</span><span class="p">(</span><span class="n">b</span><span class="p">,</span><span class="n">a</span><span class="o">%</span><span class="n">b</span><span class="p">,</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="kt">int</span> <span class="n">x2</span><span class="o">=</span><span class="n">x</span><span class="p">,</span><span class="n">y2</span><span class="o">=</span><span class="n">y</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="n">x</span><span class="o">=</span><span class="n">y2</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="n">y</span><span class="o">=</span><span class="n">x2</span><span class="o">-</span><span class="p">(</span><span class="n">a</span><span class="o">/</span><span class="n">b</span><span class="p">)</span><span class="o">*</span><span class="n">y2</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="k">return</span> <span class="n">gcd</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="kt">int</span> <span class="nf">main</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl"><span class="kt">int</span> <span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="p">,</span><span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="n">cout</span><span class="o">&lt;&lt;</span><span class="s">&#34;请输入 a 和 b:&#34;</span><span class="o">&lt;&lt;</span><span class="n">endl</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="n">cin</span><span class="o">&gt;&gt;</span><span class="n">a</span><span class="o">&gt;&gt;</span><span class="n">b</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="n">cout</span><span class="o">&lt;&lt;</span><span class="s">&#34;a 和 b 的最大公约数：&#34;</span><span class="o">&lt;&lt;</span><span class="n">endl</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="n">cout</span><span class="o">&lt;&lt;</span><span class="nf">exgcd</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">,</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="p">)</span><span class="o">&lt;&lt;</span><span class="n">endl</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="n">cout</span><span class="o">&lt;&lt;</span><span class="s">&#34;ax+by=gcd(a,b) 的一组解是：&#34;</span><span class="o">&lt;&lt;</span><span class="n">endl</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="n">cout</span><span class="o">&lt;&lt;</span><span class="n">x</span><span class="o">&lt;&lt;</span><span class="s">&#34; &#34;</span><span class="o">&lt;&lt;</span><span class="n">y</span><span class="o">&lt;&lt;</span><span class="n">endl</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></td></tr></table>
</div>
</div>]]></description></item></channel></rss>