上一页 1 2 3 4 5 6 7 8 9 ··· 27 下一页
摘要: P3957 跳房子 ~~前年pj没去年难好吧~~ 首先要发现这个答案是有单调性的。 这个很显然了:氪金越多游戏越容易玩,氪金越少越难。 然而也有界限:如果所有正数的和加起来还不够需求,无解。 所以二分答案,考虑如何判定答案。 是人都知道要设一个$dp[i]$表示跳前$i$个房子的最大分数。 50pt 阅读全文
posted @ 2019-02-15 00:40 Garen-Wang 阅读(156) 评论(0) 推荐(0) 编辑
摘要: P2627 修剪草坪 给你一个$n$个数字的数组,至多连续取$k$个数字,求取出的最大和。 预处理了前缀和之后,一维dp很容易想:$dp[i] = max(dp[j 1] + sum[j+1,i])$ 用前缀和写就是$dp[i]=max(dp[j 1]+sum[i] sum[j])$ 把与$i$有关 阅读全文
posted @ 2019-02-15 00:30 Garen-Wang 阅读(194) 评论(0) 推荐(0) 编辑
摘要: P1099 树网的核 首先要用人话来翻译这道题: 给你一个无根树和一个非负整数$s$,求直径上的一段长度不超过$s$的路径$F$,使树上结点到$F$距离最大值的最小值。 首先当然要求直径辣!因为数据小,直接大力两次dfs就可以求出直径。 然后怎么在直径上取完所有长度不超过$s$的路径?这道题的关键就 阅读全文
posted @ 2019-02-07 00:43 Garen-Wang 阅读(127) 评论(0) 推荐(0) 编辑
摘要: NOIP2018 复盘 前言 在这里立一个可能无法实现的flag: 把NOIP从古至今(luogu上有)的每一年都写一篇复盘!!! ~~伏拉格综合征开始了~~ 在复盘就不讲那些伤心的话了。 D1T1 铺设道路 考试时居然不知道这道题是原题。。。 一共有两种做法: 1. 递推/贪心。 设一个数组$f$ 阅读全文
posted @ 2019-02-04 23:40 Garen-Wang 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 左偏树学习笔记 具体印象 普通的二叉堆只能实现普通的堆的功能。 如果需要支持合并操作,就需要使用可并堆,左偏树就是一种好写的可并堆。 左偏树是一颗二叉树,由于特殊性质,整棵树会集中在左边,所以叫做左偏树。 左偏给堆的合并创造了很优秀的复杂度。 上面的图片来自luoguP3378题解区@lolte d 阅读全文
posted @ 2019-02-04 20:05 Garen-Wang 阅读(373) 评论(0) 推荐(0) 编辑
摘要: P1312 Mayan游戏 这道题跟斗地主都是大模拟啊!稍微挂一点可能就爆零了! 图肯定能存,直接二维数组扔进去即可。 然后套dfs模板,搜索就先照那样搜。 核心操作有两个:一个是判断那些块可以消掉,一个是把那些可以消的消了。 第一个操作的核心代码是这样的: cpp for(int i = 1; i 阅读全文
posted @ 2019-02-02 22:42 Garen-Wang 阅读(212) 评论(0) 推荐(0) 编辑
摘要: CF1095E Almost Regular Bracket Sequence 给定一个长度为 $n$ 的小括号序列,求有多少个位置满足将这个位置的括号方向反过来后使得新序列是一个合法的括号序列。 这道题要用到高级前缀和+后缀和。 我们设两个int数组$s1$和$s2$,两个bool数组$b1$和$ 阅读全文
posted @ 2019-02-02 22:22 Garen-Wang 阅读(157) 评论(0) 推荐(0) 编辑
摘要: P3052 [USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper 给出n个物品,体积为w[i],现把其分成若干组,要求每组总体积 eps; T = delta) { // 模拟退火打乱序列过程 ll x = rand() % n + 1, y = rand() % n + 阅读全文
posted @ 2019-02-02 22:09 Garen-Wang 阅读(104) 评论(0) 推荐(0) 编辑
摘要: CF1096D Easy Problem ~~复习了几乎忘光了的dp~~ dp数组是这样子的:$dp[i][0/1/2/3/4]$表示前$i$个字符,"hard"遍历到了第几个字符的最小代价。 核心代码是这样的: cpp memset(dp, 0x3f, sizeof dp); for(int i 阅读全文
posted @ 2019-02-02 21:54 Garen-Wang 阅读(121) 评论(0) 推荐(0) 编辑
摘要: P2783 有机化学之神偶尔会做作弊 ~~史上最水黑题~~ 做法很暴力:tarjan算法求点双缩点,建新图,跑树剖或倍增,求LCA,通过深度算出答案即可。 点双的做法跟强连通分量的tarjan算法极其相似,唯一的一点不同就在于不能回到父节点。 ~~要是回父节点的话那都有两个点大小的环咯~~ 自己交上 阅读全文
posted @ 2019-02-02 21:20 Garen-Wang 阅读(112) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 27 下一页