Jessius的博客

blog.jessun.me

BZOJ 1034, 泡泡堂

排序后套用田忌赛马的贪心思想。 1. 当己方实力值最小的选手实力值大于对方最小时,直接比赛即可; 2. 当己方实力值最大的选手实力值大于对方最大时,直接比赛即可; 3. 用己方实力值最小的选手迎战对方实力值最大的选手(注意判断战平的情况)。

2017-03-10 21:00:20

阅读数:175

评论数:0

BZOJ 2330, 糖果

求最少需多少糖果若干约束条件。Analysis说起来这还是我的第一道差分约束题,汗颜。 条件一等价于A-B≥0 , B-A≥0; 条件二等价于B-A≥1; 条件三等价于A-B≥0; 条件四等价于A-B≥1; 条件五等价于B-A≥0。 具体怎么连边可以手画三角形脑补一下。 同时要注意条...

2017-03-06 20:16:30

阅读数:102

评论数:0

BZOJ 2456, Mode

给定一个数列,试求其众数。Analysis内存限制的脑洞题。 感觉自己已经未老先衰了…… 主要是运用相消的思想,具体看代码吧……描述无能。

2017-03-04 09:13:57

阅读数:106

评论数:0

BZOJ 1066, 蜥蜴

参见题目描述。Analysis网络流的难点就在于构图…… 将一根石柱拆成上端和下端两个点并连边,容量为石柱高。 从源点像一根有蜥蜴的石柱上端连边,容量为1。 再从每一根能跳出地图的石柱下端向汇点连边,容量为INF。 蒟蒻真的做题无力啊……

2017-03-04 09:06:50

阅读数:85

评论数:0

BZOJ 1024, 生日快乐

根据特定切割方法将一块蛋糕分成面积相等的若干块小蛋糕,求可行切割方案中小蛋糕长边比短边的最大值的最小值。Analysis数据范围很小,甚至不必二分直接搜索即可通过。 注意到对于某一块蛋糕,可行的切割方案数是有限的(具体见代码实现),所以状态数也挺少的……

2017-02-15 20:10:31

阅读数:101

评论数:0

BZOJ 1854, 游戏

给定N个武器,每个武器拥有两个属性值(属性值在[1,10000]之间,要求选出部分武器,使得每个武器的一个属性值组成的数列为自1的连续单增序列,且长度最长。二分图匹配。 每个武器向它的两个属性连边,然后从1到10000跑匈牙利算法(匹配就相当于每个武器只挑选出一个属性值)。 一旦无法增广,即输...

2017-02-15 11:16:34

阅读数:81

评论数:0

BZOJ 1878, HH的项链

给定一个数列,询问某区间内不同数字的个数。Analysis在线算法不会。离线莫队代码能力又不够…… 用树状数组水了过去…… 首先对选用以左端点为关键字排序,然后用树状数组维护。 先将每种数字第一个出现的位置加一,询问来到该点后将其后继加一,答案用树状数组累加前缀和相减即可。 详见代码。

2017-02-11 17:33:56

阅读数:109

评论数:0

BZOJ 1004, 洗牌

等价类计数问题。 根据Burnside引理,只需统计每种置换不动点的个数后除以置换数即可。 其中,求不动点个数是类似于背包问题的动规,而除法在模意义下需要用扩欧求得逆元。

2017-02-11 12:42:08

阅读数:112

评论数:0

BZOJ 1029, 建筑抢修

贪心无力啊…… 首先将建筑按T2从小到大排序,然后用优先队列维护。 如果当前耗时小于目前带修理的建筑的T2,便将答案加一,入队,当前耗时累加上该建筑的T1; 若大于其T2,就比较优先队列的队首元素的T1与该建筑的T1,若队中元素较大即出队,并将待修理建筑入队,更新当前耗时。

2017-02-11 09:28:36

阅读数:139

评论数:0

BZOJ 1088, 扫雷

一张大小为N×2的雷图,第一列放有地雷,第二列没有。 给出第二列各方格内的数字(意义如扫雷游戏),试统计第一列地雷有多少种合法的分布情况。动态规划。 只要列出不同雷数之间转移的路径即可根据前后两个的数字进行转移。 注意两端点情况的处理。发现动态规划其实已经把这题想复杂了……只要确定第一列前两...

2017-02-10 14:19:43

阅读数:94

评论数:0

BZOJ 1087, 互不侵犯

给定一张大小为N×N的棋盘,要求放置K个棋子,其中,棋子上下左右以及左上、左下、右上和右下八个位置不得有其它棋子存在。求合法方案数。动态规划。 状态数很多,可以先预处理出一行的合法放置方案,再处理出上一行放置的情况下,下一行哪些方案是可行的,于是一行一行转移即可。 运用位运算优化预处理,后来四...

2017-02-10 13:06:30

阅读数:96

评论数:0

BZOJ 1059, 矩阵游戏

给定一个大小为N×N的黑白染色矩阵,试判断能否通过交换行与列使矩阵左上角至右下角这一对角线上所有点均为黑色。Analysis易知若几个黑点原本同行或同列,不管如何变换,它们始终同行或同列。因此我们只需判断是否存在N个点互不同行,也互不同列。 由此转化为二分图模型。对于一个坐标为(i,j)的黑点,...

2017-02-10 08:32:21

阅读数:84

评论数:0

BZOJ 1798, 维护序列

维护一个数列,要求支持区间加、区间乘以及查询操作。很裸的线段树,难点在于加法和乘法的操作顺序。 标记下传时应先打乘法标记,再打加法标记,同时更新时还要用乘法标记维护加法标记。

2017-02-09 10:53:44

阅读数:135

评论数:0

BZOJ 1014, 火星人

给定一仅有小写字母组成的字符串,要求支持单字符修改、插入和查询不同起始位置的最长公共前缀长度。用Splay维护字符串,二分+Hash查询。 反反复复WA了很多次,就因为Hash的操作顺序不太对……也算是买了个教训。

2017-02-08 21:17:20

阅读数:201

评论数:0

BZOJ 1016, 最小生成树计数

给定一张简单无向加权图,求其最小生成树方案数。貌似有一个Matrix Tree定理……但是感觉目前不是很学得进东西,所以还是打了dfs。 先跑一遍Kruskal,统计不同权值的边各出现几次。 然后dfs判断某一种权值的边的方案数,累乘即可。 需要注意的是并查集不可以路径压缩,那样会导致连通块...

2017-02-08 09:40:30

阅读数:197

评论数:0

BZOJ 1070, 修车

某汽车维修中心有m位技术人员,有n辆汽车待修理。 不同的技术人员修理不同车辆耗时不同。 最小化平均等待时间。经典的最小费用最大流。 设第j位技术人员修理第i辆汽车耗时为w[i,j] 。 将技术人员拆成n个点,每个点向汽车连容量为1的边,第k个点所连边费用为k×w[i,j],表示倒数第k个修...

2017-02-08 07:26:10

阅读数:68

评论数:0

BZOJ 3110, K大数查询

要求维护一个数列,支持在某部分的每个位置填上一个数以及查询某部分第K大的数字。终于学习了一下树套树的姿势……其实和自己想的也差不多……但是不学还是打不出代码来…… 外层是权值线段树,内层是区间线段树。 要注意的细节比较多。二分查询过程中结果可能超过 Maxlongint ,需要用 unsign...

2017-02-07 20:05:40

阅读数:88

评论数:0

BZOJ 1497, 最大获利

选择合理方案新建基站,满足部分用户群需要,求最大获利(净获利 = 获益之和 - 投入成本之和)。注意到类似于有向无环图的性质,套用最小割模型中的最大权闭合图即可。参考资料:胡伯涛2007年集训队论文《最小割模型在信息学竞赛中的应用》

2017-02-07 10:22:14

阅读数:84

评论数:0

BZOJ 3223, 文艺平衡树

编写一个支持对数列进行翻转子串操作的数据结构。Splay裸题。 只需要支持翻转操作即可。 输出数列时一个一个查询就是了……

2017-02-06 20:21:00

阅读数:155

评论数:0

BZOJ 1192, 鬼谷子的钱袋

将一个数字m分为几个互不相同的数字,使得由这些数字可以组成1至m的任意数字。 求最少划分为几个数字可满足要求。水题。 求得满足2^k>m的最小k值即可。

2017-02-06 16:28:29

阅读数:88

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭