<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>LIS on 111qqz's blog</title><link>https://111qqz.com/en/tags/lis/</link><description>Recent content in LIS on 111qqz's blog</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>© 2015-2026 111qqz</copyright><lastBuildDate>Thu, 26 Jan 2017 08:12:38 +0000</lastBuildDate><atom:link href="https://111qqz.com/en/tags/lis/index.xml" rel="self" type="application/rss+xml"/><item><title>BZOJ 1207: [HNOI2004]打鼹鼠 (LIS)</title><link>https://111qqz.com/en/post/acm-icpc/2017/2017-01-26-bzoj-1207-hnoi2004e68993e9bcb9e9bca0-lis/</link><pubDate>Thu, 26 Jan 2017 08:12:38 +0000</pubDate><guid>https://111qqz.com/en/post/acm-icpc/2017/2017-01-26-bzoj-1207-hnoi2004e68993e9bcb9e9bca0-lis/</guid><description>&lt;h2 class="relative group"&gt;1207: [HNOI2004]打鼹鼠
 &lt;div id="1207-hnoi2004打鼹鼠" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#1207-hnoi2004%e6%89%93%e9%bc%b9%e9%bc%a0" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Time Limit: 10 Sec  Memory Limit: 162 MB
Submit: 2854  Solved: 1390
[&lt;a href="http://www.lydsy.com/JudgeOnline/submitpage.php?id=1207" target="_blank" rel="noreferrer"&gt;Submit&lt;/a&gt;][&lt;a href="http://www.lydsy.com/JudgeOnline/problemstatus.php?id=1207" target="_blank" rel="noreferrer"&gt;Status&lt;/a&gt;][&lt;a href="http://www.lydsy.com/JudgeOnline/bbs.php?id=1207" target="_blank" rel="noreferrer"&gt;Discuss&lt;/a&gt;]&lt;/p&gt;</description></item><item><title>BZOJ 1642: [Usaco2007 Nov]Milking Time 挤奶时间 (dp,类似LIS)</title><link>https://111qqz.com/en/post/acm-icpc/2016/2016-04-10-bzoj1642/</link><pubDate>Sun, 10 Apr 2016 08:31:35 +0000</pubDate><guid>https://111qqz.com/en/post/acm-icpc/2016/2016-04-10-bzoj1642/</guid><description>&lt;h2 class="relative group"&gt;
 &lt;div id="" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Time Limit: 5 Sec  Memory Limit: 64 MB
Submit: 667  Solved: 389
[&lt;a href="http://www.lydsy.com/JudgeOnline/submitpage.php?id=1642" target="_blank" rel="noreferrer"&gt;Submit&lt;/a&gt;][&lt;a href="http://www.lydsy.com/JudgeOnline/problemstatus.php?id=1642" target="_blank" rel="noreferrer"&gt;Status&lt;/a&gt;][&lt;a href="http://www.lydsy.com/JudgeOnline/bbs.php?id=1642" target="_blank" rel="noreferrer"&gt;Discuss&lt;/a&gt;]&lt;/p&gt;

&lt;h2 class="relative group"&gt;Description
 &lt;div id="description" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#description" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;贝茜是一只非常努力工作的奶牛，她总是专注于提高自己的产量。为了产更多的奶，她预计好了接下来的N (1 ≤ N ≤ 1,000,000)个小时，标记为0..N-1。 Farmer John 计划好了 M (1 ≤ M ≤ 1,000) 个可以挤奶的时间段。每个时间段有一个开始时间(0 ≤ 开始时间 ≤ N), 和一个结束时间 (开始时间 &amp;lt; 结束时间 ≤ N), 和一个产量 (1 ≤ 产量 ≤ 1,000,000) 表示可以从贝茜挤奶的数量。Farmer John 从分别从开始时间挤奶，到结束时间为止。每次挤奶必须使用整个时间段。 但即使是贝茜也有她的产量限制。每次挤奶以后，她必须休息 R (1 ≤ R ≤ N) 个小时才能下次挤奶。给定Farmer John 计划的时间段，请你算出在 N 个小时内，最大的挤奶的量。&lt;/p&gt;</description></item><item><title>hdu 1950 Bridging signals (LIS)</title><link>https://111qqz.com/en/post/acm-icpc/2016/2016-04-01-hdu1950/</link><pubDate>Fri, 01 Apr 2016 13:16:54 +0000</pubDate><guid>https://111qqz.com/en/post/acm-icpc/2016/2016-04-01-hdu1950/</guid><description>&lt;p&gt;&lt;a href="http://acm.hdu.edu.cn/showproblem.php?pid=1950" target="_blank" rel="noreferrer"&gt;题目链接&lt;/a&gt;
题意：有两跟柱子并排竖直放置，每根柱子有n个结点，从上往下标号1..n， 两根柱子间的结点间要连线，给出计划连接的情况。a[i]表示左边结点i连接右边结点a[i].但是要求连线不能交叉，所以计划可能不能全部执行。现在问最多能连接多少条线。
思路：由于不能交叉，而左边的结点是按照顺序给出的，所以右边连接的结点只能是越来越大。其实就是求a[i]的最长上升子序列。感觉算是LIS的一个比较巧妙的应用？ 由于n还是很大。所以必须nlogn的做法。&lt;/p&gt;</description></item><item><title>BZOJ 1609: [Usaco2008 Feb]Eating Together麻烦的聚餐(LIS nlogn解法)</title><link>https://111qqz.com/en/post/acm-icpc/2016/2016-04-01-bzoj-1609/</link><pubDate>Fri, 01 Apr 2016 12:32:13 +0000</pubDate><guid>https://111qqz.com/en/post/acm-icpc/2016/2016-04-01-bzoj-1609/</guid><description>&lt;h2 class="relative group"&gt;1609: [Usaco2008 Feb]Eating Together麻烦的聚餐
 &lt;div id="1609-usaco2008-febeating-together麻烦的聚餐" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#1609-usaco2008-febeating-together%e9%ba%bb%e7%83%a6%e7%9a%84%e8%81%9a%e9%a4%90" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Time Limit: 10 Sec  Memory Limit: 64 MB
Submit: 1282  Solved: 766
[&lt;a href="http://www.lydsy.com/JudgeOnline/submitpage.php?id=1609" target="_blank" rel="noreferrer"&gt;Submit&lt;/a&gt;][&lt;a href="http://www.lydsy.com/JudgeOnline/problemstatus.php?id=1609" target="_blank" rel="noreferrer"&gt;Status&lt;/a&gt;][&lt;a href="http://www.lydsy.com/JudgeOnline/bbs.php?id=1609" target="_blank" rel="noreferrer"&gt;Discuss&lt;/a&gt;]&lt;/p&gt;</description></item><item><title>最长上升子序列nlogn解法</title><link>https://111qqz.com/en/post/acm-icpc/2016/2016-04-01-e69c80e995bfe4b88ae58d87e5ad90e5ba8fe58897nlogne8a7a3e6b395/</link><pubDate>Fri, 01 Apr 2016 12:15:41 +0000</pubDate><guid>https://111qqz.com/en/post/acm-icpc/2016/2016-04-01-e69c80e995bfe4b88ae58d87e5ad90e5ba8fe58897nlogne8a7a3e6b395/</guid><description>&lt;p&gt;首先回顾一下n^2的做法。
状态转移方程为dp[i] =max(1,dp[j]) (1=&amp;lt;j&amp;lt;=i-1&amp;amp;&amp;amp;a[i]&amp;gt;a[j])&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;cin&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;	&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;	&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;	 &lt;span class="n"&gt;dp&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;	 &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;j&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;j&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;	 &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;		&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;		 &lt;span class="n"&gt;dp&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dp&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="n"&gt;dp&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;	 &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;ans&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ans&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;dp&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;	&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;然后我们发现，使得dp[i]得到同一个值的dp[j]可能有多个，那么选择哪个呢？
假设 x&amp;lt;y&amp;lt;i，a[x]&amp;lt;a[y],dp[x]==dp[y]，那么我们选择x好还是y好呢？
显然是x好。为什么？因为选择x潜力大。因为可能在x,y之间存在一个z,满足a[x]&amp;lt;a[z]&amp;lt;a[y],如果选择a[y]，就没有办法选择可能使长度更长的a[z]了。通俗得说。。我们要求的是最长上升子序列。。你一开始就弄那么大。。。后面还上哪上升去啊。。。长度小啊。。。&lt;/p&gt;</description></item></channel></rss>