上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 29 下一页
摘要: 题目链接:https://www.luogu.com.cn/problem/P1494 一道很经典的莫队模板题,然而每道莫队题的大体轮廓都差不多。 首先莫队是一种基于分块的算法,它的显著特点就是: 能在$O(1)$的时间内从$(l,r)$转换到$(l,r-1),(l-1,r),(l+1,r),(l, 阅读全文
posted @ 2020-02-06 22:23 dfydn 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://vjudge.net/problem/UVALive-2995 这道题的主要难点在于三维坐标系的建立,然后在坐标系中进行迭代更新。 注意用宏定义来简化代码。 AC代码: 1 #include<cstdio> 2 #include<iostream> 3 #include<c 阅读全文
posted @ 2020-02-05 12:20 dfydn 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://vjudge.net/problem/UVA-10881 其实这道题的关键只有一句话: 当两个蚂蚁因碰撞而掉头的时候,我们完全可以认为是两个点对穿而过。 这时候我们的主要任务就是弄清楚“谁是谁”。 然而很明显每只蚂蚁的相对顺序是不变的,所以我们要记录一个$order$数组。 阅读全文
posted @ 2020-01-29 21:44 dfydn 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://www.luogu.com.cn/problem/P2058 这是一道用手写队列模拟的一道题,没有什么细节,只是注意因为数不会很大,所以直接用数作为数组下标即可,不用用map映射。 AC代码: 1 #include<cstdio> 2 #include<iostream> 阅读全文
posted @ 2020-01-27 20:14 dfydn 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://vjudge.net/problem/UVALive-3708 这道题的思路也是比较难想。 首先根据上一题(Uva 11300)可知,要想让移动距离最短,那么至少要使一个雕塑位置不变,随便一个即可。然后以它为坐标原点,以逆时针为正方向,钦定每一个雕塑的新位置。 然后我们设$ 阅读全文
posted @ 2020-01-24 15:15 dfydn 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://vjudge.net/problem/UVA-11300 这道题的思路太神了,但很难想到是贪心。 用M表示每个人最终拥有的金币数。 首先假设有四个人。假设1号给2号3枚,2号又给1号5枚,那么实际上1号并没有给2号,而2号给了1号2枚。这样设$x_2$表示2号给了1号$x_ 阅读全文
posted @ 2020-01-23 19:05 dfydn 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://vjudge.net/problem/UVA-11729 一道比较显然的贪心。 我们可以发现如果我们让$a_j$最大的尽可能地往前来交待,那么时间重合地会更多。 一个很明显的贪心策略:按照$j$从大到小排序,记录每一次的$s$(交代的时间)和$s+a_j$(结束的时间),用 阅读全文
posted @ 2020-01-22 22:40 dfydn 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://www.luogu.com.cn/problem/P1043 这道题与石子合并很类似,都是把一个环强制改成一个链,然后在链上做区间dp 要初始化出1~2n的前缀和,方便在O(1)的时间内查询[l,r]区间的和。 f[l][r][h] -> 第一维:左端点;第二维:右端点;第 阅读全文
posted @ 2020-01-20 20:27 dfydn 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 嗯... 题目链接:https://www.luogu.com.cn/problem/P3379 这道题是LCA模板,我用的是倍增的思想。 首先要先用dfs对up和dep进行初始化: up[u][0]=fa; up[u][k]=up[up[u][k-1]][k-1]; //类似分步走的思想dep[u 阅读全文
posted @ 2020-01-19 18:37 dfydn 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 嗯... 题目链接:https://www.luogu.com.cn/problem/P3865 ST(Sparse Table)算法,运用了倍增的思想。 我们令f[i][k]数组表示区间[i, i + 2^k - 1]中的最小值。 显然有递推式: f[i][0]=a[i]; f[i][j]=max 阅读全文
posted @ 2020-01-18 20:25 dfydn 阅读(125) 评论(0) 推荐(0) 编辑
上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 29 下一页