摘要:一、网课 网课一直在认真学(hua)习(shui)。导致编程一直没学 二、自招考试 准备了好长时间,作业………咳咳,让我头秃。导致编程一直没学 三、考试结束 玩了好长时间;导致编程一直没学 咳咳 但是现在, 一切都结束了。 又是一个新的起点。 重新回到OI,加油! 满血复活QAQ! 阅读全文
posted @ 2020-07-05 15:52 尹昱钦 阅读(38) 评论(1) 推荐(0) 编辑
摘要:2019.11.16~2019.11.17 ——第一届CSP(值得载入史册) //咕到了2020年才写的,可能有些地方不太准确,请原谅。 Day0 上午在学校上完文化课,下午就跟着一种的dalao们一同坐车去了日照外国语大学(就是夏令营举办的地点)。 当然是一车的游戏QAQ 又回到了熟悉的校园——熟 阅读全文
posted @ 2020-01-03 21:30 尹昱钦 阅读(108) 评论(1) 推荐(0) 编辑
摘要:2019-10-19 ——这个注定要被载入史册的日子 作为一名初中生,和lpy大佬一同参加提高组的比赛,而今年普及组和提高组的时间竟然不一样,于是——凌晨六点半,来到了pdyz和高中生一起坐车去。 高中果然和初中不一样——少了许多欢声笑语——一片沉默。 我和lpy两个默默地吃零食、打王者…… 很快, 阅读全文
posted @ 2019-10-21 23:13 尹昱钦 阅读(399) 评论(2) 推荐(1) 编辑
摘要:传送门 解题思路 用dp[i][0]表示第i个节点染绿色的以i为根的子树的最大(最小)染绿色总数,dp[i][1]表示染红色,dp[i][2]表示染蓝色。 各种情况转移即可。 写完代码后发现,dp[i][1]和dp[i][2]相等,所以其实可以合并起来,这样能少许多代码量。 AC代码 1 #incl 阅读全文
posted @ 2020-10-23 23:54 尹昱钦 阅读(4) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 对于每一条路,很显然只有两种情况,一种是走一次,一种是走无限次,而第二种情况的条件是这条边在一个环中。 所以先用Tarjan缩点,每个点的权值更新为这个环上所有边一直摘的蘑菇数的和。 然后跑一边既有边权也有点权的DAG上的dp即可。 AC代码 1 #include<iostream 阅读全文
posted @ 2020-10-23 21:06 尹昱钦 阅读(5) 评论(0) 推荐(0) 编辑
摘要:传送门 缩点 在一个有向图上缩点就是指把有向图上的环变成一个点。 具体实现用Tarjan。 先求强联通分量,每次遇到新点是把这个点进栈,最后若dfn[i]==low[i]则i这个点一定在环上,而且栈中i之后进入的元素也在这个环上(证明略)。 即一直出栈,知道出栈元素等于i。在出栈过程中维护信息即可。 阅读全文
posted @ 2020-10-22 23:28 尹昱钦 阅读(6) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 g[i][j][k]表示i到j这个点有没有长度为2^k的路径,若有为1,若没有为0。答案可以由g[i][x][k-1]&&g[x][j][k-1]更新(Floyd传递闭包)。 倍增求一遍后,把所有g[i][j][k] = 1 的 i j之间连一条长度为1的边(因为可以一步到达)。 阅读全文
posted @ 2020-10-20 23:31 尹昱钦 阅读(6) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 很显然的树形dp,设dp[i][j]表示在子树i上保留j条边的最大苹果树,从儿子节点转移过来即可,注意若某个儿子不选,则以此儿子为根的子树都不能选。 还有就是因为是二叉树,可以提前遍历一遍求出每个点的两个或零个儿子,就不用在求dp时倒序枚举了,算是一个小技巧趴。 AC代码 1 #i 阅读全文
posted @ 2020-10-19 23:51 尹昱钦 阅读(9) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 显然是区间dp,判断a[i]是否等于a[j],然后再枚举中间节点k即可。 关键是玄学错误: 一份代码提交后间接性AC? (就是一会显示AC,一会再提交就WA掉,一会又AC?) 莫非是因为用了班主任名字当变量? AC记录 WA记录 感谢 @rcxkk 解答并提供hack数据。 32行 阅读全文
posted @ 2020-10-19 00:23 尹昱钦 阅读(3) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 每行互不影响,所以分开处理,对于每一行,很显然是个区间dp,我们用dp[i][j]表示区间[i..j]的得分和的最大值,注意每次加一个数的顺序是先加上数再集体乘2。 恶心的地方在于需要写高精(学校比赛懒得写,所以只拿了60分),需要一个高精度+int,一个高精度*2,一个高精度+高 阅读全文
posted @ 2020-10-18 23:24 尹昱钦 阅读(7) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 很显然是dp(因为标签是dp)。 设dp[i][j]表示放到第i个原料,放完后的原料数量为j个最大的耐久度。 可以用dp[i-1][k]转移而来,其中k:j-1<=k<=min(w,j+s-1)。 你发现了什么,可以用单调队列优化! 即维护一个长度为s的单调队列。 //把这个题当做 阅读全文
posted @ 2020-10-18 00:05 尹昱钦 阅读(3) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 因为可以大整数分解为l*10k+(l+1)*10k-1+(l+2)*10k-3+……+r*100,而10k%9=1,所以原整数在模9意义下等于l+(l+1)+(l+2)+(l+3)+……+r=(l+r)*(r-l+1)/2。 因为有除法,所以我们算出2在%9意义下的逆元为5,即可解 阅读全文
posted @ 2020-10-17 21:42 尹昱钦 阅读(4) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 设dp[i][j]表示选出了第i个电塔,上一个选出的是第j个电塔的方案数。 枚举i,j,转移方程为: 找一个k,使得h[k],h[j],h[i]构成等差数列,并且k<j。 dp[i][j]+=dp[j][k]; 对于确定的i,j,h[k]是确定的,所以我们可以用vector a[i 阅读全文
posted @ 2020-10-17 00:28 尹昱钦 阅读(3) 评论(0) 推荐(0) 编辑