摘要:2019.11.16~2019.11.17 ——第一届CSP(值得载入史册) //咕到了2020年才写的,可能有些地方不太准确,请原谅。 Day0 上午在学校上完文化课,下午就跟着一种的dalao们一同坐车去了日照外国语大学(就是夏令营举办的地点)。 当然是一车的游戏QAQ 又回到了熟悉的校园——熟 阅读全文
posted @ 2020-01-03 21:30 尹昱钦 阅读 (14) 评论 (1) 编辑
摘要:2019-10-19 ——这个注定要被载入史册的日子 作为一名初中生,和lpy大佬一同参加提高组的比赛,而今年普及组和提高组的时间竟然不一样,于是——凌晨六点半,来到了pdyz和高中生一起坐车去。 高中果然和初中不一样——少了许多欢声笑语——一片沉默。 我和lpy两个默默地吃零食、打王者…… 很快, 阅读全文
posted @ 2019-10-21 23:13 尹昱钦 阅读 (212) 评论 (2) 编辑
摘要:Day0 早上八点集合,不算太早,可以睡个懒觉啊,做了两个多小时的车,终于到了。 不得不说,日照可真热啊!(希望里面空调好) 办好手续后,就分了卡,呜呜,没能和大佬们分在一起。 吃完午饭,就回宿舍,我们一起去了310房间显示玩手机,看他们打牌,就和他们一起玩了一下午西游杀,喊得我嗓子哑了! 话说,我 阅读全文
posted @ 2019-08-02 17:33 尹昱钦 阅读 (53) 评论 (1) 编辑
摘要:传送门 解题思路 先明确一下题意,c指的是路灯的编号而不是位置。 然后根据贪心,在从点i去关点j的路灯时,所有经过的路灯都会随手关掉(不耗时间),所以我们可以确定,若i点和j点的路灯已经关闭,那么区间i...j的路灯已经全部关闭,而且关完后,最优策略一定是在点i处或者点j处。 这和上一题就很像了,用 阅读全文
posted @ 2020-02-28 00:13 尹昱钦 阅读 (2) 评论 (0) 编辑
摘要:传送门 解题思路 观察队形的组成方式可以得出,最后一名加入区间i...j的人要么是在i位置上,要么是在j位置上,所以我们可以用dp[i][j][0]表示区间i...j最后一个加入的人站在i位置上的方案总数,同理,用dp[i][j][1]表示区间i...j最后一个加入的人站在j位置上的方案总数。 然后 阅读全文
posted @ 2020-02-27 23:13 尹昱钦 阅读 (3) 评论 (0) 编辑
摘要:传送门 解题思路 dp[i][j]表示把区间[i...j]涂成目标颜色的最少步骤。 当s[i]==s[j]时,我们可以发现,在涂第i个格子时,我们可以多涂上一格,将第j格涂上;同理,可以在涂第j个格子时,多图一个格子,把第i格涂上。所以就可以从dp[i+1][j]和dp[i][j-1]转移而来。 对 阅读全文
posted @ 2020-02-24 22:32 尹昱钦 阅读 (2) 评论 (0) 编辑
摘要:传送门 解题思路 用dp[i][j]表示dp[i][j]能否合成一个数,负无穷表示合不成,否则即为合成的数。 然后枚举k,很显然,如果dp[i][k]==dp[k+1][j],dp[i][j]就可以从前面两个转化过来。 最后对所有的任意长度的区间取一个max。 AC代码 1 #include<ios 阅读全文
posted @ 2020-02-24 22:07 尹昱钦 阅读 (5) 评论 (0) 编辑
摘要:传送门 解题思路 个人感觉难度应该在蓝题左右 (可能是我太弱了趴) 首先我们知道,那个所谓的头标记和尾标记,在合并区间[l...r]时,n和m是确定了的(即l的头标记和r的尾标记),只差中间的r,所以我们可以枚举k(断点)。 然后我们又可以得出,对于合并区间[l...r],最终得分为(dp[i][k 阅读全文
posted @ 2020-02-24 21:04 尹昱钦 阅读 (5) 评论 (0) 编辑
摘要:传送门 解题思路 对于整个中序遍历,做一遍区间dp: 枚举区间[l...r]内的所有节点作为根节点,然后计算出得分,若比当前的值要大,同时更新dp值和root[l][r](为了输出先序遍历)。 先序是根左右,所以递归输出就好了。 AC代码 1 #include<iostream> 2 #includ 阅读全文
posted @ 2020-02-24 19:31 尹昱钦 阅读 (4) 评论 (0) 编辑
摘要:传送门 解题思路 区间dp:一般dp[i][j]表示区间i...j的答案,这个答案可以从某个或某些小区间转移而来。 大部分题的解法就是先枚举做外层循环len,表示区间长度,然后枚举区间左端点i,然后计算出右端点j,然后枚举i到j中的所有断点,根据dp[i][k],dp[k+1][j]计算出dp[i] 阅读全文
posted @ 2020-02-22 18:35 尹昱钦 阅读 (5) 评论 (0) 编辑
摘要:传送门 解题思路 就是对于每个点,找到左面和右面第一个比它大的点。 单调栈解决。 AC代码 1 #include<iostream> 2 #include<cstdio> 3 #include<stack> 4 using namespace std; 5 const int maxn=100000 阅读全文
posted @ 2020-02-22 17:57 尹昱钦 阅读 (4) 评论 (0) 编辑
摘要:传送门 解题思路 就是对于每一个奶牛,求右边第一个比它高的位置。 很显然,单调栈。 AC代码 1 #include<iostream> 2 #include<cstdio> 3 #include<stack> 4 using namespace std; 5 const int maxn=10000 阅读全文
posted @ 2020-02-16 17:49 尹昱钦 阅读 (5) 评论 (0) 编辑
摘要:传送门 解题思路 主要思想是断环为链。 把数组开双倍大小,然后在n后面接上1~n-1,这样的好处是所有的长度为n的链都包含在内。 然后对于每一个长度为n的区间i......j,我们要做的是判断是否存在一个点k,使得i.....k的和小于0。 对的,和! 前缀和! 然后要找一个最小的前缀和! 长度为n 阅读全文
posted @ 2020-02-15 23:51 尹昱钦 阅读 (14) 评论 (0) 编辑