<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Dynamicer&#39;s Paranoid</title>
    <link>https://dynamicer.com/</link>
    <atom:link href="/rss.xml" rel="self" type="application/rss+xml"/>
    
    <description></description>
    <pubDate>Thu, 28 Feb 2019 13:16:54 GMT</pubDate>
    <generator>http://hexo.io/</generator>
    
    <item>
      <title>解决 brew update Error /usr/local must be writable! 问题</title>
      <link>https://dynamicer.com/solve-problem-brew-update-error-usr-local-must-be-writable/</link>
      <guid>https://dynamicer.com/solve-problem-brew-update-error-usr-local-must-be-writable/</guid>
      <pubDate>Wed, 27 Feb 2019 16:00:00 GMT</pubDate>
      <description>
      
        &lt;p&gt;最近把 rMBP 2015 乞丐版加成了 512G 的 Intel 760P 的硬盘，因为是从 Time Machine 恢复的而不是直接对拷的，导致虽然数据跟过来了，很多系统配置却没有跟过来，总是出现这样那样奇奇怪怪的问题。&lt;/p&gt;
&lt;p&gt;今天在执行 &lt;code&gt;brew
      
      </description>
      
      <content:encoded>&lt;p&gt;最近把 rMBP 2015 乞丐版加成了 512G 的 Intel 760P 的硬盘，因为是从 Time Machine 恢复的而不是直接对拷的，导致虽然数据跟过来了，很多系统配置却没有跟过来，总是出现这样那样奇奇怪怪的问题。&lt;/p&gt;
&lt;p&gt;今天在执行 &lt;code&gt;brew update&lt;/code&gt; 的时候报 &lt;code&gt;Error: /usr/local must be writable!&lt;/code&gt;，&lt;code&gt;brew doctor&lt;/code&gt; 之，提示我执行 &lt;/p&gt;
&lt;figure class=&quot;highlight plain&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;sudo chown -R $(whoami) /usr/local&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;p&gt;如果依然不行，执行 &lt;/p&gt;
&lt;figure class=&quot;highlight plain&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;sudo chown -R $(whoami) $(brew --prefix)/*&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;p&gt;但这并没有什么用，Google 之，stackoverflow 曰，何以解忧，唯有重装。&lt;/p&gt;
&lt;p&gt;问题解决，但这样一通操作以后，brew 装过的大多数软件，都&lt;strong&gt;就此消！失！了！&lt;/strong&gt;，比如 proxychains4、node、git 等。（后文&lt;a href=&quot;/solve-problem-proxychains4-not-work-in-macOS-Mojave&quot;&gt;讲 Mojave 上装 proxychains4 的又一个坑&lt;/a&gt;）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;如果前面两个命令不管用，这的确是唯一的办法了，阿Q 一些的想法是提前被告知总比像我这样一脸懵逼好很多，允悲= =&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;卸载：&lt;/p&gt;
&lt;figure class=&quot;highlight plain&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;/usr/bin/ruby -e &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)&amp;quot;&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;p&gt;重装：&lt;/p&gt;
&lt;figure class=&quot;highlight plain&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;/usr/bin/ruby -e &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&amp;quot;&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;</content:encoded>
      
      <comments>https://dynamicer.com/solve-problem-brew-update-error-usr-local-must-be-writable/#disqus_thread</comments>
    </item>
    
    <item>
      <title>解决 proxychains4 在 macOS Mojave 无法工作问题</title>
      <link>https://dynamicer.com/solve-problem-proxychains4-not-work-in-macOS-Mojave/</link>
      <guid>https://dynamicer.com/solve-problem-proxychains4-not-work-in-macOS-Mojave/</guid>
      <pubDate>Wed, 27 Feb 2019 16:00:00 GMT</pubDate>
      <description>
      
        &lt;p&gt;proxychains4 的作用在此就不多做解释了，相信能找到这篇文章的你都懂的~&lt;/p&gt;
&lt;p&gt;虽然是解决问题，还是写一下安装，通过 brew：&lt;/p&gt;
&lt;figure class=&quot;highlight plain&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutte
      
      </description>
      
      <content:encoded>&lt;p&gt;proxychains4 的作用在此就不多做解释了，相信能找到这篇文章的你都懂的~&lt;/p&gt;
&lt;p&gt;虽然是解决问题，还是写一下安装，通过 brew：&lt;/p&gt;
&lt;figure class=&quot;highlight plain&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;brew install proxychains-ng&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;p&gt;修改配置文件，配合 SS 本地端口：&lt;/p&gt;
&lt;figure class=&quot;highlight plain&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;nano /usr/local/etc/proxychains.conf&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;p&gt;在文件末尾 &lt;code&gt;[ProxyList]&lt;/code&gt; 后面，把原来的 &lt;code&gt;socks4 127.0.0.1 9050&lt;/code&gt; 注释掉/删掉，添加 &lt;code&gt;socks5 127.0.0.1 1080&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;按理安装已经结束了，我们试验一下，开启 SS（建议全局模式），在命令前添加 &lt;code&gt;proxychains4&lt;/code&gt;&lt;/p&gt;
&lt;figure class=&quot;highlight plain&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;2&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;proxychains4 curl google.com&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;curl: (7) Failed to connect to google.com port 80: Operation timed out&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;？？？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;并不 work！&lt;/p&gt;
&lt;p&gt;按照网络上的解释，大多是讲配置文件权限不够，去如何修改，&lt;strong&gt;但这并没有什么用&lt;/strong&gt;！原因在于 macOS El Capitan 以上系统完整性保护（SIP, System Integrity Protection）被默认开启，下面介绍如何关闭：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;点击左上方  按钮，选择重启&lt;/li&gt;
&lt;li&gt;长按 Command-R 进入 Recovery System&lt;/li&gt;
&lt;li&gt;点击 Utilities，选择 Terminal&lt;/li&gt;
&lt;li&gt;输入命令 &lt;code&gt;csrutil disable&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;点击左上方  按钮，选择重启&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;此时再次试验：&lt;/p&gt;
&lt;figure class=&quot;highlight bash&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;2&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;3&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;4&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;5&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;6&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;7&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;8&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;9&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;10&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;11&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;proxychains4 curl google.com&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;[proxychains] config file found: /usr/&lt;span class=&quot;built_in&quot;&gt;local&lt;/span&gt;/etc/proxychains.conf&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;[proxychains] preloading /usr/&lt;span class=&quot;built_in&quot;&gt;local&lt;/span&gt;/Cellar/proxychains-ng/4.13/lib/libproxychains4.dylib&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;[proxychains] DLL init: proxychains-ng 4.13&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;[proxychains] Strict chain  ...  127.0.0.1:1080  ...  google.com:80  ...  OK&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;lt;HTML&amp;gt;&amp;lt;HEAD&amp;gt;&amp;lt;meta http-equiv=&lt;span class=&quot;string&quot;&gt;&quot;content-type&quot;&lt;/span&gt; content=&lt;span class=&quot;string&quot;&gt;&quot;text/html;charset=utf-8&quot;&lt;/span&gt;&amp;gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;lt;TITLE&amp;gt;301 Moved&amp;lt;/TITLE&amp;gt;&amp;lt;/HEAD&amp;gt;&amp;lt;BODY&amp;gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;lt;H1&amp;gt;301 Moved&amp;lt;/H1&amp;gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;The document has moved&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;lt;A HREF=&lt;span class=&quot;string&quot;&gt;&quot;http://www.google.com/&quot;&lt;/span&gt;&amp;gt;here&amp;lt;/A&amp;gt;.&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;lt;/BODY&amp;gt;&amp;lt;/HTML&amp;gt;&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;p&gt;成功解决√&lt;/p&gt;
</content:encoded>
      
      <comments>https://dynamicer.com/solve-problem-proxychains4-not-work-in-macOS-Mojave/#disqus_thread</comments>
    </item>
    
    <item>
      <title>It has been so long.</title>
      <link>https://dynamicer.com/march/</link>
      <guid>https://dynamicer.com/march/</guid>
      <pubDate>Wed, 27 Feb 2019 16:00:00 GMT</pubDate>
      <description>
      
        &lt;p&gt;上午因为重装 Homebrew 引发的问题折腾了很久，想写一篇文章 Mark 一下，想来也只能留在这里。&lt;/p&gt;
&lt;p&gt;上一次在这里写点什么，是 20160704，而现在已经是 20190228，两年半的时间已经漫长到接近 INF，中间也发生了太多，孤独成了生活的主旋律，欢
      
      </description>
      
      <content:encoded>&lt;p&gt;上午因为重装 Homebrew 引发的问题折腾了很久，想写一篇文章 Mark 一下，想来也只能留在这里。&lt;/p&gt;
&lt;p&gt;上一次在这里写点什么，是 20160704，而现在已经是 20190228，两年半的时间已经漫长到接近 INF，中间也发生了太多，孤独成了生活的主旋律，欢乐只是其中的点缀，所幸其中的大多数正因为没有记忆，也已经被遗忘殆尽，即使存在的，也只是一些不咸不淡的瞬间。&lt;/p&gt;
&lt;p&gt;不知道这个网站的 RSS 地址，还会不会停留在谁的 feed 里。我倒是真心希望可以再次把这里当成树洞，留下一些焦灼、灵感或是才华（如果曾经有过的话）存在过的证明（听起来像 POW？）。&lt;/p&gt;
&lt;p&gt;现在的自己被楼下 Tony 老师烫了奇怪的发型，如有必要或是心情合适会梳成背头，和 16 年比起来似乎是胖了一些，依然喝酒会脸红，依然没有烟瘾，依然不会开车。&lt;/p&gt;
&lt;p&gt;我离开了南通，来到了上海（的远郊），在 17 年 7 月的时候，那时我并不知道摆在面前的是什么，也幸好那时的我不知道。一年半之后，我并没爱上这里，但之前的岁月终究离我越来越远了。&lt;/p&gt;
&lt;p&gt;记得以前看过一个帖子讲，所谓 WSN 者，烂人烂校烂专业，没钱没车没老婆，形容过去半年的处境再合适不过了，说实话，这样的日子实在很难让人不意志消沉。&lt;/p&gt;
&lt;p&gt;有了女友。在大二开始的时候，似乎生活中已经没有了任何可以经常见面甚至一起吃饭的异性朋友。遇见傻妞是意外中的意外。小姑娘是那么 shiny，和我这样的 WSN 明明本来是两个世界的人，anyway，缘分这东西，完全没有道理可言。&lt;/p&gt;
&lt;p&gt;当她来临的时候，所有的坚持都有了让我继续坚持的必要。&lt;/p&gt;
&lt;p&gt;明天就是 20190301 了，江南三月，草长莺飞，好在眼前的大多数路径还算清晰（尽管真正做的时候又是说线做泪了），也能有具体的事可做，猥琐发育、野蛮生长就好——而不是被时间和欲望推着向前。&lt;/p&gt;
&lt;p&gt;当你变得足够强大，就不会在意付出的代价。&lt;/p&gt;
</content:encoded>
      
      <comments>https://dynamicer.com/march/#disqus_thread</comments>
    </item>
    
    <item>
      <title>NOI OpenJudge 题库 7623 五户共井问题</title>
      <link>https://dynamicer.com/noi-openjudge-7623-well/</link>
      <guid>https://dynamicer.com/noi-openjudge-7623-well/</guid>
      <pubDate>Sun, 03 Jul 2016 16:00:00 GMT</pubDate>
      <description>
      
        &lt;h1 id=&quot;描述&quot;&gt;&lt;a href=&quot;#描述&quot; class=&quot;headerlink&quot; title=&quot;描述&quot;&gt;&lt;/a&gt;描述&lt;/h1&gt;&lt;p&gt;有A, B, C, D, E五家人共用一口井，已知井深不超过k米。A, B, C, D, E的绳长各不相同，而且厘米表示的绳长一定是整数。&lt;
      
      </description>
      
      <content:encoded>&lt;h1 id=&quot;描述&quot;&gt;&lt;a href=&quot;#描述&quot; class=&quot;headerlink&quot; title=&quot;描述&quot;&gt;&lt;/a&gt;描述&lt;/h1&gt;&lt;p&gt;有A, B, C, D, E五家人共用一口井，已知井深不超过k米。A, B, C, D, E的绳长各不相同，而且厘米表示的绳长一定是整数。&lt;br&gt;从井口放下绳索正好达到水面时：&lt;br&gt;(a)需要A家的绳n1条接上B家的绳1条&lt;br&gt;(b)需要B家的绳n2条接上C家的绳1条&lt;br&gt;(c)需要C家的绳n3条接上D家的绳1条&lt;br&gt;(d)需要D家的绳n4条接上E家的绳1条&lt;br&gt;(e)需要E家的绳n5条接上A家的绳1条&lt;br&gt;问井深和各家绳长。&lt;/p&gt;
&lt;h1 id=&quot;输入&quot;&gt;&lt;a href=&quot;#输入&quot; class=&quot;headerlink&quot; title=&quot;输入&quot;&gt;&lt;/a&gt;输入&lt;/h1&gt;&lt;p&gt;输入只有1行。包括空格分开的6个整数。&lt;br&gt;第一个整数k（1 &amp;lt;= k &amp;lt;= 20)，代表井的最大深度（单位：米）。&lt;br&gt;接下来是5个正整数n1, n2, n3, n4, n5。这五个整数的含义见上面的题目描述。&lt;/p&gt;
&lt;h1 id=&quot;输出&quot;&gt;&lt;a href=&quot;#输出&quot; class=&quot;headerlink&quot; title=&quot;输出&quot;&gt;&lt;/a&gt;输出&lt;/h1&gt;&lt;p&gt;输出只有1行。&lt;br&gt;如果找到了可行解，就输出6个整数，用空格分开，分别代表井的深度和A, B, C, D, E的绳长（单位都是厘米）。&lt;br&gt;如果有多组可行解，输出井的深度最小的那组解。&lt;br&gt;如果不存在可行解，就输出一行：&lt;br&gt;not found&lt;/p&gt;
&lt;h1 id=&quot;样例输入&quot;&gt;&lt;a href=&quot;#样例输入&quot; class=&quot;headerlink&quot; title=&quot;样例输入&quot;&gt;&lt;/a&gt;样例输入&lt;/h1&gt;&lt;figure class=&quot;highlight plain&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;10 2 3 4 5 6&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;h1 id=&quot;样例输出&quot;&gt;&lt;a href=&quot;#样例输出&quot; class=&quot;headerlink&quot; title=&quot;样例输出&quot;&gt;&lt;/a&gt;样例输出&lt;/h1&gt;&lt;figure class=&quot;highlight plain&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;721 265 191 148 129 76&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;h1 id=&quot;代码&quot;&gt;&lt;a href=&quot;#代码&quot; class=&quot;headerlink&quot; title=&quot;代码&quot;&gt;&lt;/a&gt;代码&lt;/h1&gt;&lt;figure class=&quot;highlight c++&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;2&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;3&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;4&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;5&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;6&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;7&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;8&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;9&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;10&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;11&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;12&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;13&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;14&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;15&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;16&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;17&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;18&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;19&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;20&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;21&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;22&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;23&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;24&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;25&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;26&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;27&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;28&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;29&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;30&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;31&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;32&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;33&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;&lt;span class=&quot;meta&quot;&gt;#&lt;span class=&quot;meta-keyword&quot;&gt;include&lt;/span&gt;&lt;span class=&quot;meta-string&quot;&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;namespace&lt;/span&gt; &lt;span class=&quot;built_in&quot;&gt;std&lt;/span&gt;;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span class=&quot;function&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;title&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;params&quot;&gt;()&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt; k;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt; n1,n2,n3,n4,n5;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;built_in&quot;&gt;cin&lt;/span&gt; &amp;gt;&amp;gt;k&amp;gt;&amp;gt;n1&amp;gt;&amp;gt;n2&amp;gt;&amp;gt;n3&amp;gt;&amp;gt;n4&amp;gt;&amp;gt;n5;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt; H,A,B,C,D,E;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt; ANSH=&lt;span class=&quot;number&quot;&gt;2147483647&lt;/span&gt;,ANSA,ANSB,ANSC,ANSD,ANSE;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;keyword&quot;&gt;for&lt;/span&gt;(A=&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;;A&amp;lt;=k*&lt;span class=&quot;number&quot;&gt;100&lt;/span&gt;;A++)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		&lt;span class=&quot;keyword&quot;&gt;for&lt;/span&gt;(B=&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;;B&amp;lt;=k*&lt;span class=&quot;number&quot;&gt;100&lt;/span&gt;;B++)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            H = A * n1 + B;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            C = H - B * n2;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            D = H - C * n3;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            E = H - D * n4;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt;((E * n5 + A != H) || H&amp;gt;k*&lt;span class=&quot;number&quot;&gt;100&lt;/span&gt; || C&amp;lt;=&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt; || D&amp;lt;=&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt; || E&amp;lt;=&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt; || A==B || A==C || A==D || A==E || B==C || B==D || B==E || C==D || C==E ||D==E)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            	&lt;span class=&quot;keyword&quot;&gt;continue&lt;/span&gt;;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt;(H&amp;lt;ANSH)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            &amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            	ANSH=H;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            	ANSA=A;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            	ANSB=B;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            	ANSC=C;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            	ANSD=D;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            	ANSE=E;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            &amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		&amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; (ANSH==&lt;span class=&quot;number&quot;&gt;2147483647&lt;/span&gt;)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		&lt;span class=&quot;built_in&quot;&gt;cout&lt;/span&gt; &amp;lt;&amp;lt;&lt;span class=&quot;string&quot;&gt;&quot;not found&quot;&lt;/span&gt;&amp;lt;&amp;lt;&lt;span class=&quot;built_in&quot;&gt;endl&lt;/span&gt;;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;built_in&quot;&gt;cout&lt;/span&gt; &amp;lt;&amp;lt;ANSH&amp;lt;&amp;lt;&lt;span class=&quot;string&quot;&gt;&quot; &quot;&lt;/span&gt;&amp;lt;&amp;lt;ANSA&amp;lt;&amp;lt;&lt;span class=&quot;string&quot;&gt;&quot; &quot;&lt;/span&gt;&amp;lt;&amp;lt;ANSB&amp;lt;&amp;lt;&lt;span class=&quot;string&quot;&gt;&quot; &quot;&lt;/span&gt;&amp;lt;&amp;lt;ANSC&amp;lt;&amp;lt;&lt;span class=&quot;string&quot;&gt;&quot; &quot;&lt;/span&gt;&amp;lt;&amp;lt;ANSD&amp;lt;&amp;lt;&lt;span class=&quot;string&quot;&gt;&quot; &quot;&lt;/span&gt;&amp;lt;&amp;lt;ANSE&amp;lt;&amp;lt;&lt;span class=&quot;built_in&quot;&gt;endl&lt;/span&gt;;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#125;&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;</content:encoded>
      
      <comments>https://dynamicer.com/noi-openjudge-7623-well/#disqus_thread</comments>
    </item>
    
    <item>
      <title>NOI OpenJudge 题库 8211 派</title>
      <link>https://dynamicer.com/noi-openjudge-8211-pie/</link>
      <guid>https://dynamicer.com/noi-openjudge-8211-pie/</guid>
      <pubDate>Sun, 03 Jul 2016 16:00:00 GMT</pubDate>
      <description>
      
        &lt;h1 id=&quot;描述&quot;&gt;&lt;a href=&quot;#描述&quot; class=&quot;headerlink&quot; title=&quot;描述&quot;&gt;&lt;/a&gt;描述&lt;/h1&gt;&lt;p&gt;我的生日要到了！根据习俗，我需要将一些派分给大家。我有N个不同口味、不同大小的派。有F个朋友会来参加我的派对，每个人会拿到一块派（必须一个派
      
      </description>
      
      <content:encoded>&lt;h1 id=&quot;描述&quot;&gt;&lt;a href=&quot;#描述&quot; class=&quot;headerlink&quot; title=&quot;描述&quot;&gt;&lt;/a&gt;描述&lt;/h1&gt;&lt;p&gt;我的生日要到了！根据习俗，我需要将一些派分给大家。我有N个不同口味、不同大小的派。有F个朋友会来参加我的派对，每个人会拿到一块派（必须一个派的一块，不能由几个派的小块拼成；可以是一整个派）。&lt;/p&gt;
&lt;p&gt;我的朋友们都特别小气，如果有人拿到更大的一块，就会开始抱怨。因此所有人拿到的派是同样大小的（但不需要是同样形状的），虽然这样有些派会被浪费，但总比搞砸整个派对好。当然，我也要给自己留一块，而这一块也要和其他人的同样大小。&lt;/p&gt;
&lt;p&gt;请问我们每个人拿到的派最大是多少？每个派都是一个高为1，半径不等的圆柱体。&lt;/p&gt;
&lt;h1 id=&quot;输入&quot;&gt;&lt;a href=&quot;#输入&quot; class=&quot;headerlink&quot; title=&quot;输入&quot;&gt;&lt;/a&gt;输入&lt;/h1&gt;&lt;p&gt;第一行包含两个正整数N和F，1 ≤ N, F ≤ 10 000，表示派的数量和朋友的数量。&lt;br&gt;第二行包含N个1到10000之间的整数，表示每个派的半径。&lt;/p&gt;
&lt;h1 id=&quot;输出&quot;&gt;&lt;a href=&quot;#输出&quot; class=&quot;headerlink&quot; title=&quot;输出&quot;&gt;&lt;/a&gt;输出&lt;/h1&gt;&lt;p&gt;输出每个人能得到的最大的派的体积，精确到小数点后三位。&lt;/p&gt;
&lt;h1 id=&quot;样例输入&quot;&gt;&lt;a href=&quot;#样例输入&quot; class=&quot;headerlink&quot; title=&quot;样例输入&quot;&gt;&lt;/a&gt;样例输入&lt;/h1&gt;&lt;figure class=&quot;highlight plain&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;2&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;3 3&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;4 3 3&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;h1 id=&quot;样例输出&quot;&gt;&lt;a href=&quot;#样例输出&quot; class=&quot;headerlink&quot; title=&quot;样例输出&quot;&gt;&lt;/a&gt;样例输出&lt;/h1&gt;&lt;figure class=&quot;highlight plain&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;25.133&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;h1 id=&quot;分析&quot;&gt;&lt;a href=&quot;#分析&quot; class=&quot;headerlink&quot; title=&quot;分析&quot;&gt;&lt;/a&gt;分析&lt;/h1&gt;&lt;p&gt;先由半径求体积，而后二分查找，区间为(0,最大的单个派的体积)。&lt;/p&gt;
&lt;p&gt;个人 WA 的原因：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;π 的值一开始取 3.141569 ，小数点后 6 位，这样的精度居然还不够，可以用 math 库中的反余弦函数 acos(-1.0)&lt;/li&gt;
&lt;li&gt;check 函数中表示当前能够分的块数的变量 sum 要用 int&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;代码&quot;&gt;&lt;a href=&quot;#代码&quot; class=&quot;headerlink&quot; title=&quot;代码&quot;&gt;&lt;/a&gt;代码&lt;/h1&gt;&lt;figure class=&quot;highlight&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;2&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;3&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;4&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;5&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;6&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;7&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;8&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;9&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;10&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;11&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;12&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;13&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;14&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;15&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;16&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;17&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;18&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;19&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;20&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;21&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;22&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;23&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;24&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;25&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;26&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;27&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;28&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;29&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;30&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;31&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;32&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;33&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;34&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;35&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;36&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;37&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;38&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;39&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;40&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;41&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;#define loop(i,n) for(int i=0;i&amp;lt;n;i++)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;#include &amp;lt;iostream&amp;gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;#include &amp;lt;cstdio&amp;gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;#include &amp;lt;cmath&amp;gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;using namespace std;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;int n,f;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;double a[10010];&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;const double PI=acos(-1.0);&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;int check(double x)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	int sum=0;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	loop(i,n)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		sum+=a[i]/x;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		if(sum&amp;gt;=f)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;			return 1;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	return 0;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;int main()&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	double left=0,right=0,mid;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	cin &amp;gt;&amp;gt;n&amp;gt;&amp;gt;f;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	f++;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	loop(i,n)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		cin &amp;gt;&amp;gt;a[i];&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		a[i]=a[i]*a[i]*PI;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		if(a[i]&amp;gt;right)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;			right=a[i];&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	while(right - left&amp;gt;0.000001)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		mid=(left+right)/2;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		if(check(mid))&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;			left=mid;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		else right=mid;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	printf(&quot;%.3lf\n&quot;,left);&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	return 0;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#125;&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;</content:encoded>
      
      <comments>https://dynamicer.com/noi-openjudge-8211-pie/#disqus_thread</comments>
    </item>
    
    <item>
      <title>20160702 自勉</title>
      <link>https://dynamicer.com/20160702-self-encouragement/</link>
      <guid>https://dynamicer.com/20160702-self-encouragement/</guid>
      <pubDate>Fri, 01 Jul 2016 16:00:00 GMT</pubDate>
      <description>
      
        &lt;ul&gt;
&lt;li&gt;&lt;p&gt;钻研那些最需要脑力的事。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;去 SJTU ，去见见更大的世界。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;高考可以重来；而 OI ，无论是 Happy Endding 还是 Sad Endding ，真的没有 One More Ch
      
      </description>
      
      <content:encoded>&lt;ul&gt;
&lt;li&gt;&lt;p&gt;钻研那些最需要脑力的事。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;去 SJTU ，去见见更大的世界。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;高考可以重来；而 OI ，无论是 Happy Endding 还是 Sad Endding ，真的没有 One More Chance 了。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;没有一场胜利的战役是按计划进行的，但是没有计划是打不赢胜仗的。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;向上吧，少年！&lt;/strong&gt;&lt;/p&gt;
</content:encoded>
      
      <comments>https://dynamicer.com/20160702-self-encouragement/#disqus_thread</comments>
    </item>
    
    <item>
      <title>NOI OpenJudge 题库 7914 分数线划定</title>
      <link>https://dynamicer.com/noi-openjudge-7914-score/</link>
      <guid>https://dynamicer.com/noi-openjudge-7914-score/</guid>
      <pubDate>Fri, 01 Jul 2016 16:00:00 GMT</pubDate>
      <description>
      
        &lt;h1 id=&quot;描述&quot;&gt;&lt;a href=&quot;#描述&quot; class=&quot;headerlink&quot; title=&quot;描述&quot;&gt;&lt;/a&gt;描述&lt;/h1&gt;&lt;p&gt;世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才，A市对所有报名的选手进行了笔试，笔试分数达到面试分数线的选手方可进入
      
      </description>
      
      <content:encoded>&lt;h1 id=&quot;描述&quot;&gt;&lt;a href=&quot;#描述&quot; class=&quot;headerlink&quot; title=&quot;描述&quot;&gt;&lt;/a&gt;描述&lt;/h1&gt;&lt;p&gt;世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才，A市对所有报名的选手进行了笔试，笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%划定，即如果计划录取m名志愿者，则面试分数线为排名第m*150%（向下取整）名的选手的分数，而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。&lt;/p&gt;
&lt;p&gt;现在就请你编写程序划定面试分数线，并输出所有进入面试的选手的报名号和笔试成绩。&lt;/p&gt;
&lt;h1 id=&quot;输入&quot;&gt;&lt;a href=&quot;#输入&quot; class=&quot;headerlink&quot; title=&quot;输入&quot;&gt;&lt;/a&gt;输入&lt;/h1&gt;&lt;p&gt;第一行，两个整数n，m（5 ≤ n ≤ 5000，3 ≤ m ≤ n），中间用一个空格隔开，其中n 表示报名参加笔试的选手总数，m 表示计划录取的志愿者人数。输入数据保证m*150%向下取整后小于等于n。&lt;br&gt;第二行到第 n+1 行，每行包括两个整数，中间用一个空格隔开，分别是选手的报名号k（1000 ≤ k ≤ 9999）和该选手的笔试成绩s（1 ≤ s ≤ 100）。数据保证选手的报名号各不相同。&lt;/p&gt;
&lt;h1 id=&quot;输出&quot;&gt;&lt;a href=&quot;#输出&quot; class=&quot;headerlink&quot; title=&quot;输出&quot;&gt;&lt;/a&gt;输出&lt;/h1&gt;&lt;p&gt;第一行，有两个整数，用一个空格隔开，第一个整数表示面试分数线；第二个整数为进入面试的选手的实际人数。&lt;br&gt;从第二行开始，每行包含两个整数，中间用一个空格隔开，分别表示进入面试的选手的报名号和笔试成绩，按照笔试成绩从高到低输出，如果成绩相同，则按报名号由小到大的顺序输出。&lt;/p&gt;
&lt;h1 id=&quot;样例输入&quot;&gt;&lt;a href=&quot;#样例输入&quot; class=&quot;headerlink&quot; title=&quot;样例输入&quot;&gt;&lt;/a&gt;样例输入&lt;/h1&gt;&lt;figure class=&quot;highlight plain&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;2&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;3&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;4&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;5&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;6&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;7&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;6 3&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;1000 90&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;3239 88&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;2390 95&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;7231 84&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;1005 95&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;1001 88&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;h1 id=&quot;样例输出&quot;&gt;&lt;a href=&quot;#样例输出&quot; class=&quot;headerlink&quot; title=&quot;样例输出&quot;&gt;&lt;/a&gt;样例输出&lt;/h1&gt;&lt;figure class=&quot;highlight plain&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;2&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;3&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;4&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;5&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;6&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;88 5&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;1005 95&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;2390 95&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;1000 90&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;1001 88&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;3239 88&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;h1 id=&quot;提示&quot;&gt;&lt;a href=&quot;#提示&quot; class=&quot;headerlink&quot; title=&quot;提示&quot;&gt;&lt;/a&gt;提示&lt;/h1&gt;&lt;p&gt;样例说明：m&lt;em&gt;150% = 3&lt;/em&gt;150% = 4.5，向下取整后为4。保证4个人进入面试的分数线为88，但因为88有重分，所以所有成绩大于等于88的选手都可以进入面试，故最终有5个人进入面试。&lt;/p&gt;
&lt;h1 id=&quot;分析&quot;&gt;&lt;a href=&quot;#分析&quot; class=&quot;headerlink&quot; title=&quot;分析&quot;&gt;&lt;/a&gt;分析&lt;/h1&gt;&lt;p&gt;sort() 函数很强大，需要注意的是 cmp 的写法。&lt;/p&gt;
&lt;h1 id=&quot;代码&quot;&gt;&lt;a href=&quot;#代码&quot; class=&quot;headerlink&quot; title=&quot;代码&quot;&gt;&lt;/a&gt;代码&lt;/h1&gt;&lt;figure class=&quot;highlight&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;2&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;3&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;4&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;5&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;6&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;7&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;8&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;9&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;10&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;11&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;12&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;13&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;14&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;15&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;16&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;17&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;18&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;19&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;20&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;21&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;22&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;23&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;24&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;25&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;26&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;27&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;28&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;29&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;30&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;31&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;32&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;33&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;34&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;35&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;36&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;37&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;38&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;39&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;40&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;41&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;42&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;#define loop(i,n) for(int i=0;i&amp;lt;n;i++)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;#include&amp;lt;iostream&amp;gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;#include&amp;lt;algorithm&amp;gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;using namespace std;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;struct node&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    int number,score;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#125;a[10010];&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;bool cmp(node a,node b)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	if(a.score==b.score)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		return a.number&amp;lt;b.number;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	return a.score&amp;gt;b.score;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;int main()&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	int n,m;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	cin &amp;gt;&amp;gt;n&amp;gt;&amp;gt;m;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	m=int(m*1.5);&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	loop(i,10010)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		a[i].score=0;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	loop(i,n)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		cin &amp;gt;&amp;gt;a[i].number&amp;gt;&amp;gt;a[i].score;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	sort(a,a+10010,cmp);&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	int j=m;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	int count=m;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	while(a[j].score==a[m-1].score)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		count++;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		j++;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	cout &amp;lt;&amp;lt;a[m-1].score&amp;lt;&amp;lt;&quot; &quot;&amp;lt;&amp;lt;count&amp;lt;&amp;lt;endl;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	loop(i,m)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		cout &amp;lt;&amp;lt;a[i].number&amp;lt;&amp;lt;&quot; &quot;&amp;lt;&amp;lt;a[i].score&amp;lt;&amp;lt;endl;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	j=m;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	while(a[j].score==a[m-1].score)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		cout &amp;lt;&amp;lt;a[j].number&amp;lt;&amp;lt;&quot; &quot;&amp;lt;&amp;lt;a[j].score&amp;lt;&amp;lt;endl;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		j++;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	return 0;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#125;&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;</content:encoded>
      
      <comments>https://dynamicer.com/noi-openjudge-7914-score/#disqus_thread</comments>
    </item>
    
    <item>
      <title>NOI OpenJudge 题库 1818 红与黑</title>
      <link>https://dynamicer.com/noi-openjudge-1818-red-and-black/</link>
      <guid>https://dynamicer.com/noi-openjudge-1818-red-and-black/</guid>
      <pubDate>Sat, 17 Oct 2015 16:00:00 GMT</pubDate>
      <description>
      
        &lt;h1 id=&quot;描述&quot;&gt;&lt;a href=&quot;#描述&quot; class=&quot;headerlink&quot; title=&quot;描述&quot;&gt;&lt;/a&gt;描述&lt;/h1&gt;&lt;p&gt;有一间长方形的房子，地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上，只能向相邻的黑色瓷砖移动。请写一个程序，计算你总共能
      
      </description>
      
      <content:encoded>&lt;h1 id=&quot;描述&quot;&gt;&lt;a href=&quot;#描述&quot; class=&quot;headerlink&quot; title=&quot;描述&quot;&gt;&lt;/a&gt;描述&lt;/h1&gt;&lt;p&gt;有一间长方形的房子，地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上，只能向相邻的黑色瓷砖移动。请写一个程序，计算你总共能够到达多少块黑色的瓷砖。&lt;/p&gt;
&lt;h1 id=&quot;输入&quot;&gt;&lt;a href=&quot;#输入&quot; class=&quot;headerlink&quot; title=&quot;输入&quot;&gt;&lt;/a&gt;输入&lt;/h1&gt;&lt;p&gt;包括多个数据集合。每个数据集合的第一行是两个整数W和H，分别表示x方向和y方向瓷砖的数量。W和H都不超过20。在接下来的H行中，每行包括W个字符。每个字符表示一块瓷砖的颜色，规则如下&lt;br&gt;1）‘.’：黑色的瓷砖；&lt;br&gt;2）‘#’：白色的瓷砖；&lt;br&gt;3）‘@’：黑色的瓷砖，并且你站在这块瓷砖上。该字符在每个数据集合中唯一出现一次。&lt;br&gt;当在一行中读入的是两个零时，表示输入结束。&lt;/p&gt;
&lt;h1 id=&quot;输出&quot;&gt;&lt;a href=&quot;#输出&quot; class=&quot;headerlink&quot; title=&quot;输出&quot;&gt;&lt;/a&gt;输出&lt;/h1&gt;&lt;p&gt;对每个数据集合，分别输出一行，显示你从初始位置出发能到达的瓷砖数(记数时包括初始位置的瓷砖)。&lt;/p&gt;
&lt;h1 id=&quot;样例输入&quot;&gt;&lt;a href=&quot;#样例输入&quot; class=&quot;headerlink&quot; title=&quot;样例输入&quot;&gt;&lt;/a&gt;样例输入&lt;/h1&gt;&lt;figure class=&quot;highlight plain&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;2&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;3&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;4&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;5&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;6&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;7&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;8&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;9&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;10&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;11&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;6 9&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;....#.&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;.....#&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;......&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;......&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;......&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;......&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;......&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;#@...#&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;.#..#.&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;0 0&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;h1 id=&quot;样例输出&quot;&gt;&lt;a href=&quot;#样例输出&quot; class=&quot;headerlink&quot; title=&quot;样例输出&quot;&gt;&lt;/a&gt;样例输出&lt;/h1&gt;&lt;figure class=&quot;highlight plain&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;45&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;h1 id=&quot;分析&quot;&gt;&lt;a href=&quot;#分析&quot; class=&quot;headerlink&quot; title=&quot;分析&quot;&gt;&lt;/a&gt;分析&lt;/h1&gt;&lt;p&gt;深搜入门题，开始以为是求最大联通块，仔细看发现只要求源点所在的连通块大小。居然没有数据范围，于是我就开了 1100*1100 水过了。另外有一个注意点 -&amp;gt; 给的 W / H 是 列 / 行 ，而正常题目是 行 / 列，循环需要把 W / H 倒过来。&lt;/p&gt;
&lt;p&gt;似乎也可以用宽搜写，有空填坑。&lt;/p&gt;
&lt;h1 id=&quot;代码&quot;&gt;&lt;a href=&quot;#代码&quot; class=&quot;headerlink&quot; title=&quot;代码&quot;&gt;&lt;/a&gt;代码&lt;/h1&gt;&lt;figure class=&quot;highlight&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;2&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;3&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;4&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;5&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;6&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;7&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;8&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;9&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;10&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;11&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;12&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;13&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;14&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;15&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;16&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;17&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;18&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;19&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;20&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;21&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;22&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;23&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;24&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;25&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;26&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;27&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;28&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;29&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;30&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;31&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;32&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;33&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;34&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;35&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;36&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;37&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;38&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;39&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;40&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;41&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;42&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;43&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;44&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;45&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;46&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;47&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;48&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;49&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;50&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;51&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;52&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;53&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;54&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;55&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;56&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;57&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;58&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;59&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;60&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;61&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;#define loop(i,n) for(int i=0;i&amp;lt;n;i++)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;#include&amp;lt;iostream&amp;gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;#include&amp;lt;cstdio&amp;gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;#include&amp;lt;cstring&amp;gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;using namespace std;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;int w,h;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;int ans;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;int dx[4]=&amp;#123;0,0,1,-1&amp;#125;;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;int dy[4]=&amp;#123;1,-1,0,0&amp;#125;;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;char tile[1100][1100];&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;int map[1100][1100];&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;bool flag[1100][1100];&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;struct node&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    int x,y;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#125;start;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;bool check(int x,int y)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    if(!flag[x][y] &amp;amp;&amp;amp; map[x][y] &amp;amp;&amp;amp; x&amp;gt;=0 &amp;amp;&amp;amp; x&amp;lt;h &amp;amp;&amp;amp; y&amp;gt;=0 &amp;amp;&amp;amp; y&amp;lt;w)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;        return 1;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    return 0;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;void dfs(int x,int y)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    ans++;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    flag[x][y]=1;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    loop(i,4)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    &amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;        int curx=x+dx[i],cury=y+dy[i];&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;        if(check(curx,cury))&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            dfs(curx,cury);&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    &amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;int main()&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    while(scanf(&quot;%d%d&quot;,&amp;amp;w,&amp;amp;h)==2 &amp;amp;&amp;amp; w &amp;amp;&amp;amp; h)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    &amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;        ans=0;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;        memset(map,0,sizeof(map));&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;        memset(flag,0,sizeof(flag));&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;        loop(i,h)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            loop(j,w)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            &amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;                cin &amp;gt;&amp;gt;tile[i][j];&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;                if(tile[i][j]==&#39;.&#39;)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;                    map[i][j]=1;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;                if(tile[i][j]==&#39;#&#39;)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;                    map[i][j]=0;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;                if(tile[i][j]==&#39;@&#39;)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;                &amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;                    map[i][j]=1;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;                    flag[i][j]=1;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;                    start.x=i;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;                    start.y=j;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;                &amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            &amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;        dfs(start.x,start.y);&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;        cout &amp;lt;&amp;lt;ans&amp;lt;&amp;lt;endl;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    &amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    return 0;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#125;&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;</content:encoded>
      
      <comments>https://dynamicer.com/noi-openjudge-1818-red-and-black/#disqus_thread</comments>
    </item>
    
    <item>
      <title>NOI OpenJudge 题库 6264 走出迷宫</title>
      <link>https://dynamicer.com/noi-openjudge-6264-maze/</link>
      <guid>https://dynamicer.com/noi-openjudge-6264-maze/</guid>
      <pubDate>Sat, 17 Oct 2015 16:00:00 GMT</pubDate>
      <description>
      
        &lt;h1 id=&quot;描述&quot;&gt;&lt;a href=&quot;#描述&quot; class=&quot;headerlink&quot; title=&quot;描述&quot;&gt;&lt;/a&gt;描述&lt;/h1&gt;&lt;p&gt;当你站在一个迷宫里的时候，往往会被错综复杂的道路弄得失去方向感，如果你能得到迷宫地图，事情就会变得非常简单。&lt;br&gt;假设你已经得到了一个n*
      
      </description>
      
      <content:encoded>&lt;h1 id=&quot;描述&quot;&gt;&lt;a href=&quot;#描述&quot; class=&quot;headerlink&quot; title=&quot;描述&quot;&gt;&lt;/a&gt;描述&lt;/h1&gt;&lt;p&gt;当你站在一个迷宫里的时候，往往会被错综复杂的道路弄得失去方向感，如果你能得到迷宫地图，事情就会变得非常简单。&lt;br&gt;假设你已经得到了一个n*m的迷宫的图纸，请你找出从起点到出口的最短路。&lt;/p&gt;
&lt;h1 id=&quot;输入&quot;&gt;&lt;a href=&quot;#输入&quot; class=&quot;headerlink&quot; title=&quot;输入&quot;&gt;&lt;/a&gt;输入&lt;/h1&gt;&lt;p&gt;第一行是两个整数n和m(1&amp;lt;=n,m&amp;lt;=100)，表示迷宫的行数和列数。&lt;br&gt;接下来n行，每行一个长为m的字符串，表示整个迷宫的布局。字符’.’表示空地，’#’表示墙，’S’表示起点,’T’表示出口。&lt;/p&gt;
&lt;h1 id=&quot;输出&quot;&gt;&lt;a href=&quot;#输出&quot; class=&quot;headerlink&quot; title=&quot;输出&quot;&gt;&lt;/a&gt;输出&lt;/h1&gt;&lt;p&gt;输出从起点到出口最少需要走的步数。&lt;/p&gt;
&lt;h1 id=&quot;样例输入&quot;&gt;&lt;a href=&quot;#样例输入&quot; class=&quot;headerlink&quot; title=&quot;样例输入&quot;&gt;&lt;/a&gt;样例输入&lt;/h1&gt;&lt;figure class=&quot;highlight plain&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;2&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;3&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;4&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;3 3&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;S#T&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;.#.&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;...&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;h1 id=&quot;样例输出&quot;&gt;&lt;a href=&quot;#样例输出&quot; class=&quot;headerlink&quot; title=&quot;样例输出&quot;&gt;&lt;/a&gt;样例输出&lt;/h1&gt;&lt;figure class=&quot;highlight plain&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;6&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;h1 id=&quot;分析&quot;&gt;&lt;a href=&quot;#分析&quot; class=&quot;headerlink&quot; title=&quot;分析&quot;&gt;&lt;/a&gt;分析&lt;/h1&gt;&lt;p&gt;最近在刷 OpenJudge ，怎么说也得拿个 200 分换省三呢。&lt;/p&gt;
&lt;p&gt;宽搜入门题，试了一把 STL 队列，写完觉得链表、栈、队列这种东西还是自己实现算了 …… 这些用 STL 写实在太花哨，也并没有方便太多，但是 STL 的优先队列、堆倒还是很有用的。&lt;/p&gt;
&lt;h1 id=&quot;代码&quot;&gt;&lt;a href=&quot;#代码&quot; class=&quot;headerlink&quot; title=&quot;代码&quot;&gt;&lt;/a&gt;代码&lt;/h1&gt;&lt;figure class=&quot;highlight&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;2&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;3&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;4&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;5&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;6&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;7&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;8&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;9&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;10&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;11&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;12&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;13&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;14&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;15&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;16&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;17&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;18&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;19&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;20&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;21&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;22&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;23&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;24&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;25&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;26&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;27&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;28&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;29&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;30&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;31&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;32&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;33&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;34&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;35&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;36&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;37&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;38&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;39&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;40&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;41&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;42&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;43&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;44&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;45&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;46&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;47&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;48&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;49&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;50&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;51&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;52&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;53&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;54&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;55&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;56&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;57&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;58&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;59&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;60&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;61&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;62&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;63&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;64&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;65&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;66&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;67&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;68&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;69&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;70&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;71&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;72&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;73&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;74&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;75&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;76&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;77&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;78&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;#define loop(i,n) for(int i=0;i&amp;lt;n;i++)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;const int INF=2147483647;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;#include&amp;lt;iostream&amp;gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;#include&amp;lt;cstring&amp;gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;#include&amp;lt;queue&amp;gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;using namespace std;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;char maze[110][110];&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;int dis[110][110];&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;bool map[110][110];&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;int dx[4]=&amp;#123;0,0,1,-1&amp;#125;;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;int dy[4]=&amp;#123;1,-1,0,0&amp;#125;;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;typedef pair&amp;lt;int,int&amp;gt; matrix;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;matrix start,end;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;queue&amp;lt;matrix&amp;gt; q;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;int n,m;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;void init()&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    memset(map,0,sizeof(map));&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    loop(i,110)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;        loop(j,110)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            dis[i][j]=INF;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    cin &amp;gt;&amp;gt;n&amp;gt;&amp;gt;m;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    loop(i,n)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;        loop(j,m)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;        &amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            cin &amp;gt;&amp;gt;maze[i][j];&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            if(maze[i][j]==&#39;S&#39;)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            &amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;                start.first=i;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;                start.second=j;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;                map[i][j]=0;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            &amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            if(maze[i][j]==&#39;T&#39;)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            &amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;                end.first=i;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;                end.second=j;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;                map[i][j]=0;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            &amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            if(maze[i][j]==&#39;.&#39;)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;                map[i][j]=0;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            if(maze[i][j]==&#39;#&#39;)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;                map[i][j]=1;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;        &amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;int check(int x,int y)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    if(dis[x][y]==INF &amp;amp;&amp;amp; !map[x][y] &amp;amp;&amp;amp; x&amp;gt;=0 &amp;amp;&amp;amp; x&amp;lt;n &amp;amp;&amp;amp; y&amp;gt;=0 &amp;amp;&amp;amp; y&amp;lt;m)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;        return 1;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    return 0;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;int bfs()&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    dis[start.first][start.second]=0;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    q.push(matrix(start.first,start.second));&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    while(q.size())&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    &amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;        matrix tmp=q.front();&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;        q.pop();&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;        if(tmp.first==end.first &amp;amp;&amp;amp; tmp.second==end.second)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            break;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;        loop(i,4)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;        &amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            int curx=tmp.first+dx[i],cury=tmp.second+dy[i];&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            if(check(curx,cury))&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            &amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;                q.push(matrix(curx,cury));&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;                dis[curx][cury]=dis[tmp.first][tmp.second]+1;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            &amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;        &amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    &amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    return dis[end.first][end.second];&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;int main()&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    init();&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    cout &amp;lt;&amp;lt;bfs()&amp;lt;&amp;lt;endl;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    return 0;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#125;&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;</content:encoded>
      
      <comments>https://dynamicer.com/noi-openjudge-6264-maze/#disqus_thread</comments>
    </item>
    
    <item>
      <title>递推、搜索、贪心和动态规划的区别</title>
      <link>https://dynamicer.com/distinction-between-recurrence-search-and-greedy-and-dynamic-programming/</link>
      <guid>https://dynamicer.com/distinction-between-recurrence-search-and-greedy-and-dynamic-programming/</guid>
      <pubDate>Thu, 10 Sep 2015 16:00:00 GMT</pubDate>
      <description>
      
        &lt;p&gt;递推：每个阶段只有一个状态；&lt;/p&gt;
&lt;p&gt;搜索：每个阶段的最优状态是由之前所有阶段的状态的组合得到的；&lt;/p&gt;
&lt;p&gt;贪心：每个阶段的最优状态都是由上一个阶段的最优状态得到的；&lt;/p&gt;
&lt;p&gt;动态规划：每个阶段的最优状态可以&lt;strong&gt;从之前某个阶段的某个或某些状态直
      
      </description>
      
      <content:encoded>&lt;p&gt;递推：每个阶段只有一个状态；&lt;/p&gt;
&lt;p&gt;搜索：每个阶段的最优状态是由之前所有阶段的状态的组合得到的；&lt;/p&gt;
&lt;p&gt;贪心：每个阶段的最优状态都是由上一个阶段的最优状态得到的；&lt;/p&gt;
&lt;p&gt;动态规划：每个阶段的最优状态可以&lt;strong&gt;从之前某个阶段的某个或某些状态直接得到&lt;/strong&gt;（最优子结构），&lt;strong&gt;而不管之前这个状态是如何得到的&lt;/strong&gt;（无后效性）。&lt;/p&gt;
</content:encoded>
      
      <comments>https://dynamicer.com/distinction-between-recurrence-search-and-greedy-and-dynamic-programming/#disqus_thread</comments>
    </item>
    
    <item>
      <title>收入计划</title>
      <link>https://dynamicer.com/matrix67-income-plan/</link>
      <guid>https://dynamicer.com/matrix67-income-plan/</guid>
      <pubDate>Wed, 29 Jul 2015 16:00:00 GMT</pubDate>
      <description>
      
        &lt;h1 id=&quot;问题描述&quot;&gt;&lt;a href=&quot;#问题描述&quot; class=&quot;headerlink&quot; title=&quot;问题描述&quot;&gt;&lt;/a&gt;问题描述&lt;/h1&gt;&lt;p&gt;高考结束后，同学们大都找到了一份临时工作，渴望挣得一些零用钱。从今天起，Matrix67将连续工作N天(1&amp;lt;=N&amp;lt
      
      </description>
      
      <content:encoded>&lt;h1 id=&quot;问题描述&quot;&gt;&lt;a href=&quot;#问题描述&quot; class=&quot;headerlink&quot; title=&quot;问题描述&quot;&gt;&lt;/a&gt;问题描述&lt;/h1&gt;&lt;p&gt;高考结束后，同学们大都找到了一份临时工作，渴望挣得一些零用钱。从今天起，Matrix67将连续工作N天(1&amp;lt;=N&amp;lt;=100 000)。每一天末他可以领取当天及前面若干天里没有领取的工资，但他总共只有M(1&amp;lt;=M&amp;lt;=N)次领取工资的机会。Matrix67已经知道了在接下来的这N天里每一天他可以赚多少钱。为了避免自己滥用零花钱，他希望知道如何安排领取工资的时间才能使得领到工资最多的那一次工资数额最小。注意Matrix67必须恰好领工资M次，且需要将所有的工资全部领走（即最后一天末需要领一次工资）。&lt;/p&gt;
&lt;h1 id=&quot;输入&quot;&gt;&lt;a href=&quot;#输入&quot; class=&quot;headerlink&quot; title=&quot;输入&quot;&gt;&lt;/a&gt;输入&lt;/h1&gt;&lt;p&gt;第一行输入两个用空格隔开的正整数N和M&lt;br&gt;以下N行每行一个不超过10000正整数，依次表示每一天的薪水。&lt;/p&gt;
&lt;h1 id=&quot;输出&quot;&gt;&lt;a href=&quot;#输出&quot; class=&quot;headerlink&quot; title=&quot;输出&quot;&gt;&lt;/a&gt;输出&lt;/h1&gt;&lt;p&gt;输出领取到的工资的最大值最小是多少。&lt;/p&gt;
&lt;h1 id=&quot;样例输入&quot;&gt;&lt;a href=&quot;#样例输入&quot; class=&quot;headerlink&quot; title=&quot;样例输入&quot;&gt;&lt;/a&gt;样例输入&lt;/h1&gt;&lt;figure class=&quot;highlight plain&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;2&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;3&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;4&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;5&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;6&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;7&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;8&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;7 5&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;100&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;400&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;300&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;100&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;500&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;101&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;400&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;h1 id=&quot;样例输出&quot;&gt;&lt;a href=&quot;#样例输出&quot; class=&quot;headerlink&quot; title=&quot;样例输出&quot;&gt;&lt;/a&gt;样例输出&lt;/h1&gt;&lt;figure class=&quot;highlight plain&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;500&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;h1 id=&quot;样例说明&quot;&gt;&lt;a href=&quot;#样例说明&quot; class=&quot;headerlink&quot; title=&quot;样例说明&quot;&gt;&lt;/a&gt;样例说明&lt;/h1&gt;&lt;p&gt;采取下面的方案可以使每次领到的工资不会多于500。这个答案不能再少了。&lt;br&gt;100 400   300 100   500   101   400   每一天的薪水&lt;br&gt;&amp;lt;——1 &amp;lt;——-2 &amp;lt;—3 &amp;lt;—4 &amp;lt;—5  领取工资的时间&lt;br&gt;500       400     500   101   400   领取到的工资&lt;/p&gt;
&lt;h1 id=&quot;分析&quot;&gt;&lt;a href=&quot;#分析&quot; class=&quot;headerlink&quot; title=&quot;分析&quot;&gt;&lt;/a&gt;分析&lt;/h1&gt;&lt;p&gt;最小值最大/最大值最小类问题 -&amp;gt; 二分答案典型问题&lt;/p&gt;
&lt;p&gt;二分答案模板，对于 l 与 r 的理解，不要仅仅用「二分法解方程」的思想理解，此类题 &lt;strong&gt;可把 l 看作不可行域， r 看作可行域&lt;/strong&gt; 。&lt;/p&gt;
&lt;p&gt;此题需要二分工资最大值（单次领取的最高工资必定在 &lt;strong&gt;[单日工资最大值,全部工资]&lt;/strong&gt; 的区间内）利用贪心（从左到右能取就取），判断是否可行。&lt;/p&gt;
&lt;h2 id=&quot;二分答案模板&quot;&gt;&lt;a href=&quot;#二分答案模板&quot; class=&quot;headerlink&quot; title=&quot;二分答案模板&quot;&gt;&lt;/a&gt;二分答案模板&lt;/h2&gt;&lt;figure class=&quot;highlight c++&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;2&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;3&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;4&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;5&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;6&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;7&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;8&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;9&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;10&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;while&lt;/span&gt;(l&amp;lt;=r)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt; mid=(l+r)&amp;gt;&amp;gt;&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt;(check(mid))&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		ans=mid;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		r=mid&lt;span class=&quot;number&quot;&gt;-1&lt;/span&gt;;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;keyword&quot;&gt;else&lt;/span&gt; l=mid+&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#125;&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;h1 id=&quot;代码&quot;&gt;&lt;a href=&quot;#代码&quot; class=&quot;headerlink&quot; title=&quot;代码&quot;&gt;&lt;/a&gt;代码&lt;/h1&gt;&lt;figure class=&quot;highlight c++&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;2&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;3&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;4&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;5&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;6&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;7&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;8&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;9&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;10&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;11&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;12&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;13&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;14&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;15&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;16&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;17&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;18&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;19&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;20&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;21&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;22&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;23&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;24&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;25&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;26&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;27&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;28&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;29&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;30&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;31&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;32&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;33&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;34&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;35&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;36&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;37&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;38&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;39&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;40&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;41&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;42&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;43&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;44&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;45&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;&lt;span class=&quot;meta&quot;&gt;# &lt;span class=&quot;meta-keyword&quot;&gt;include&lt;/span&gt;&lt;span class=&quot;meta-string&quot;&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;namespace&lt;/span&gt; &lt;span class=&quot;built_in&quot;&gt;std&lt;/span&gt;;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt; n,m,sum=&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;,maximum=&lt;span class=&quot;number&quot;&gt;-1&lt;/span&gt;,ans;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt; a[&lt;span class=&quot;number&quot;&gt;101000&lt;/span&gt;];&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span class=&quot;function&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;title&quot;&gt;check&lt;/span&gt;&lt;span class=&quot;params&quot;&gt;(&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt; x)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt; i;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt; times=&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;,tot=&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;keyword&quot;&gt;for&lt;/span&gt;(i=&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;;i&amp;lt;=n;i++)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		tot=tot+a[i];&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		&lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt;(tot&amp;gt;x)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;			tot=a[i];&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;			times++;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		&amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		&lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt;(times+&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;&amp;gt;m)&lt;span class=&quot;comment&quot;&gt;//判断是否恰好领 m 次，注意是 times+1&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;			&lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span class=&quot;function&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;title&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;params&quot;&gt;()&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt; i;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;built_in&quot;&gt;cin&lt;/span&gt; &amp;gt;&amp;gt;n&amp;gt;&amp;gt;m;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;keyword&quot;&gt;for&lt;/span&gt;(i=&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;;i&amp;lt;=n;i++)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		&lt;span class=&quot;built_in&quot;&gt;cin&lt;/span&gt; &amp;gt;&amp;gt;a[i];&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		maximum=max(maximum,a[i]);&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		sum=sum+a[i];&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt; l=maximum,r=sum;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;keyword&quot;&gt;while&lt;/span&gt;(l&amp;lt;=r)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt; mid=(l+r)&amp;gt;&amp;gt;&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		&lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt;(check(mid))&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;			ans=mid;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;			r=mid&lt;span class=&quot;number&quot;&gt;-1&lt;/span&gt;;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		&amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		&lt;span class=&quot;keyword&quot;&gt;else&lt;/span&gt; l=mid+&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;built_in&quot;&gt;cout&lt;/span&gt; &amp;lt;&amp;lt;ans&amp;lt;&amp;lt;&lt;span class=&quot;built_in&quot;&gt;endl&lt;/span&gt;;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#125;&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;</content:encoded>
      
      <comments>https://dynamicer.com/matrix67-income-plan/#disqus_thread</comments>
    </item>
    
    <item>
      <title>最短路径问题</title>
      <link>https://dynamicer.com/shortest-path-problem/</link>
      <guid>https://dynamicer.com/shortest-path-problem/</guid>
      <pubDate>Wed, 29 Jul 2015 16:00:00 GMT</pubDate>
      <description>
      
        &lt;h1 id=&quot;问题描述&quot;&gt;&lt;a href=&quot;#问题描述&quot; class=&quot;headerlink&quot; title=&quot;问题描述&quot;&gt;&lt;/a&gt;问题描述&lt;/h1&gt;&lt;p&gt;平面上有 n 个点（n&amp;lt;=100），每个点的坐标均在-10000~10000 之间。其中的一些点之间有连线 。若有连线
      
      </description>
      
      <content:encoded>&lt;h1 id=&quot;问题描述&quot;&gt;&lt;a href=&quot;#问题描述&quot; class=&quot;headerlink&quot; title=&quot;问题描述&quot;&gt;&lt;/a&gt;问题描述&lt;/h1&gt;&lt;p&gt;平面上有 n 个点（n&amp;lt;=100），每个点的坐标均在-10000~10000 之间。其中的一些点之间有连线 。若有连线，则表示可从一个点到达另一个点，即两点间有通路，通路的距离为两点间的直线距离 。现在的任务是找出从一点到另一点之间的最短路径 。&lt;/p&gt;
&lt;h1 id=&quot;输入&quot;&gt;&lt;a href=&quot;#输入&quot; class=&quot;headerlink&quot; title=&quot;输入&quot;&gt;&lt;/a&gt;输入&lt;/h1&gt;&lt;p&gt;输入共 n+m+3 行，其中:&lt;br&gt;第一行为整数 n。&lt;br&gt;第 2 行到第 n+1 行    （共 n 行 ），每行两个整数 x 和 y，描述了一个点的坐标。&lt;br&gt;第 n+2 行为一个整数 m，表示图中连线 的个数。&lt;br&gt;此后的 m 行(m&amp;lt;=1000)，每行描述一条连线，由两个整数 i和 j 组成，表示第 i个点和第 j 个点之&lt;br&gt;间有连线 。&lt;br&gt;最后一行 ：两个整数 s 和 t，分别表示源点和目标点。&lt;/p&gt;
&lt;h1 id=&quot;输出&quot;&gt;&lt;a href=&quot;#输出&quot; class=&quot;headerlink&quot; title=&quot;输出&quot;&gt;&lt;/a&gt;输出&lt;/h1&gt;&lt;p&gt;输出仅一行，一个实数（保留两位小数），表示从 s 到 t 的最短路径长度 。&lt;/p&gt;
&lt;h1 id=&quot;样例输入&quot;&gt;&lt;a href=&quot;#样例输入&quot; class=&quot;headerlink&quot; title=&quot;样例输入&quot;&gt;&lt;/a&gt;样例输入&lt;/h1&gt;&lt;figure class=&quot;highlight plain&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;5 0 0 2 0 2 2 0 2 3 1 5 1 2 1 3 1 4 2 5 3 5 1 5&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;h1 id=&quot;样例输出&quot;&gt;&lt;a href=&quot;#样例输出&quot; class=&quot;headerlink&quot; title=&quot;样例输出&quot;&gt;&lt;/a&gt;样例输出&lt;/h1&gt;&lt;figure class=&quot;highlight plain&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;3.41&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;h1 id=&quot;分析&quot;&gt;&lt;a href=&quot;#分析&quot; class=&quot;headerlink&quot; title=&quot;分析&quot;&gt;&lt;/a&gt;分析&lt;/h1&gt;&lt;p&gt;顶点数较小，不加优化的 Dijkstra 即可。&lt;/p&gt;
&lt;h1 id=&quot;代码&quot;&gt;&lt;a href=&quot;#代码&quot; class=&quot;headerlink&quot; title=&quot;代码&quot;&gt;&lt;/a&gt;代码&lt;/h1&gt;&lt;figure class=&quot;highlight c++&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;2&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;3&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;4&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;5&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;6&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;7&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;8&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;9&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;10&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;11&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;12&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;13&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;14&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;15&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;16&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;17&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;18&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;19&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;20&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;21&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;22&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;23&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;24&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;25&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;26&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;27&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;28&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;29&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;30&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;31&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;32&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;33&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;34&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;35&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;36&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;37&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;38&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;39&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;40&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;41&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;42&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;43&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;44&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;45&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;46&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;47&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;48&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;49&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;50&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;51&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;52&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;53&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;54&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;55&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;56&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;57&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;58&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;59&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt; INF=&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;&amp;lt;&amp;lt;&lt;span class=&quot;number&quot;&gt;29&lt;/span&gt;;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span class=&quot;meta&quot;&gt;#&lt;span class=&quot;meta-keyword&quot;&gt;include&lt;/span&gt;&lt;span class=&quot;meta-string&quot;&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span class=&quot;meta&quot;&gt;#&lt;span class=&quot;meta-keyword&quot;&gt;include&lt;/span&gt;&lt;span class=&quot;meta-string&quot;&gt;&amp;lt;cstdio&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span class=&quot;meta&quot;&gt;#&lt;span class=&quot;meta-keyword&quot;&gt;include&lt;/span&gt;&lt;span class=&quot;meta-string&quot;&gt;&amp;lt;cmath&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;namespace&lt;/span&gt; &lt;span class=&quot;built_in&quot;&gt;std&lt;/span&gt;;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt; x[&lt;span class=&quot;number&quot;&gt;110&lt;/span&gt;],y[&lt;span class=&quot;number&quot;&gt;110&lt;/span&gt;];&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;double&lt;/span&gt; dist[&lt;span class=&quot;number&quot;&gt;110&lt;/span&gt;][&lt;span class=&quot;number&quot;&gt;110&lt;/span&gt;];&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span class=&quot;comment&quot;&gt;// dist 数组即用作存边权的边集数组，若两点间有边则存其边权，没有则赋为 ∞&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;bool&lt;/span&gt; flag[&lt;span class=&quot;number&quot;&gt;110&lt;/span&gt;];&lt;span class=&quot;comment&quot;&gt;// flag 用作标记每个端点是否已访问&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span class=&quot;function&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;double&lt;/span&gt; &lt;span class=&quot;title&quot;&gt;getdist&lt;/span&gt;&lt;span class=&quot;params&quot;&gt;(&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt; x1,&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt; x2,&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt; y1,&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt; y2)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;built_in&quot;&gt;sqrt&lt;/span&gt;((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span class=&quot;function&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;title&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;params&quot;&gt;()&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;built_in&quot;&gt;memset&lt;/span&gt;(flag,&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;keyword&quot;&gt;sizeof&lt;/span&gt;(flag));&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt; n,m,s,t;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt; i,j,k,pos;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;keyword&quot;&gt;for&lt;/span&gt;(i=&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;;i&amp;lt;&lt;span class=&quot;number&quot;&gt;110&lt;/span&gt;;i++)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		flag[i]=&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		&lt;span class=&quot;keyword&quot;&gt;for&lt;/span&gt;(j=&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;;j&amp;lt;&lt;span class=&quot;number&quot;&gt;110&lt;/span&gt;;j++)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;			dist[i][j]=INF;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;built_in&quot;&gt;cin&lt;/span&gt; &amp;gt;&amp;gt;n;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;keyword&quot;&gt;for&lt;/span&gt;(i=&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;;i&amp;lt;=n;i++)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		dist[i][i]=&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		&lt;span class=&quot;built_in&quot;&gt;cin&lt;/span&gt; &amp;gt;&amp;gt;x[i]&amp;gt;&amp;gt;y[i];&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;built_in&quot;&gt;cin&lt;/span&gt; &amp;gt;&amp;gt;m;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;keyword&quot;&gt;for&lt;/span&gt;(i=&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;;i&amp;lt;=m;i++)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt; a,b;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		&lt;span class=&quot;built_in&quot;&gt;cin&lt;/span&gt; &amp;gt;&amp;gt;a&amp;gt;&amp;gt;b;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		dist[a][b]=dist[b][a]=getdist(x[a],x[b],y[a],y[b]);&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;built_in&quot;&gt;cin&lt;/span&gt; &amp;gt;&amp;gt;s&amp;gt;&amp;gt;t;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	flag[s]=&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;keyword&quot;&gt;for&lt;/span&gt;(i=&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;;i&amp;lt;=n;i++)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt; minimum=INF;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		&lt;span class=&quot;keyword&quot;&gt;for&lt;/span&gt;(j=&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;;j&amp;lt;=n;j++)&lt;span class=&quot;comment&quot;&gt;//找离 s 最近点 j&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;			&lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt;(!flag[j] &amp;amp;&amp;amp; dist[s][j]&amp;lt;minimum)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;			&amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;				pos=j;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;				minimum=dist[s][j];&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;			&amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		&amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		flag[pos]=&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;		&lt;span class=&quot;keyword&quot;&gt;for&lt;/span&gt;(j=&lt;span class=&quot;number&quot;&gt;1&lt;/span&gt;;j&amp;lt;=n;j++)&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;			&lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt;(!flag[j] &amp;amp;&amp;amp; dist[s][pos]+dist[pos][j]&amp;lt;dist[s][j])&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;			&lt;span class=&quot;comment&quot;&gt;//以找到的点为中间点，更新 s 到各顶点的最短距离&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;				dist[s][j]=dist[s][pos]+dist[pos][j];&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;built_in&quot;&gt;printf&lt;/span&gt;(&lt;span class=&quot;string&quot;&gt;&quot;%.2lf\n&quot;&lt;/span&gt;,dist[s][t]);&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;	&lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#125;&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;</content:encoded>
      
      <comments>https://dynamicer.com/shortest-path-problem/#disqus_thread</comments>
    </item>
    
    <item>
      <title>如何在 VPS 上搭建 Hexo 博客并使用 Git Hooks 更新？</title>
      <link>https://dynamicer.com/how-to-deploy-hexo-blogs-with-git-hooks-on-vps/</link>
      <guid>https://dynamicer.com/how-to-deploy-hexo-blogs-with-git-hooks-on-vps/</guid>
      <pubDate>Thu, 16 Jul 2015 16:00:00 GMT</pubDate>
      <description>
      
        &lt;h1 id=&quot;几个你或许会问我的问题&quot;&gt;&lt;a href=&quot;#几个你或许会问我的问题&quot; class=&quot;headerlink&quot; title=&quot;几个你或许会问我的问题&quot;&gt;&lt;/a&gt;几个你或许会问我的问题&lt;/h1&gt;&lt;h2 id=&quot;为什么是-Hexo-？&quot;&gt;&lt;a href=&quot;#为什么是-H
      
      </description>
      
      <content:encoded>&lt;h1 id=&quot;几个你或许会问我的问题&quot;&gt;&lt;a href=&quot;#几个你或许会问我的问题&quot; class=&quot;headerlink&quot; title=&quot;几个你或许会问我的问题&quot;&gt;&lt;/a&gt;几个你或许会问我的问题&lt;/h1&gt;&lt;h2 id=&quot;为什么是-Hexo-？&quot;&gt;&lt;a href=&quot;#为什么是-Hexo-？&quot; class=&quot;headerlink&quot; title=&quot;为什么是 Hexo ？&quot;&gt;&lt;/a&gt;为什么是 Hexo ？&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;A fast, simple &amp;amp; powerful blog framework, powered by Node.js.&lt;/p&gt;
&lt;div align=&quot;right&quot;&gt;- @&lt;a href=&quot;https://github.com/tommy351&quot; target=&quot;_blank&quot; rel=&quot;external&quot;&gt;tommy351&lt;/a&gt; ( Hexo 作者 ）&lt;/div&gt;


&lt;/blockquote&gt;
&lt;p&gt;现在是 2015 年，身在开发者圈里，如果想开始写一个 Blog ，使用静态网站生成器搭建无疑是最好的选择，而最热门的三款生成器 Jekyll / Octopress / Hexo 中，对于不懂前端的我们， Hexo 有着质量最高的主题，几乎可以说是唯一的选择，相比 Jekyll / Octopress ，安装简便，生成页面效率有质的区别（可以想象某一天积累到 100 篇 Blog ， Jekyll / Octopress 生成需要花费数分钟，而 Hexo 仍仅需几秒的血泪对比）。&lt;/p&gt;
&lt;h2 id=&quot;为什么是在-VPS-上？&quot;&gt;&lt;a href=&quot;#为什么是在-VPS-上？&quot; class=&quot;headerlink&quot; title=&quot;为什么是在 VPS 上？&quot;&gt;&lt;/a&gt;为什么是在 VPS 上？&lt;/h2&gt;&lt;p&gt;因为种种原因，如 GitHub 的 CDN 提供商是 fastly ，而 fastly 同时为 Twitter 提供服务； GitHub 上有许多并不和谐的项目…… GitHub 在国内多次被墙。使用 VPS 相比于 GitHub Pages 更为自由，比如可以为博客 &lt;strong&gt;配置 SSL&lt;/strong&gt; ，无论是 &lt;strong&gt;从前面进还是从后面进&lt;/strong&gt; 的你，最终目标都是把自己补全为一个 full-stack developer ，更早地向 Dev-Ops 方向迈进对你没有任何坏处。我始终认为，每一位 &lt;strong&gt;梦想成为魔法师的男孩&lt;/strong&gt; 都应该有一个 VPS ，无论在你学习的哪个阶段，它总是可以用来做许多有趣抑或有用的事。&lt;/p&gt;
&lt;h2 id=&quot;为什么通过-Git-Hooks-更新？&quot;&gt;&lt;a href=&quot;#为什么通过-Git-Hooks-更新？&quot; class=&quot;headerlink&quot; title=&quot;为什么通过 Git Hooks 更新？&quot;&gt;&lt;/a&gt;为什么通过 Git Hooks 更新？&lt;/h2&gt;&lt;p&gt;其实你也可以本地什么都不做，每次都把文章的 *.md 通过 sftp 上传到 VPS 上，然后在 VPS 的网站目录中执行 &lt;code&gt;hexo d -fg&lt;/code&gt; 更新博客，至于这个过程感受如何，请自行品味。&lt;/p&gt;
&lt;h2 id=&quot;我还没有-VPS-？&quot;&gt;&lt;a href=&quot;#我还没有-VPS-？&quot; class=&quot;headerlink&quot; title=&quot;我还没有 VPS ？&quot;&gt;&lt;/a&gt;我还没有 VPS ？&lt;/h2&gt;&lt;p&gt;/*以下提及的两款 VPS 同时均可搭建个人独享的代理服务*/&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;如果可以接受每 &lt;strong&gt;月&lt;/strong&gt; 5 的价格 -&amp;gt; &lt;a href=&quot;https://www.digitalocean.com/?refcode=f547bf00e76e&quot; target=&quot;_blank&quot; rel=&quot;external&quot;&gt;DigitalOcean&lt;/a&gt; /*通过链接注册赠送 10 ，在开发者社区中有很好的声誉，是这个行业中为数不多的靠谱提供商之一，堪称最优性价比。*/&lt;/li&gt;
&lt;li&gt;如果可以接受每 &lt;strong&gt;年&lt;/strong&gt; 4.5 的价格 -&amp;gt; &lt;a href=&quot;https://123systems.net/billing/aff.php?aff=1700&amp;amp;pid=101&quot; target=&quot;_blank&quot; rel=&quot;external&quot;&gt;123Systems&lt;/a&gt; /*需要输入优惠码 &lt;code&gt;LABOR&lt;/code&gt; 才可以以 4.5 的价格购买。机房一定要选择 &lt;strong&gt;Los Angeles&lt;/strong&gt; 。如果缺货，属于正常情况，请耐心等待。 &lt;em&gt;越便宜的东西，很可能就越容易出问题，因为商家不可能在卖给你那么便宜的同时还用足好料。而且如果出了问题，因为本身就是没有利润的东西，商家很可能也就不会当回事了。&lt;/em&gt; 作为练手可以，但是请一定做好数据备份，并在资金充裕时及时迁移到更好的服务。*/&lt;/li&gt;
&lt;li&gt;不愿意/不能为 VPS 付费？请使用 GitHub Pages 和免费代理服务，关于是免费代理服务，一句话忠告：免费的是最贵的。既然总还是需要购买代理服务的，为什么不自己搭建呢？&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;域名如何注册、配置？&quot;&gt;&lt;a href=&quot;#域名如何注册、配置？&quot; class=&quot;headerlink&quot; title=&quot;域名如何注册、配置？&quot;&gt;&lt;/a&gt;域名如何注册、配置？&lt;/h2&gt;&lt;p&gt;如果还没有注册域名，推荐使用 &lt;a href=&quot;http://www.namesilo.com/?rid=611c619wk&quot; target=&quot;_blank&quot; rel=&quot;external&quot;&gt;namesilo&lt;/a&gt; ，这是目前在国外注册域名的最廉价注册商（各种数年一遇的活动不计），在这里注册的所有域名都 &lt;strong&gt;免费赠送域名保护&lt;/strong&gt; ，至于为什么不在国内注册？你懂的。使用优惠码 &lt;code&gt;EscapeFromChina&lt;/code&gt; 可以获得 1 美元优惠（即每年 8.99 - 1 ≈ ￥50 ），可以使用 &lt;strong&gt;支付宝&lt;/strong&gt; 付款。&lt;/p&gt;
&lt;p&gt;配置即在域名注册商（如 namesilo ）的管理台将域名的 NS 服务器设置为 &lt;a href=&quot;https://www.dnspod.cn&quot; target=&quot;_blank&quot; rel=&quot;external&quot;&gt;DNSPod&lt;/a&gt; / &lt;a href=&quot;https://www.cloudxns.net&quot; target=&quot;_blank&quot; rel=&quot;external&quot;&gt;CloudXNS&lt;/a&gt; 的，并在 DNSPod / CloudXNS 上为域名配置一条 A 记录和一条 @ 记录，记录值为你的 VPS IP ，配置较为基础，如果你不知道具体如何配置，请自行搜索。&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;搭建过程&quot;&gt;&lt;a href=&quot;#搭建过程&quot; class=&quot;headerlink&quot; title=&quot;搭建过程&quot;&gt;&lt;/a&gt;搭建过程&lt;/h1&gt;&lt;p&gt;搭建过程分为两部分，一部分在本机进行，另一部分则在服务端进行，大致需要完成的工作是在本机和 VPS 各安装一次 Hexo 和 Git ，并在 VPS 上安装 Nginx 服务器、配置 Git Hooks 以实现更新。&lt;/p&gt;
&lt;h2 id=&quot;本机1&quot;&gt;&lt;a href=&quot;#本机1&quot; class=&quot;headerlink&quot; title=&quot;本机1&quot;&gt;&lt;/a&gt;本机1&lt;/h2&gt;&lt;h3 id=&quot;Linux-Desktop&quot;&gt;&lt;a href=&quot;#Linux-Desktop&quot; class=&quot;headerlink&quot; title=&quot;Linux Desktop&quot;&gt;&lt;/a&gt;Linux Desktop&lt;/h3&gt;&lt;p&gt;Linux Desktop 用户一定都是 Power User ，此处略。&lt;/p&gt;
&lt;h3 id=&quot;Windows&quot;&gt;&lt;a href=&quot;#Windows&quot; class=&quot;headerlink&quot; title=&quot;Windows&quot;&gt;&lt;/a&gt;Windows&lt;/h3&gt;&lt;p&gt;以下下载 &lt;strong&gt;强烈&lt;/strong&gt; 建议在 &lt;strong&gt;代理&lt;/strong&gt; 下进行，或者自行寻找国内源。&lt;/p&gt;
&lt;h4 id=&quot;安装-Node-js&quot;&gt;&lt;a href=&quot;#安装-Node-js&quot; class=&quot;headerlink&quot; title=&quot;安装 Node.js&quot;&gt;&lt;/a&gt;安装 Node.js&lt;/h4&gt;&lt;p&gt;在 &lt;a href=&quot;https://nodejs.org/download&quot; target=&quot;_blank&quot; rel=&quot;external&quot;&gt;Node.js&lt;/a&gt; 官网下载最新版，一路默认安装。&lt;/p&gt;
&lt;h4 id=&quot;安装-Git&quot;&gt;&lt;a href=&quot;#安装-Git&quot; class=&quot;headerlink&quot; title=&quot;安装 Git&quot;&gt;&lt;/a&gt;安装 Git&lt;/h4&gt;&lt;p&gt;下载 &lt;a href=&quot;https://git-scm.com/download/win&quot; target=&quot;_blank&quot; rel=&quot;external&quot;&gt;Git for Windows&lt;/a&gt; ，一路默认安装。&lt;/p&gt;
&lt;h3 id=&quot;Mac&quot;&gt;&lt;a href=&quot;#Mac&quot; class=&quot;headerlink&quot; title=&quot;Mac&quot;&gt;&lt;/a&gt;Mac&lt;/h3&gt;&lt;h4 id=&quot;安装-Homebrew&quot;&gt;&lt;a href=&quot;#安装-Homebrew&quot; class=&quot;headerlink&quot; title=&quot;安装 Homebrew&quot;&gt;&lt;/a&gt;安装 &lt;a href=&quot;http://brew.sh&quot; target=&quot;_blank&quot; rel=&quot;external&quot;&gt;Homebrew&lt;/a&gt;&lt;/h4&gt;&lt;h4 id=&quot;安装-Node-js-1&quot;&gt;&lt;a href=&quot;#安装-Node-js-1&quot; class=&quot;headerlink&quot; title=&quot;安装 Node.js&quot;&gt;&lt;/a&gt;安装 Node.js&lt;/h4&gt;&lt;p&gt;使用 Homebrew 安装 Node.js&lt;br&gt;&lt;code&gt;brew install node&lt;/code&gt;&lt;/p&gt;
&lt;h4 id=&quot;安装-Git-1&quot;&gt;&lt;a href=&quot;#安装-Git-1&quot; class=&quot;headerlink&quot; title=&quot;安装 Git&quot;&gt;&lt;/a&gt;安装 Git&lt;/h4&gt;&lt;p&gt;系统自带，无需手工安装。&lt;/p&gt;
&lt;h3 id=&quot;Windows-amp-amp-Mac&quot;&gt;&lt;a href=&quot;#Windows-amp-amp-Mac&quot; class=&quot;headerlink&quot; title=&quot;Windows &amp;amp;&amp;amp; Mac&quot;&gt;&lt;/a&gt;Windows &amp;amp;&amp;amp; Mac&lt;/h3&gt;&lt;p&gt;/*以下操作， Windows 涉及 Node.js 、 Hexo 的操作都在 cmd 中输入 node 后执行，涉及 Git 的都在 Git Bash 中执行。 Mac 所有操作都在 Terminal 中执行。*/&lt;/p&gt;
&lt;h4 id=&quot;创建网站目录&quot;&gt;&lt;a href=&quot;#创建网站目录&quot; class=&quot;headerlink&quot; title=&quot;创建网站目录&quot;&gt;&lt;/a&gt;创建网站目录&lt;/h4&gt;&lt;p&gt;在任意位置创建一个文件夹，作为网站目录，并通过 &lt;code&gt;cd&lt;/code&gt; 命令进入文件夹。&lt;/p&gt;
&lt;h4 id=&quot;本地安装-Hexo&quot;&gt;&lt;a href=&quot;#本地安装-Hexo&quot; class=&quot;headerlink&quot; title=&quot;本地安装 Hexo&quot;&gt;&lt;/a&gt;本地安装 Hexo&lt;/h4&gt;&lt;figure class=&quot;highlight bash&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;2&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;3&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;4&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;5&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;npm install -g hexo-cli&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;hexo init&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;npm install&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;hexo d -fg&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;hexo serve&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;p&gt;打开 &lt;a href=&quot;http://localhost:4000&quot; target=&quot;_blank&quot; rel=&quot;external&quot;&gt;http://localhost:4000&lt;/a&gt; 即可看到你的站点（当然还没有发布到网络）。&lt;/p&gt;
&lt;h4 id=&quot;本地-Git-配置&quot;&gt;&lt;a href=&quot;#本地-Git-配置&quot; class=&quot;headerlink&quot; title=&quot;本地 Git 配置&quot;&gt;&lt;/a&gt;本地 Git 配置&lt;/h4&gt;&lt;p&gt;同样通过 &lt;code&gt;cd&lt;/code&gt; 命令进入文件夹，之后执行&lt;/p&gt;
&lt;figure class=&quot;highlight bash&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;2&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;3&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;git init&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;git add .&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;git commit -m &lt;span class=&quot;string&quot;&gt;&quot;Initial commit&quot;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;h2 id=&quot;VPS&quot;&gt;&lt;a href=&quot;#VPS&quot; class=&quot;headerlink&quot; title=&quot;VPS&quot;&gt;&lt;/a&gt;VPS&lt;/h2&gt;&lt;p&gt;此处为 &lt;strong&gt;Debian / Ubuntu&lt;/strong&gt; 在 root 用户下的操作，使用其他发行版本的一定是 Power User ，略。&lt;/p&gt;
&lt;p&gt;关于连接 VPS ， Windows 用户请使用 &lt;a href=&quot;http://www.putty.org&quot; target=&quot;_blank&quot; rel=&quot;external&quot;&gt;Putty&lt;/a&gt; （提示： Putty 中使用粘贴仅需鼠标右键）， Mac 则直接在 Terminal 中输入 &lt;code&gt;ssh root@IP&lt;/code&gt; 。&lt;/p&gt;
&lt;p&gt;关于 vi 操作，不会用 vi 可以将下列命令中的 &lt;code&gt;vi&lt;/code&gt; 全部替换为 &lt;code&gt;nano&lt;/code&gt; (可能需执行 &lt;code&gt;apt-get install nano -y&lt;/code&gt; )，如果觉得 nano 使用还是相对复杂，请使用 SFTP 工具， Windows 用户可使用 &lt;a href=&quot;https://winscp.net/eng/download.php&quot; target=&quot;_blank&quot; rel=&quot;external&quot;&gt;WinSCP&lt;/a&gt; ， Mac 可使用 &lt;a href=&quot;https://cyberduck.io/&quot; target=&quot;_blank&quot; rel=&quot;external&quot;&gt;Cyberduck&lt;/a&gt; 。&lt;/p&gt;
&lt;figure class=&quot;highlight bash&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;2&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;3&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;4&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;5&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;6&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;7&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;8&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;9&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;apt-get update &amp;amp;&amp;amp; apt-get upgrade -y&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;apt-get install git-core -y&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;curl &lt;span class=&quot;_&quot;&gt;-s&lt;/span&gt;L https://deb.nodesource.com/setup | bash&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;apt-get install nodejs -y&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;apt-get install nginx -y&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span class=&quot;built_in&quot;&gt;cd&lt;/span&gt; /etc/nginx/sites-available&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;rm -rf default&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;touch example.com&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;vi example.com&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;p&gt;在其中输入如下内容并保存，注意 &lt;code&gt;IP&lt;/code&gt; 和 &lt;code&gt;example&lt;/code&gt; 需替换&lt;/p&gt;
&lt;figure class=&quot;highlight bash&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;2&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;3&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;4&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;5&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;6&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;7&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;8&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;9&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;10&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;11&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;12&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;13&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;14&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;15&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;16&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;17&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;18&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;19&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;20&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;21&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;22&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;23&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;server &amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    listen IP:80 ;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    root /var/www/example.com/public;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    server_name example.com;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    access_&lt;span class=&quot;built_in&quot;&gt;log&lt;/span&gt;  /var/&lt;span class=&quot;built_in&quot;&gt;log&lt;/span&gt;/nginx/example_access.log;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    error_&lt;span class=&quot;built_in&quot;&gt;log&lt;/span&gt;   /var/&lt;span class=&quot;built_in&quot;&gt;log&lt;/span&gt;/nginx/example_error.log;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    location ~* ^.+\.(ico|gif|jpg|jpeg|png) &amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            root /var/www/example.com/public;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            access_&lt;span class=&quot;built_in&quot;&gt;log&lt;/span&gt;   off;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            expires      1d;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;        &amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    location ~* ^.+\.(css|js|txt|xml|swf|wav) &amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;        root /var/www/example.com/public;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;        access_&lt;span class=&quot;built_in&quot;&gt;log&lt;/span&gt;   off;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;        expires      10m;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    &amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    location / &amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;        root /var/www/example.com/public;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;        &lt;span class=&quot;keyword&quot;&gt;if&lt;/span&gt; (&lt;span class=&quot;_&quot;&gt;-f&lt;/span&gt; request_filename) &amp;#123;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;            rewrite ^/(.*)  /1 &lt;span class=&quot;built_in&quot;&gt;break&lt;/span&gt;;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;        &amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;    &amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&amp;#125;&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;p&gt;之后执行&lt;/p&gt;
&lt;figure class=&quot;highlight bash&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;2&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;3&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;4&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;5&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;6&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;7&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;8&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;ln &lt;span class=&quot;_&quot;&gt;-s&lt;/span&gt; /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span class=&quot;built_in&quot;&gt;cd&lt;/span&gt; ~&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;mkdir repos &amp;amp;&amp;amp; &lt;span class=&quot;built_in&quot;&gt;cd&lt;/span&gt; repos&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;mkdir example.com.git &amp;amp;&amp;amp; &lt;span class=&quot;built_in&quot;&gt;cd&lt;/span&gt; example.com.git&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;git init --bare&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span class=&quot;built_in&quot;&gt;cd&lt;/span&gt; hooks&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;touch post-receive&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;vi post-receive&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;p&gt;在其中输入如下内容并保存，同样注意前四行的替换&lt;/p&gt;
&lt;figure class=&quot;highlight bash&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;2&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;3&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;4&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;5&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;6&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;7&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;8&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;9&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;10&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;11&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;12&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;13&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;14&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;&lt;span class=&quot;comment&quot;&gt;#!/bin/bash -l&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;GIT_REPO=HOME/repos/example.com.git&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;TMP_GIT_CLONE=HOME/tmp/git/example.com&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;PUBLIC_WWW=/var/www/example.com&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;rm -rf &amp;#123;TMP_GIT_CLONE&amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;git &lt;span class=&quot;built_in&quot;&gt;clone&lt;/span&gt; GIT_REPO TMP_GIT_CLONE&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;rm -rf &amp;#123;PUBLIC_WWW&amp;#125;/*&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;cp -rf &amp;#123;TMP_GIT_CLONE&amp;#125;/* &amp;#123;PUBLIC_WWW&amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span class=&quot;built_in&quot;&gt;cd&lt;/span&gt; ~&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span class=&quot;built_in&quot;&gt;cd&lt;/span&gt; &amp;#123;PUBLIC_WWW&amp;#125;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;hexo d -fg&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span class=&quot;built_in&quot;&gt;cd&lt;/span&gt; ~&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span class=&quot;built_in&quot;&gt;exit&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;p&gt;最后执行&lt;/p&gt;
&lt;figure class=&quot;highlight bash&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;2&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;3&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;chmod +x post-receive&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span class=&quot;built_in&quot;&gt;cd&lt;/span&gt; ~&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;service nginx restart&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;h2 id=&quot;本机2&quot;&gt;&lt;a href=&quot;#本机2&quot; class=&quot;headerlink&quot; title=&quot;本机2&quot;&gt;&lt;/a&gt;本机2&lt;/h2&gt;&lt;p&gt;以下操作需要先 &lt;code&gt;cd&lt;/code&gt; 到网站目录，注意替换&lt;/p&gt;
&lt;figure class=&quot;highlight bash&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;2&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;git remote add example root@IP:repos/example.com.git&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;git push example master&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;p&gt;此时需要输入一次 VPS 密码，稍等片刻即安装完成。打开 &lt;code&gt;example.com&lt;/code&gt; 即可看到你的博客。&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&quot;关于更新-Blog&quot;&gt;&lt;a href=&quot;#关于更新-Blog&quot; class=&quot;headerlink&quot; title=&quot;关于更新 Blog&quot;&gt;&lt;/a&gt;关于更新 Blog&lt;/h1&gt;&lt;p&gt;使用一款 MarkDown 编辑器写 Blog 。写完后将文件以 *.md 的格式保存在本地 &lt;code&gt;[网站目录]\source\_posts&lt;/code&gt; 中。 &lt;strong&gt;文件编码必须为 UTF-8&lt;/strong&gt; ， &lt;strong&gt;这一点仅 Windows 用户需注意。&lt;/strong&gt; 如果你不知道使用什么 MarkDown 编辑器，请自行搜索。&lt;/p&gt;
&lt;p&gt;每篇 Blog 都有固定的参数必须填写，参数如下，注意每个参数的 &lt;code&gt;:&lt;/code&gt; 后都有一个空格。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;title: title
date: yyyy-mm-dd
categories: category
tags: tag
#多标签请这样写：
#tags: [tag1,tag2,tag3]
#或者这样写：
#tags:
#- tag1
#- tag2
#- tag3
---
正文
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;cd&lt;/code&gt; 网站目录后执行&lt;/p&gt;
&lt;figure class=&quot;highlight bash&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;2&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;3&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;4&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;hexo d -fg&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;git add .&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;git commit -m &lt;span class=&quot;string&quot;&gt;&quot;Post A New Blog&quot;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot;&gt;git push example master&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;hr&gt;
&lt;h1 id=&quot;最后的几句话&quot;&gt;&lt;a href=&quot;#最后的几句话&quot; class=&quot;headerlink&quot; title=&quot;最后的几句话&quot;&gt;&lt;/a&gt;最后的几句话&lt;/h1&gt;&lt;p&gt;靡不有初，鲜克有终。坚持做下去，你生活中的每一条河流都会在这里留下痕迹，你可以一直做到你老去的那一天，让你的整个人生&lt;em&gt;沉淀成一个页面丰富的 html 文件夹&lt;/em&gt;。&lt;/p&gt;
&lt;p&gt;感谢@Sunyanzi 在加班中抽出时间对搭建的帮助:)&lt;/p&gt;
</content:encoded>
      
      <comments>https://dynamicer.com/how-to-deploy-hexo-blogs-with-git-hooks-on-vps/#disqus_thread</comments>
    </item>
    
    <item>
      <title>Hello World</title>
      <link>https://dynamicer.com/hello-world/</link>
      <guid>https://dynamicer.com/hello-world/</guid>
      <pubDate>Wed, 15 Jul 2015 16:00:00 GMT</pubDate>
      <description>
      
        &lt;p&gt;Welcome to &lt;a href=&quot;https://hexo.io/&quot; target=&quot;_blank&quot; rel=&quot;external&quot;&gt;Hexo&lt;/a&gt;! This is your very first post. Check &lt;a href=&quot;https://hexo.
      
      </description>
      
      <content:encoded>&lt;p&gt;Welcome to &lt;a href=&quot;https://hexo.io/&quot; target=&quot;_blank&quot; rel=&quot;external&quot;&gt;Hexo&lt;/a&gt;! This is your very first post. Check &lt;a href=&quot;https://hexo.io/docs/&quot; target=&quot;_blank&quot; rel=&quot;external&quot;&gt;documentation&lt;/a&gt; for more info. If you get any problems when using Hexo, you can find the answer in &lt;a href=&quot;https://hexo.io/docs/troubleshooting.html&quot; target=&quot;_blank&quot; rel=&quot;external&quot;&gt;troubleshooting&lt;/a&gt; or you can ask me on &lt;a href=&quot;https://github.com/hexojs/hexo/issues&quot; target=&quot;_blank&quot; rel=&quot;external&quot;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;Quick-Start&quot;&gt;&lt;a href=&quot;#Quick-Start&quot; class=&quot;headerlink&quot; title=&quot;Quick Start&quot;&gt;&lt;/a&gt;Quick Start&lt;/h2&gt;&lt;h3 id=&quot;Create-a-new-post&quot;&gt;&lt;a href=&quot;#Create-a-new-post&quot; class=&quot;headerlink&quot; title=&quot;Create a new post&quot;&gt;&lt;/a&gt;Create a new post&lt;/h3&gt;&lt;figure class=&quot;highlight bash&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;$ hexo new &lt;span class=&quot;string&quot;&gt;&quot;My New Post&quot;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;p&gt;More info: &lt;a href=&quot;https://hexo.io/docs/writing.html&quot; target=&quot;_blank&quot; rel=&quot;external&quot;&gt;Writing&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&quot;Run-server&quot;&gt;&lt;a href=&quot;#Run-server&quot; class=&quot;headerlink&quot; title=&quot;Run server&quot;&gt;&lt;/a&gt;Run server&lt;/h3&gt;&lt;figure class=&quot;highlight bash&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;$ hexo server&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;p&gt;More info: &lt;a href=&quot;https://hexo.io/docs/server.html&quot; target=&quot;_blank&quot; rel=&quot;external&quot;&gt;Server&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&quot;Generate-static-files&quot;&gt;&lt;a href=&quot;#Generate-static-files&quot; class=&quot;headerlink&quot; title=&quot;Generate static files&quot;&gt;&lt;/a&gt;Generate static files&lt;/h3&gt;&lt;figure class=&quot;highlight bash&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;$ hexo generate&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;p&gt;More info: &lt;a href=&quot;https://hexo.io/docs/generating.html&quot; target=&quot;_blank&quot; rel=&quot;external&quot;&gt;Generating&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&quot;Deploy-to-remote-sites&quot;&gt;&lt;a href=&quot;#Deploy-to-remote-sites&quot; class=&quot;headerlink&quot; title=&quot;Deploy to remote sites&quot;&gt;&lt;/a&gt;Deploy to remote sites&lt;/h3&gt;&lt;figure class=&quot;highlight bash&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;1&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;div class=&quot;line&quot;&gt;$ hexo deploy&lt;/div&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;p&gt;More info: &lt;a href=&quot;https://hexo.io/docs/deployment.html&quot; target=&quot;_blank&quot; rel=&quot;external&quot;&gt;Deployment&lt;/a&gt;&lt;/p&gt;
</content:encoded>
      
      <comments>https://dynamicer.com/hello-world/#disqus_thread</comments>
    </item>
    
    <item>
      <title>JSOI 2015 扬中高中春游记</title>
      <link>https://dynamicer.com/in-yangzhong/</link>
      <guid>https://dynamicer.com/in-yangzhong/</guid>
      <pubDate>Thu, 12 Feb 2015 16:00:00 GMT</pubDate>
      <description>
      
        &lt;iframe frameborder=&quot;no&quot; border=&quot;0&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; width=&quot;330&quot; height=&quot;86&quot; src=&quot;//music.163.com/outchain/player?type=2&amp;id=
      
      </description>
      
      <content:encoded>&lt;iframe frameborder=&quot;no&quot; border=&quot;0&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; width=&quot;330&quot; height=&quot;86&quot; src=&quot;//music.163.com/outchain/player?type=2&amp;id=1344903&amp;auto=1&amp;height=66&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;在寒假开始的时候，我作为市区唯一的信息学竞赛学习者，到在扬中高中举办的 JSOI 2015 冬令营进修。&lt;/p&gt;
&lt;p&gt;说是学习、进修其实比较牵强。这次冬令营偏数据结构（主要在讲树和图的基础），毕竟仅仅是 6 天的时间，学到的主要还在于写 demo 和学会这些数据结构的 CRUD ，冬令营只能是一个开始，如标题所说，当作春游就好。它的效果更多的还是去 push 自己花费寒假的一段时间（1/3= =） focus 在 OI 上，看一看别人的学校，认识一群靠谱/不靠谱/有趣的 Pre 神犇，被各路神犇狂虐，培养一颗强大的「有自知之明」的&lt;strong&gt;健全&lt;/strong&gt;心灵。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;https://ww1.sinaimg.cn/mw1024/d77484f7jw1ep7tjkd544j218g0yz7di.jpg&quot; alt=&quot;&quot;&gt;&lt;br&gt;&lt;span style=&quot;color: #d3d3d3;&quot;&gt;//17:30 的扬中高中&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;扬中是个小县城，来时的大巴上，只有两位乘客，显得空空荡荡。 DAY0 报到结束后有在市（县级市）中心转了一圈，很像初中之前住的那个小镇 10 多年前的样子，事实上这里的建筑也大多是 10 年前的。某机智的室友想要找一家 StarBucks 上一会儿网，打开 Siri 查到的时候大喜，结果没多久发现在江对岸的泰州。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://ww2.sinaimg.cn/mw1024/d77484f7jw1ep7tjlxk4uj20sg0lc40l.jpg&quot; alt=&quot;&quot;&gt;&lt;br&gt;&lt;span style=&quot;color: #d3d3d3;&quot;&gt;//李立新教授和他的爱徒林厚从老师&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;本以为这次会和 JSOI 2012 夏令营一样欢乐的，到了 DAY1 才发现高中和初中来的心态完全不同， A 班几乎完全被初（小）中（学）生占领，而自己也很难出类拔萃，前两天确确实实有些难熬，不过适应了还是不错的。&lt;/p&gt;
&lt;p&gt;还是 JSOI ，李立新教授还会讲数学，林厚从依然睿智如故。物是、人是、人非，我不是当初那个意（中）气（二）勃（气）发（盛）的孩子了，如果最后一次 NOIp 还是跪，光靠文化课，我又该何去何从呢？&lt;/p&gt;
&lt;p&gt;七年之后，某二本院校毕业，在北京某个地下室里敲着代码，于己于家无望，无房无车注孤身，完全可以是我的未来。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;流水账式地一下这次的知识结构：&lt;/p&gt;
&lt;p&gt;#DAY1&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;树&lt;ul&gt;
&lt;li&gt;树的概念、表示&lt;/li&gt;
&lt;li&gt;二叉树&lt;ul&gt;
&lt;li&gt;二叉树的基本概念和与初赛题的综合&lt;/li&gt;
&lt;li&gt;二叉树的存储结构&lt;ul&gt;
&lt;li&gt;顺序存储&lt;/li&gt;
&lt;li&gt;链式存储&lt;/li&gt;
&lt;li&gt;静态链表存储&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;二叉树的建立&lt;/li&gt;
&lt;li&gt;二叉树的遍历&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;#DAY2&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;哈夫曼树&lt;ul&gt;
&lt;li&gt;哈夫曼编码&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;堆&lt;ul&gt;
&lt;li&gt;大根堆和小根堆&lt;/li&gt;
&lt;li&gt;堆的 CRUD&lt;/li&gt;
&lt;li&gt;堆排序&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;二叉排序树&lt;ul&gt;
&lt;li&gt;二叉排序树的优点&lt;/li&gt;
&lt;li&gt;二叉排序树的 CRUD&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;#DAY3&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;并查集&lt;ul&gt;
&lt;li&gt;并查集的优点&lt;/li&gt;
&lt;li&gt;并查集的合并操作&lt;/li&gt;
&lt;li&gt;路径压缩&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;#DAY4&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;图&lt;ul&gt;
&lt;li&gt;图的存储方式&lt;ul&gt;
&lt;li&gt;邻接矩阵&lt;/li&gt;
&lt;li&gt;边集数组&lt;/li&gt;
&lt;li&gt;邻接表&lt;/li&gt;
&lt;li&gt;邻接压缩表&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;最小生成树&lt;ul&gt;
&lt;li&gt;Prim&lt;/li&gt;
&lt;li&gt;Kruskal&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;#DAY5&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;最短路&lt;ul&gt;
&lt;li&gt;Warshall&lt;/li&gt;
&lt;li&gt;Floyed&lt;/li&gt;
&lt;li&gt;Dijkstra&lt;/li&gt;
&lt;li&gt;SPFA&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;#DAY6&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;图的连通性&lt;ul&gt;
&lt;li&gt;割点、割边&lt;ul&gt;
&lt;li&gt;用 DFS 找割点、割边&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;强连通分量&lt;ul&gt;
&lt;li&gt;Kosaraju&lt;/li&gt;
&lt;li&gt;Tarjan&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;https://ww4.sinaimg.cn/mw1024/d77484f7jw1ep7tjj6ebjj218g0x7ao7.jpg&quot; alt=&quot;&quot;&gt;&lt;br&gt;&lt;span style=&quot;color: #d3d3d3;&quot;&gt;//带排骨汤的第一餐&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;这 7 天，没有一天早于 00:30 入睡，白天仍然富有生机（对，生机，所以拍照手总会抖 XD），在陌生的县城的 KFC 改善过伙食，第一次见识了在食堂汤里加排骨的土豪作风，在回宾馆的路上坐过门卫大爷的电动车，在扬中高中周围的小道上散过步，认识了好几位 Pre 神犇的队友，每天基本保持 AC 25%-50% = =，在 iPad 上玩通关了&lt;a href=&quot;https://itunes.apple.com/cn/app/id899467421&quot; target=&quot;_blank&quot; rel=&quot;external&quot;&gt;正常的大冒险&lt;/a&gt;，智商最低降到 -3100 ，欢乐地蹭过食堂 Wi-Fi ，因为机器的原因反复装过超过 5 次 Windows 10 Preview 和 Linux Mint ，在宾馆独占过网络（路由器未设密码，限制了连接设备 MAC 地址），被 6 年级参加提高组的小学生虐过，在冬令营过半的时候，意外地从持续了半个学期的 low spirit 里慢慢的走出来。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;李立新教授某天忽然课前兴起，讲到 1992 年的 NOI 中，那时候 NOI 还是不限时的，某位江苏代表队的学生写了一通暴力，程序从上午跑到晚上 12 点，那位同学只能一直在旁边等结果，到 12 点的时候被打发回去了。&lt;/p&gt;
&lt;p&gt;从此…… NOI / NOIp 就限时了……&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;这里的遇到的老师都不是文化课补习班遇到的某些只是把讲课进度不断推进，几乎不对学生负责的类型。 JSOI 印象深刻的老师应该有李立新、林厚从、杨志军，或许以后还会有神龙见首不见尾的曹文。不过在 JSOI 2012 教过动规的荆晓红老师这次说的话总是戳中我的痛点，共勉。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;「你学到现在如果怕难、怕烦，那就意味着你的 OI 生涯即将结束。」&lt;/p&gt;
&lt;p&gt;「有的同学在用骗分求解，一条题似乎也能骗到 60 分，甚至 80 分，但是这对你毫无益处，你唯一可以骗分的，是在 NOIP 真的想不到思路时。」&lt;/p&gt;
&lt;p&gt;「到你们现在的水平，应该多自己做，而不是背别人的代码。一开始写不出较优的算法或是较好的优化没关系，应该自己一步步的去改进，在这个过程中可以多看别人的代码中的思路。」&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;可是我的 OI 生涯真的即将结束了= =&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;https://ww1.sinaimg.cn/mw1024/d77484f7jw1ep7twl8zmcj20rk0rjn01.jpg&quot; alt=&quot;&quot;&gt;&lt;br&gt;&lt;span style=&quot;color: #d3d3d3;&quot;&gt;//两位清华爷（学生教练），被机器挡住的那位一直在读佛经。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;结营考试倒是异常的简单，或许是老师想到大家也都累了，一共是三条题：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;NOIp 2014 D1T2 联合权值，但似乎加强了数据。&lt;/li&gt;
&lt;li&gt;找规律、随便写。另外听说使用树状数组求 lowbit 或者使用位运算。&lt;/li&gt;
&lt;li&gt;Prim ，如果用 Kruskal 会爆 0 。&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;One more time, one more chance. Step by step to seize everything you ever wanted.&lt;/p&gt;
&lt;p&gt;Wherever we go, never foget we are OIers.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;By Dynamicer&lt;br&gt;In Yangzhong At 20150209 DAY2 &amp;amp;&amp;amp; 20150210 DAY3&lt;br&gt;On The Way Back At 20150213&lt;br&gt;In Nantong At 20150213&lt;/p&gt;
</content:encoded>
      
      <comments>https://dynamicer.com/in-yangzhong/#disqus_thread</comments>
    </item>
    
  </channel>
</rss>
