会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
百度一下
尹昱钦
OI,再见 ACM,你好
博客园
首页
新随笔
联系
管理
上一页
1
···
7
8
9
10
11
12
13
14
15
···
27
下一页
2021年8月21日
洛谷 P3958 [NOIP2017 提高组] 奶酪(建图,dfs)
摘要: 传送门 解题思路 \(n^2\) 遍历每个点,判断两个空洞之间是否能联通,若联通,则在两个点之间建一条边。 然后在能抵达上表面的点和能抵达下表面的点分别建边连向上表面/下表面,最后dfs判断上下表面是否联通即可。 总复杂度 \(O(n^2)\) AC代码 #include<iostream> #in
阅读全文
posted @ 2021-08-21 14:07 尹昱钦
阅读(95)
评论(0)
推荐(0)
2021年8月14日
洛谷 P2216 [HAOI2007]理想的正方形(二维单调队列)
摘要: 传送门 解题思路 用二维单调队列求出每个 \(n\times n\) 矩形的最大值和最小值。 其实就是先在每一行上做原数组单调队列,再维护每一个行上最大值/最小值所组成的数组的单调队列。 AC代码 (代码写复杂了) #include<iostream> #include<algorithm> #in
阅读全文
posted @ 2021-08-14 17:13 尹昱钦
阅读(60)
评论(0)
推荐(0)
2021年8月13日
洛谷 P1950 长方形(单调栈,dp)
摘要: 传送门 解题思路 单调栈的一道好题。 枚举矩阵右下角的端点。 首先可以发现,对于一个确定的右下角,对矩阵有限制的*的位置的行数是从左到右严格递增的。 也就是这个样子: 所有就可以用单调栈储存一下这个对答案有影响的1的位置。 于是我们就有了状态转移方程: \(dp[i][j]=dp[i][s.top(
阅读全文
posted @ 2021-08-13 10:47 尹昱钦
阅读(189)
评论(0)
推荐(0)
2021年8月11日
洛谷 P3467 [POI2008]PLA-Postering(单调栈)
摘要: 传送门 解题思路 可以举例观察得到:131这种结构可以省去一次,而313不行。 所以就用单调栈维护一个自栈顶到栈底严格递减栈,每次若栈顶大于a[i],则栈顶出栈并且ans++,若相等则出栈并且ans不变。 可以把a[n+1]设置为0.(即最后让所有元素出栈) ##AC代码 #include<iost
阅读全文
posted @ 2021-08-11 19:06 尹昱钦
阅读(91)
评论(0)
推荐(0)
2021年8月8日
AT4142 [ARC098B] Xor Sum 2(尺取法)
摘要: 洛谷传送门 解题思路 考虑异或性质,发现对于每一二进制位单独来看,两个数相加和异或结果一样,而要想最终结果相等,则要保证加法每一位都不进位。 所以这道题就转化为要求每个二进制位只有一个1。 AC代码 #include<iostream> #include<algorithm> #include<cm
阅读全文
posted @ 2021-08-08 10:14 尹昱钦
阅读(34)
评论(0)
推荐(0)
2021年8月7日
洛谷 P1311 [NOIP2011 提高组] 选择客栈 & P6032 选择客栈 加强版(双指针)
摘要: 传送门 加强版传送门 解题思路 首先很显然,对于同一种色调的客栈来说,从小到大枚举左端点 L,符合要求的客栈 R~N 一定是满足 R 单调递增的。 而且选择的咖啡店也是随着 L 的增加间断着递增。 所以就可以双指针(准确说是多指针)将时间复杂度降至O(n)。 双倍经验双倍快乐 AC代码 #inclu
阅读全文
posted @ 2021-08-07 11:50 尹昱钦
阅读(88)
评论(1)
推荐(0)
洛谷 P1102 A-B 数对(双指针)
摘要: 传送门 解题思路 左右指针,每次 \(a[r]-a[l]=c\) 对答案贡献就是 \(相同的a[l]的数量\times相同的a[r]的数量\) 当然也可以用map水过去…… 记得ans要开long long。 AC代码 #include<iostream> #include<algorithm> #
阅读全文
posted @ 2021-08-07 00:14 尹昱钦
阅读(146)
评论(0)
推荐(0)
2021年8月6日
洛谷 P3138 [USACO16FEB]Load Balancing S(二维前缀和,离散化)
摘要: 传送门 解题思路 先把x和y分别离散化,然后求一下前缀和,枚举栅栏,求一下即可。 AC代码 #include<iostream> #include<algorithm> #include<cmath> #include<cstdio> #include<cstring> using namespac
阅读全文
posted @ 2021-08-06 23:48 尹昱钦
阅读(126)
评论(0)
推荐(0)
2021年8月1日
洛谷 P1052 [NOIP2005 提高组] 过河(dp,数学)
摘要: 传送门 解题思路 很巧妙的一个题。 朴素的dp方程肯定都能列出来,关键是离散化如何操作。 可以仿照NOIP2017D1T1小凯的疑惑,将两个石头之间距离>=(st-s-t)全部转化为(st-s-t)。 可以理解为若距离>=(st-s-t),则所有的点都能到达。 但是这题要求宽松,方便又保险起见,把距
阅读全文
posted @ 2021-08-01 10:57 尹昱钦
阅读(233)
评论(0)
推荐(0)
洛谷 P1955 [NOI2015] 程序自动分析(并查集,离散化)
摘要: 传送门 解题思路 很简单的一道并查集,但是我自己却没做出来,关键点没想到,害,还是太菜了…… 直接放重点: 先构建相等关系,然后判断不相等关系成不成立,所以分开操作。 离散化。 AC代码 #include<iostream> #include<algorithm> #include<cmath> #
阅读全文
posted @ 2021-08-01 01:07 尹昱钦
阅读(48)
评论(0)
推荐(0)
2021年7月31日
洛谷 P3258 [JLOI2014]松鼠的新家(树上差分,lca)
摘要: 传送门 解题思路 简化一下问题,即为给你一个数组a,对于所有的i,将a[i]到fa[a[i+1]]路径上的点加一。 注意端点处理(可以理解为拐弯处只记一次)。 AC代码 #include<iostream> #include<cstring> #include<cstdio> #include<al
阅读全文
posted @ 2021-07-31 23:33 尹昱钦
阅读(36)
评论(0)
推荐(0)
2021年7月27日
洛谷 P2296 [NOIP2014 提高组] 寻找道路(反图bfs)
摘要: 传送门 解题思路 首先明白题意: 能经过的点必须满足其所有连向的节点都能走到终点。 于是我们就可以建个反图,跑一遍dfs,求出有多少满足条件的点,最后bfs跑一遍即可。 如何判断? 用一个num数组表示节点i在原图的出度,即在反图的出度。 每当有一个点指向节点i时,num[i]--。 最后若num[
阅读全文
posted @ 2021-07-27 23:55 尹昱钦
阅读(55)
评论(0)
推荐(0)
2021年7月26日
洛谷 P4141 消失之物(dp方案数)
摘要: 传送门 解题思路 用dp[i][j]表示没有消失时前i个物品组成装满容积为j的背包的方案数。 很显然, \(dp[i][j]+=dp[i-1][j-w[i]]\) 仿照背包,i这一维可以省去,j要逆序。 然后再设f[i][j]表示去掉第i个物品时装满容积为j的方案数。 那么在dp中减去用到i这个物品
阅读全文
posted @ 2021-07-26 14:37 尹昱钦
阅读(85)
评论(0)
推荐(0)
洛谷 P5322 [BJOI2019]排兵布阵(dp,分组背包)
摘要: 传送门 解题思路 首先很显然的贪心是 在每个地方放置的士兵一定是某个敌人放置士兵的两倍加一。 这样每个地方就有s种放置方法,每种对应一个数量和一个权值,于是就成了很典型的分组背包。 AC代码 #include<iostream> #include<cstring> #include<algorith
阅读全文
posted @ 2021-07-26 14:09 尹昱钦
阅读(65)
评论(0)
推荐(0)
2021年7月25日
洛谷 P4025 [PA2014]Bohater(贪心)
摘要: 传送门 解题思路 很妙的一道贪心题。 首先很显然的是,一定先把能回血的怪先干掉,然后再去干扣血的怪。 分类讨论: 对于回血的怪,显然按照d从小到大排序,以免你一开始就被干死。 对于扣血的怪,我们倒着考虑,从终止状态,每次减去a,然后加上d,就变成了回血怪的情况。 所以对于扣血的怪按照a从大到小排序。
阅读全文
posted @ 2021-07-25 11:19 尹昱钦
阅读(56)
评论(0)
推荐(0)
上一页
1
···
7
8
9
10
11
12
13
14
15
···
27
下一页
公告