OI - IceCab

about oi

排序:
默认
按更新时间
按访问量

codevs1081 树状数组的区间修改和单点查询

题目 给你N个数,有两种操作 1:给区间[a,b]的所有数都增加X 2:询问第i个数是什么? codevs1081 思路 代码 #include <cstdio> #include <cstdlib&...

2018-08-09 19:01:49

阅读数:6

评论数:0

codevs1080 树状数组模板题

题目 codevs1080 思路 一、树状数组 1.单点修改,区间查询: < O(logn)。 2.代码量小于线段树,但功能不如线段树多。 3.查询只支持1~i的和,所以求区间和要用前缀和的形式。 (具体树状数组的代码实现是固定的,看代码) 代码 ...

2018-08-09 08:59:26

阅读数:10

评论数:0

[并查集] codevs1073 家族(并查集的一般写法和两种优化)

题目 codevs1073 思路 即给一个无向图,判断两个结点是否连通。 并查集 路径优化的内容上面讲了,对于另一个优化:按秩合并: 在合并两个子树的时候,分别设两个子树的结点个数为tot[i],tot[j]。若tot[i]>tot[j],那么理想的方法是把j...

2018-08-08 19:58:07

阅读数:11

评论数:0

[二叉堆] 洛谷P1090 合并果子

题目 LP1090 思路 本题需要画一下图 可以观察到: 每个果子的代价:重量*在树中深度 考虑如果构造一个深度越深的结点权值越小,就能达到最小权值。那么本题的做法就变成了每次选最小的两堆果子合并。这个可以用二叉堆来做。 代码 #include <c...

2018-08-08 19:02:28

阅读数:11

评论数:0

[堆] 洛谷P3378 二叉堆模板

题目 如题,初始小根堆为空,我们需要支持以下3种操作: 操作1: 1 x 表示将x插入到堆中 操作2: 2 输出该小根堆内的最小数 操作3: 3 删除该小根堆内的最小数 二叉堆 支持两种操作 1.往一个集合加一个数。 2.从集合中删去一个优先值最大的元素。 规则 每...

2018-08-08 11:17:44

阅读数:30

评论数:0

[二分] 洛谷P1083 借教室 (二分答案+差分)

题目 LP1083 思路 二分答案 首先可以看出,最后答案ans存在明显的单调性,这个单调性是1或0的单调性,有点特殊,大概是这样的: 所以就可以二分答案,二分出来的答案应该满足这样的规律:对于ans个订单,教室够借。对于ans+1个订单,教室不够借。 这里给出二分的模板:(来自W...

2018-08-07 18:36:33

阅读数:9

评论数:0

[二分] WYF快速幂魔改版

题目出处 qbxt夏北京二期,提高组精英版,WYF出题。 题目 给一个n个数的序列a,需要进行m次询问,每次询问需要计算a[a[a[x…]]]的值,其中括号有t对。 输入第一行有n,m,t三个数,第二行有n个数表示序列a,第三行有m个数分别表示每次询问。 输出m个数,分别表示每次询问所得...

2018-08-06 21:51:21

阅读数:7

评论数:0

qbxt 8.6~8.13

早上 1.快速幂 2.快速幂改造:a[a[a[a[x]]]] 3.二分一般写法 4.noip2011 聪明的监质员 5.noip2012 借教室 6.平均值1 7.平均值2 8.骑行川藏 9.取数

2018-08-06 20:50:50

阅读数:11

评论数:0

[二分] 洛谷P1226 快速幂

题目 输入b,p,k的值,求b^p mod k的值。其中b,p,k*k为长整型数。 做法 快速幂讲解 代码 代码1:没有位运算 #include <cstdio> #include <cstdlib&...

2018-08-06 13:08:31

阅读数:7

评论数:0

[表达式树] SDUT2484 算术表达式的转换(二叉树遍历)

题目 输入一算术表达式,输出该表达式转换所得到的前缀式 中缀式 后缀式。 Sample Input a*b+(c-d/e)*f# Sample Output +*ab*-c/def a*b+c-d/e*f ab*cde/-f*+ 思路 本题用表达式树,先建一个表达式树,然后这个...

2018-08-02 10:16:56

阅读数:13

评论数:0

[背包DP] 洛谷P2066 机器分配 (最小字典序的最优方案)

题目 总公司拥有高效设备M台,准备分给下属的N个分公司。各分公司若获得这些设备,可以为国家提供一定的盈利。问:如何分配这M台设备才能使国家得到的盈利最大?求出最大盈利值。其中M≤15,N≤10。分配原则:每个公司有权获得任意数目的设备,但总台数不超过设备数M。 INPUT 第一行有两个数,第...

2018-07-23 14:10:02

阅读数:21

评论数:1

[背包DP] 洛谷P1284 三角形牧场(已知推未知的状压DP)

题目 LP1284 思路 首先本题是一个判断DP,那么就考虑指标函数如下定义: d == 0:不存在, d == 1:可以构成边, d == 2:可以构成三角形。 那么就是状态的定义问题,刚开始我想到的是d(i,j,k),分别表示三角形三边。但这样发现1600^3会MLE,所以不可取。 ...

2018-07-21 15:27:15

阅读数:32

评论数:0

[背包DP] 洛谷相关题目整理与练习(74题-)

以背包为标签,搜出了这么多题,按难度排序,一道一道做: TODO 题目 难度 备忘录 AC 采药 普及- 01背包模板 AC 开心的金明 普及- 01背包模板 AC 小A点菜 普及- 背包方案数问题 AC...

2018-07-21 09:33:11

阅读数:38

评论数:0

[背包DP] Vijos1037 搭建双塔 (二维费用存在性背包)

题目 2001年9月11日,一场突发的灾难将纽约世界贸易中心大厦夷为平地,Mr. F曾亲眼目睹了这次灾难。为了纪念“9?11”事件,Mr. F决定自己用水晶来搭建一座双塔。 Mr. F有N块水晶,每块水晶有一个高度,他想用这N块水晶搭建两座有同样高度的塔,使他们成为一座双塔,Mr. F可以从这...

2018-07-20 14:41:35

阅读数:11

评论数:0

[背包DP] Vijos1412 多人背包(背包第k优解)(STL使用问题)

题目 VP1412 LP1858 思路 思路见背包九讲。 刚开始考虑直接用stl的queue实现,vijos的第一个题解也是这么实现的,但是仔细一看好像O(NVK)O(NVK)O(NVK)好像不太行,然后vijosAC,洛谷一半的点TLE了。 后面手动用数组实现了一下队列,洛谷也A...

2018-07-20 14:14:35

阅读数:13

评论数:0

[背包DP] 洛谷P1757 分组背包

题目 LP1757 思路 背包九讲 代码 #include <cstdio> #include <cstdlib> #include <cstring&amp...

2018-07-19 21:13:35

阅读数:20

评论数:0

[背包DP] Vijos1334 NASA的食物计划(二维费用背包)

题目 航天飞机的体积有限,当然如果载过重的物品,燃料会浪费很多钱,每件食品都有各自的体积、质量以及所含卡路里,在告诉你体积和质量的最大值的情况下,请输出能达到的食品方案所含卡路里的最大值,当然每个食品只能使用一次。 思路 背包九讲 代码 #include <cs...

2018-07-19 20:56:36

阅读数:17

评论数:0

[背包DP] CODEVS 3269 混合背包

题目 CODEVS 3269 思路 参考背包九讲,抽象化以后的过程组合起来,简单+简单+简单 != 难。 代码 #include <cstdio> #include <cstdlib&g...

2018-07-19 20:24:54

阅读数:24

评论数:0

[多重背包] POJ1276 Cash Machine (二进制优化)

题目 有各种不同面值的货币,每种面值的货币有不同的数量,请找出利用这些货币可以凑成的最接近且小于等于给定的数字cash的金额。 思路 多重背包模板题。 1.朴素的多重背包,每个状态转移时枚举用的某种货币的个数,复杂度:O(C∗∑n[i])O(C∗∑n[i])O(C*\sum n[i]),T...

2018-07-19 15:41:28

阅读数:26

评论数:0

[动态规划] 《背包九讲》阅读笔记

1.01背包 题目与问题解决 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。 过程 ZeroOnePack,表示处理一件01背包中的物品,两个参数cost、weight分别表明这件物品的费用和价值。 ...

2018-07-19 15:33:47

阅读数:39

评论数:0

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