<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[int_lyy的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/int_lyy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; int_lyy]]></copyright><item><title><![CDATA[寒假刷题38:  Codeforces Round #622 (Div. 2) C2. Skyscrapers (hard version)]]></title><link>https://blog.youkuaiyun.com/int_lyy/article/details/104520630</link><guid>https://blog.youkuaiyun.com/int_lyy/article/details/104520630</guid><author>int_lyy</author><pubDate>Wed, 26 Feb 2020 17:20:45 +0800</pubDate><description><![CDATA[题目链接:

Codeforces Round #622 (Div. 2) C2. Skyscrapers (hard version)

题目解析:

在C1中,我们让每一个点作为顶点,然后遍历数组,这在C2中显然会超时,现在考虑如何优化.

在遍历的过程中,如果一个点可建造的高度h[i]大于等于当前可建造的最大高度maxhigh,显然不用更新maxhigh.只有当h[i]&lt;maxhigh...]]></description><category></category></item><item><title><![CDATA[寒假刷题３7: Codeforces Round #622 (Div. 2)C1. Skyscrapers (easy version)]]></title><link>https://blog.youkuaiyun.com/int_lyy/article/details/104520260</link><guid>https://blog.youkuaiyun.com/int_lyy/article/details/104520260</guid><author>int_lyy</author><pubDate>Wed, 26 Feb 2020 17:03:43 +0800</pubDate><description><![CDATA[题目链接:

Codeforces Round #622 (Div. 2)C1. Skyscrapers (easy version)

题目解析:

通过分析题目可以知道,最终情况一定是一个倒V字形

分别让每一个点作为最高点,记录当前可建造的最高高度maxhigh,同时向左右两边遍历,更新maxhigh并求出以此时的答案,最后所有答案取最大值即可

时间复杂度O(n^2)

AC代码:


#...]]></description><category></category></item><item><title><![CDATA[寒假刷题36:Codeforces Round #622 (Div. 2) B. Different Rules]]></title><link>https://blog.youkuaiyun.com/int_lyy/article/details/104519764</link><guid>https://blog.youkuaiyun.com/int_lyy/article/details/104519764</guid><author>int_lyy</author><pubDate>Wed, 26 Feb 2020 16:41:13 +0800</pubDate><description><![CDATA[题目链接：

Codeforces Round #622 (Div. 2) B. Different Rules

题目解析：

这次B题好像坑了不少人，最后过的人数还没C1多（让本菜鸡恰了一波烂分）

结论：〈max(1,min(n,x+y−n+1)),min(n,x+y−1)〉

这里有详细分类讨论过程http://codeforces.com/blog/entry/74146和我当时分类...]]></description><category></category></item><item><title><![CDATA[寒假刷题35：Codeforces Round #620 C. Air Conditioner]]></title><link>https://blog.youkuaiyun.com/int_lyy/article/details/104462784</link><guid>https://blog.youkuaiyun.com/int_lyy/article/details/104462784</guid><author>int_lyy</author><pubDate>Sun, 23 Feb 2020 16:57:56 +0800</pubDate><description><![CDATA[题目链接：

C. Air Conditioner

题目解析：

为啥这题标签里面有DP啊...状态转移？

从初始温度开始，能求出下一位客人进门时可达到的温度区间。如果和此客人的舒适区间不相交，则输出NO；反之，取交集作为新的状态

AC代码：


#include&lt;iostream&gt;
#include&lt;cstring&gt;
#include&lt;vector&gt;
#...]]></description><category></category></item><item><title><![CDATA[寒假刷题34：洛谷P1197 [JSOI2008]星球大战（并查集）]]></title><link>https://blog.youkuaiyun.com/int_lyy/article/details/104447856</link><guid>https://blog.youkuaiyun.com/int_lyy/article/details/104447856</guid><author>int_lyy</author><pubDate>Sat, 22 Feb 2020 18:13:34 +0800</pubDate><description><![CDATA[题目链接：

洛谷P1197 [JSOI2008]星球大战

题目解析：

离线以后逆序操作

AC代码：


#include&lt;iostream&gt;
#include&lt;cstring&gt;
#include&lt;vector&gt;
#include&lt;queue&gt;
#include&lt;algorithm&gt;
using namespace std;
con...]]></description><category></category></item><item><title><![CDATA[寒假刷题33：洛谷P2024 [NOI2001]食物链（并查集）]]></title><link>https://blog.youkuaiyun.com/int_lyy/article/details/104447268</link><guid>https://blog.youkuaiyun.com/int_lyy/article/details/104447268</guid><author>int_lyy</author><pubDate>Sat, 22 Feb 2020 17:39:36 +0800</pubDate><description><![CDATA[题目链接：

P2024 [NOI2001]食物链

题目解析：

就是用3倍的并查积的存各种动物的关系

一倍存本身，二倍存猎物，三倍存天敌

AC代码：


#include&lt;iostream&gt;
#include&lt;cstring&gt;
#include&lt;vector&gt;
#include&lt;queue&gt;
#include&lt;algorithm&gt;...]]></description><category></category></item><item><title><![CDATA[寒假刷题32：洛谷P1111 修复公路（并查集）]]></title><link>https://blog.youkuaiyun.com/int_lyy/article/details/104441593</link><guid>https://blog.youkuaiyun.com/int_lyy/article/details/104441593</guid><author>int_lyy</author><pubDate>Sat, 22 Feb 2020 12:15:27 +0800</pubDate><description><![CDATA[题目链接：

P1111 修复公路

题目解析：

先按时间排序，每次合并两个节点，如果原先不连通那么合并之后联通块数量减一

AC代码：


#include&lt;iostream&gt;
#include&lt;cstring&gt;
#include&lt;vector&gt;
#include&lt;queue&gt;
#include&lt;algorithm&gt;
using na...]]></description><category></category></item><item><title><![CDATA[寒假刷题31: Codeforces Round #621 D. Cow and Fields]]></title><link>https://blog.youkuaiyun.com/int_lyy/article/details/104441309</link><guid>https://blog.youkuaiyun.com/int_lyy/article/details/104441309</guid><author>int_lyy</author><pubDate>Sat, 22 Feb 2020 12:06:39 +0800</pubDate><description><![CDATA[题目链接：
Codeforces Round #621 D. Cow and Fields
题目解析：
首先用BFS计算出起点1和终点n到各个点的距离,假设任意一点到起始点的距离为Xi,到终止点距离为Yi。
对于任意两个特殊点a,b,如果在他们之间修路，那么经由他们的距离为
min(Xa+Yb,Ya+Xb)
这样很容易想到一种O（n^2）的做法：枚举所有点，计算距离
如何优化呢？假设Xa+Yb&l...]]></description><category></category></item><item><title><![CDATA[寒假刷题30：洛谷P2161 [SHOI2009]会场预约（线段树）]]></title><link>https://blog.youkuaiyun.com/int_lyy/article/details/104432328</link><guid>https://blog.youkuaiyun.com/int_lyy/article/details/104432328</guid><author>int_lyy</author><pubDate>Fri, 21 Feb 2020 18:21:14 +0800</pubDate><description><![CDATA[题目链接：
P2161 [SHOI2009]会场预约
题目解析：
听说是平衡树的题（然鹅我是在线段树树状数组分类里找到的它）
线段树做法：把题目看成一个仅实现区间修改的线段树，用tagtag数组打打标记即可
有空补一下平衡树树状数组做法吧…好像还有一个神奇的STL做法？
翻译：一定不咕一定不咕
AC代码（线段树）：
#include&lt;cstdio&gt;
#define N 100200
#...]]></description><category></category></item><item><title><![CDATA[寒假刷题29：Codeforces Round #621 C. Cow and Message]]></title><link>https://blog.youkuaiyun.com/int_lyy/article/details/104430834</link><guid>https://blog.youkuaiyun.com/int_lyy/article/details/104430834</guid><author>int_lyy</author><pubDate>Fri, 21 Feb 2020 17:09:31 +0800</pubDate><description><![CDATA[题目链接：
Codeforces Round #621 C. Cow and Message
题目解析：
思维题
对于重复出现的所有长度大于等于2字串来说，一定有一个长度为2的字串，出现次数和它一样。
因此，我们只需要统计长度为1和长度为2的字串出现次数即可
AC代码：
#include&lt;iostream&gt;
#include&lt;cstring&gt;
using namespace...]]></description><category></category></item><item><title><![CDATA[寒假刷题28：Codeforces Round #621  B. Cow and Friend]]></title><link>https://blog.youkuaiyun.com/int_lyy/article/details/104425534</link><guid>https://blog.youkuaiyun.com/int_lyy/article/details/104425534</guid><author>int_lyy</author><pubDate>Fri, 21 Feb 2020 12:27:47 +0800</pubDate><description><![CDATA[题目链接：
Codeforces Round #621  B. Cow and Friend
题目解析：
假设当前最大跳跃距离为X,则当两点之间直线距离小于等于2X时,一定可以通过两次跳跃到达。
如图，从0跳到10，X=5 。 距离刚好等于2X，相切

因此，我们只需要记录最远可跳跃距离，计算通过几次跳跃可到达即可
特殊情况：
距离dis小于最远可跳跃距离时，如果有某个可跳跃距离正好等于dis,则...]]></description><category></category></item><item><title><![CDATA[寒假刷题27：洛谷P2023 [AHOI2009]维护序列 （线段树）]]></title><link>https://blog.youkuaiyun.com/int_lyy/article/details/104423966</link><guid>https://blog.youkuaiyun.com/int_lyy/article/details/104423966</guid><author>int_lyy</author><pubDate>Fri, 21 Feb 2020 10:51:03 +0800</pubDate><description><![CDATA[题目链接：

P2023 [AHOI2009]维护序列

题目解析：

这题就离谱....写着写着感觉有点熟悉，再一看，这不就是之前P3373改一下输入吗？

AC代码：



#include&lt;iostream&gt;
#include&lt;cstdio&gt;
#include&lt;cstring&gt;
#define  ll   long long
using namespace...]]></description><category></category></item><item><title><![CDATA[寒假刷题26：洛谷P1198 [JSOI2008]最大数]]></title><link>https://blog.youkuaiyun.com/int_lyy/article/details/104415601</link><guid>https://blog.youkuaiyun.com/int_lyy/article/details/104415601</guid><author>int_lyy</author><pubDate>Thu, 20 Feb 2020 18:33:03 +0800</pubDate><description><![CDATA[题目链接：
P1198 [JSOI2008]最大数
题目解析：
没啥好说的，挺裸的线段树…
为啥放上来呢，因为貌似用单调栈+二分 或者  Sparse-Table 也可以做
留个坑以后一定补~~（翻译：咕咕咕）~~
AC代码：
#include&lt;iostream&gt;
#include&lt;cstring&gt;
#include&lt;cstdio&gt;
#include&lt;st...]]></description><category></category></item><item><title><![CDATA[寒假刷题25：洛谷P1972 [SDOI2009]HH的项链（树状数组）]]></title><link>https://blog.youkuaiyun.com/int_lyy/article/details/104415451</link><guid>https://blog.youkuaiyun.com/int_lyy/article/details/104415451</guid><author>int_lyy</author><pubDate>Thu, 20 Feb 2020 18:24:48 +0800</pubDate><description><![CDATA[题目链接：

P1972 [SDOI2009]HH的项链

题目大意：

给你一个长为n(n&lt;=1e6)的数组，有m(m&lt;=1e6)次询问，每次询问包含两个整数L，R，求区间[L,R]内共有几种不同的数字

题目解析：

对于若干个询问的区间[l,r]，如果他们的r都相等的话，那么项链中出现的同一个数字，一定是只关心出现在最右边的那一个的，例如：

项链是：1 3 4 5 1

那么，...]]></description><category></category></item><item><title><![CDATA[寒假刷题24：发射站（洛谷P1901）单调栈]]></title><link>https://blog.youkuaiyun.com/int_lyy/article/details/104408804</link><guid>https://blog.youkuaiyun.com/int_lyy/article/details/104408804</guid><author>int_lyy</author><pubDate>Thu, 20 Feb 2020 12:58:48 +0800</pubDate><description><![CDATA[题目链接：

发射站

题目解析：

有一句很重要的话：发出的能量只被两边最近的且比 它高的发射站接收。显然要用单调栈。

也就是要分别求每个数左边和右边碰到的第一个比它大的数的位置。

这次用了c++自带的stack，注意在判断语句里s.size()一定要写在最前面（血的教训QAQ）

AC代码：


#include&lt;iostream&gt;
#include&lt;cstring&gt...]]></description><category></category></item><item><title><![CDATA[寒假刷题23：Feel Good（POJ - 2796） 单调栈]]></title><link>https://blog.youkuaiyun.com/int_lyy/article/details/104408705</link><guid>https://blog.youkuaiyun.com/int_lyy/article/details/104408705</guid><author>int_lyy</author><pubDate>Thu, 20 Feb 2020 12:46:23 +0800</pubDate><description><![CDATA[题目链接：

https://vjudge.net/problem/POJ-2796

题目大意：

给你一个非负整数数组，定义某个区间的参考值为：区间所有元素的和乘以区间最小元素。求该数组中的最大参考值以及对应的区间。
比如说有6个数3 1 6 4 5 2
最大参考值为6,4,5组成的区间，区间最小值为4，参考值为4*(6+5+4)=60
数据范围1&lt;=n&lt;=100000；

题目解...]]></description><category></category></item><item><title><![CDATA[寒假刷题22："Ray, Pass me the dishes!" （UVALive - 3938 ）]]></title><link>https://blog.youkuaiyun.com/int_lyy/article/details/104397712</link><guid>https://blog.youkuaiyun.com/int_lyy/article/details/104397712</guid><author>int_lyy</author><pubDate>Wed, 19 Feb 2020 18:10:09 +0800</pubDate><description><![CDATA[题目链接：

https://vjudge.net/problem/UVALive-3938

题目解析：

构造线段树，维护最大区间和，最大前缀和，最大后缀和，通过分治的思想进行区间合并。

AC代码：


#include &lt;cstdio&gt;
#include &lt;cstring&gt;
#include &lt;algorithm&gt;
#include &lt;iostre...]]></description><category></category></item><item><title><![CDATA[寒假刷题21：Frequent values（UVA - 11235）RMQ]]></title><link>https://blog.youkuaiyun.com/int_lyy/article/details/104390034</link><guid>https://blog.youkuaiyun.com/int_lyy/article/details/104390034</guid><author>int_lyy</author><pubDate>Wed, 19 Feb 2020 11:51:51 +0800</pubDate><description><![CDATA[题目链接：

Frequent values

题目解析：

因为数组是非降序的，所以首先对其进行游程编码（RLE）。比如-1，1，1，2，2，2，4，游程编码后变为（-1，1），（1，2），（2，3），（4，1）.即（a，b）表示a个连续的b

用value[]和count[]两个数组分别表示每一段的值和出现次数，num[]、left[]、right[]分别表示当前位置所在段的编号和左右端点位置...]]></description><category></category></item><item><title><![CDATA[mark一篇文章，关于写题解，还8错]]></title><link>https://blog.youkuaiyun.com/int_lyy/article/details/104382352</link><guid>https://blog.youkuaiyun.com/int_lyy/article/details/104382352</guid><author>int_lyy</author><pubDate>Tue, 18 Feb 2020 20:46:33 +0800</pubDate><description><![CDATA[https://studyingfather.blog.luogu.org/blog-written-guide
]]></description><category></category></item><item><title><![CDATA[寒假刷题20：Ping pong （UVALive - 4329）树状数组]]></title><link>https://blog.youkuaiyun.com/int_lyy/article/details/104381876</link><guid>https://blog.youkuaiyun.com/int_lyy/article/details/104381876</guid><author>int_lyy</author><pubDate>Tue, 18 Feb 2020 20:43:32 +0800</pubDate><description><![CDATA[题目链接：

Ping Pong

题目解析：

考虑第i个人当裁判，设此时左边又x个人比他小，右边有y个人比他小。那么，他能组织x*(n-i-y)+(i-1-x)*y场比赛把n个人的场次累加即可。

接下来考虑如何求x和y。从左到右扫描数组，设a[j]表示目前为止数字j出现了几次，则x就是。类似的，可以求出y。

这个修改、求和的过程就要用到树状数组。

AC代码（网站好像有问题......最近...]]></description><category></category></item></channel></rss>