太阳🔆未起床,我去上集训~
坐着车🚗,到门口🚪,迷迷糊糊坐在电脑💻前~
看一看题目,全都不会😭做!
摸电线🔋,开电闸,滋滋滋滋到阎王👼面前~
闲聊一阵
emm,今天我被各种东西虐惨😭了!
Why?
我妈让我早上 (texttt {6:00}) 起床,(texttt {6:00}) 啊!暑假不睡懒觉!对于我这种懒癌晚期患者比杀了我还痛苦😖!!!
但最要命的不是这个,而是上午的模拟考试😨!!!
四道题目,除了 (texttt {T1}) 的艺术创作我看得懂,做了一点点,(texttt {T2 T3 T4}) 明明知道每个词的意思,连起来就不知道意思了……(太弱了)
比赛结果出来了,不出意外地全部爆零😪
嘤嘤嘤!
除此之外,长郡的上课节奏跟机构的完全不一样!
如果说机构的上课速度是化学火箭🚀,那长郡的就是星环号🛸了!
我才学到链表,那里有人已经会二叉搜索树了😱!
回去我一定要疯狂卷题☹️!!!
进入正题
先放出今日模考题面 (texttt {PDF})下载地址
T1 艺术创作
这道题目是我做的题目中最简单的一道(也是唯一一道我做的),但是我没得一分……(弱死了),不过还好没人 (color {green} {texttt {AC}})!
当时我的思路是用递归的方式处理 (L – R) 区间的色块,每次固定一个左端点 (L),然后循环查找与 (a_L) 值相等的 (a_i),这时有三种情况:
-
如果找到,递归 (ans(L + 1,i – 1)),将 (L) 更新为 (i + 1),继续查找。
-
如果未找到,说明 (a_L) 是单个色块,直接将 (L) 更新为 (L + 1),继续查找。
-
寻找的过程中发现了以前用过的色块,
return -1
,结束所有函数。
而返回结果则是用一个变量 (day) 记录一共递归了几层,递归的层数就是答案。
然后出现了什么结果呢?
(color {red} {texttt {8 WA 2 TLE}})
看来是有一些递归死循环,还有一些说胡话……
QAQ!多么惨烈的战况😭!
为了节省篇幅,错误代码就放一个链接了。
以下是正解🙂~
我们分析题目,会发现色块之间可以包含,但不能相交。
根据这个特性,我们可以考虑使用栈来实现。
把涂色的开始视为入栈,涂色的结束视为出栈。
若整个过程中出现操作非法(弹出时发现不合法),则表示涂色的区间出现了相交,无解。
否则答案为操作过程中栈内元素个数的最大值。
但是,我知道思路我依旧没写对啊喂😭!!!
不过我还是拿了 (texttt {20}) 分,先把代码放在这里吧。
#include
using namespace std;
int jmap[100005],imap[100005],a[100005],n,maxn;
bool flag;
stack s;
int main(){
cin>>n;
for(int i = 1;i >a[i];
imap[a[i]] ++;
}
for(int i = 1;i
集训虽然让我痛苦,但也让我学到了一堆 (texttt {OI}) 芝士,加油💪,奥力给!
服务器租用托管,机房租用托管,主机租用托管,https://www.e1idc.com