11 2020 档案

摘要:传送门 解题思路 更正题意:“输出决斗后他们朋友中最强壮的猴子的强壮值”指的是决斗前最强壮的猴子的决斗后的强壮值(根据样例得出) 所以这题就很板子了。 维护一个有合并、删除、单点插入的左偏树即可。 注意: 多组数据的数组初始化处理。 根节点猴子强壮值减半后对其结构体和fa[x]的重新初始化。 AC代 阅读全文
posted @ 2020-11-30 14:27 尹昱钦 阅读(141) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 就是个板子。 注意一下两点: 1.scanf读入int后接着读char会把回车读进去,处理方法: %c前加个空格,即scanf(" %c",&c); 2.i有可能等于j,所以要判断一下,否则第四个点惨痛MLE。 AC代码 1 #include<iostream> 2 #includ 阅读全文
posted @ 2020-11-29 23:56 尹昱钦 阅读(122) 评论(0) 推荐(0) 编辑
摘要:传送门 左偏树 政治老师告诉我们,要从以下方面思考问题: 是什么 为什么 怎么做 1.是什么:嗯……从字面看,是树(堆),是一个长得向左偏的二叉树(堆)。就长这样: 定义们: 外节点:当且仅当节点 i 的左子树或右子树为空时,节点被称作外节点。 距离:一个点的距离,被定义为它子树中离他最近的外节点到 阅读全文
posted @ 2020-11-29 23:26 尹昱钦 阅读(123) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 用dp[h][i][j]表示处理到第h行,这一行状态是i,上一行状态是j的最大数量。 枚举第几行、这一行的状态、上一行的状态、上上行的状态,判断转移即可。 注意要用滚动数组(只会用到上一行、上上行)。 AC代码 1 #include<iostream> 2 #include<alg 阅读全文
posted @ 2020-11-26 00:19 尹昱钦 阅读(87) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 用dp[i][j][k]表示到了第i行,第i行状态为j,一共放了k个国王的方案数。 枚举行、本层状态、上层状态、国王数,进行转移。 其中用一个函数求出一个数的二进制有几个一(即这一行放了几个国王)。 初始化时要单独第一行。 注意没开longlong只有70pts。 AC代码 1 # 阅读全文
posted @ 2020-11-25 00:19 尹昱钦 阅读(65) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 和上一题相似,用dp[i][j]表示当前状态为i,刚刚放的是第j头奶牛的方案数。 其中i的二进制位表示第k位的奶牛到目前为止是否已经选择。 一开始初始化只有一头奶牛时方案数为1,然后枚举状态、上一个位置的奶牛、这一个位置的奶牛转移过来即可。 AC代码 1 #include<iost 阅读全文
posted @ 2020-11-24 23:49 尹昱钦 阅读(111) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 用一个数i的二进制表示某一位的村庄是否已经去过,dp[i][j]表示当前状态i,这一次去的村庄是j的最短路程。 然后就枚举i、j、k(k表示下一个去的村庄),然后在if判断是否符合条件后,用dp[i][j]更新dp[i|1<<(k-1)][k]。 注意边界的处理。 AC代码 1 # 阅读全文
posted @ 2020-11-24 00:28 尹昱钦 阅读(178) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 用dp[i][j][0/1]表示到第i节课、申请了j次,第i节课是否申请的最小体力和。 然后分别从dp[i-1][j][0]、dp[i-1][j][1],dp[i-1][j-1][0]、dp[i-1][j-1][1]疯狂转移过来。 先跑一边Floyd求最短路。 注意double无法 阅读全文
posted @ 2020-11-24 00:22 尹昱钦 阅读(103) 评论(0) 推荐(0) 编辑
摘要:异或运算 相同为0,不同为1。 1^1=0,0^1=1,1^0=1,0^0=0 P1469 找筷子 很有趣的一道题。因为空间有限制,所以我们每读入一个数就与ans异或一下,因为相同会变成0,所以剩下的即是答案。 1 #include<iostream> 2 #include<cstdio> 3 us 阅读全文
posted @ 2020-11-22 20:38 尹昱钦 阅读(130) 评论(0) 推荐(0) 编辑
摘要:身为一名高中生,却还是不知廉耻地做了一遍普及组的题目,体验一把AK的感觉 T1 优秀的拆分 传送门 T1还是一如既往的水。 根据题意,奇数直接-1,偶数就从一个很大的2的幂开始枚举,n比这个数大就输出这个数并且n减去这个数,然后这个数/2。 #include<iostream> using name 阅读全文
posted @ 2020-11-21 00:38 尹昱钦 阅读(2516) 评论(1) 推荐(0) 编辑
摘要://update:2020/11/22 期中成绩下来了,班级rank6,级部rank22,分数名次都在意料之外,历史老师放水了啊(66->78??)还有地理莫名少了六分QAQ…… xhy大佬还是日常级部前十orzzzzzz lpy大佬几个周没上晚自习仍级部前60 orzzzzz 我还是太菜了www 阅读全文
posted @ 2020-11-19 23:44 尹昱钦 阅读(358) 评论(4) 推荐(0) 编辑
摘要:咕了好久………… 期中考试结束了,终于有时间写一写游记之类的了。 但是印象真的好模糊了………… 还好有我的一篇周记作为参考 Day 0 晚上去机房听老师强调一下注意事项,然后刷了一套题,感觉还不错。 得知第二天我们走的比上学时间晚二十分钟,美滋滋~ Day 1上午 多睡了一会感觉就是不一样 今年我们 阅读全文
posted @ 2020-11-19 23:13 尹昱钦 阅读(167) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 枚举星星数,每加一颗星星,有以下情况: 零星关卡变成一星 一星关卡变成两星 一个零星关卡变成两星,一个一星关卡变成零星 一个零星关卡变成两星,一个两星关卡变成一星 转化为优选队列就是: q1:零星关卡到一星的代价 q2:零星关卡到二星的代价 q3:一星关卡从二星变成一星的代价 q4 阅读全文
posted @ 2020-11-05 23:02 尹昱钦 阅读(144) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 和种树这道题很像。 这个就是先差分求出每两个之间的间隔共n-1个,然后把这n-1个看做点,与种树一样处理。 注意因为要距离和最小,所以: 要用小根堆 要把a[0]和a[n]初始化成一个很大的数,因为在更新a[1]时要a[0]+a[2]-a[1],而0这个点我们不能选,所以初始化一个 阅读全文
posted @ 2020-11-05 20:31 尹昱钦 阅读(128) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 错误思路:对于每天的股票,若比当前入手的最低价股票高,则入手前面的,并在今天卖出去,再把今天的买入,为以后做准备。 #include<iostream> #include<cstdio> #include<cstring> #include<queue> using namespa 阅读全文
posted @ 2020-11-04 23:31 尹昱钦 阅读(130) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 还是反悔贪心。按照位置从左到右排序,每走到一个新的机房就m减去走的路程,然后判断剩下的时间够不够ak此机房,如果够,就ak,并把时间加入到大根堆中,如果不够,就比较堆顶,若当前更优,就弹出堆顶,把新元素加入堆。 AC代码 1 #include<iostream> 2 #includ 阅读全文
posted @ 2020-11-04 21:33 尹昱钦 阅读(116) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 反悔贪心。按照结束时间排序,然后枚举结束时间,能修就修,不能修就比较以前修过的耗时最长的建筑和当前这个建筑比较是否更优。 注意这里用大根堆。 AC代码 1 #include<iostream> 2 #include<cmath> 3 #include<cstring> 4 #inc 阅读全文
posted @ 2020-11-04 20:49 尹昱钦 阅读(139) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 反悔贪心。排序后,枚举时间,每次能加就加,并且把对应权值扔到小根堆里,若不能加,就把权值和小根堆堆顶比较,若更优,则换成这个任务,把原来那个踢出堆顶,扔进这个点,并且ans加上两个点的权值差。 注意ans要用long long保存,不然会惨遭41分。 AC代码 1 #include 阅读全文
posted @ 2020-11-04 20:19 尹昱钦 阅读(187) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示