摘要: 01背包,是一个非常基础的东西 在此列出三种基本操作 1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 int f[10000][10000]; 5 int v[100000]; 6 int t[100000]; 7 i 阅读全文
posted @ 2019-07-25 20:37 Simex 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 链接:P4141 消失之物 这道题确实很坑,在上课的时候,我们老师讲了一个分治的做法。 然而分治实在太玄学了。但是老师的课件上面还写了“有一种更简单的操作,但是没有拓展性。” 这种做法是什么呢? 非常简单,比如说我们要求出在没有i物品时的x的方案,我们只要先跑一边背包得到在所有物品都有的情况下的方案 阅读全文
posted @ 2019-07-25 20:06 Simex 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 链接:P3368 【模板】树状数组 2 看一下模板一?请点击 好,这道题让我们实现区间修改和单点查询。但是根据:1中我们可以发现,树状数组的操作只有修改单点和区间求和,那该怎么实现? 我们不可能强行加上这些功能,就需要进行改造。最简单的方法就是改变数组。 有一个数组,我们只要改变其中两个点,就可以实 阅读全文
posted @ 2019-07-25 18:50 Simex 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 链接:P3374 【模板】树状数组 1 树状数组是个很有用的数据结构,当然,有许多时候我们也可以用线段树代替他。 不过线段树比树状数组难得多,所以应该是用树状数组代替线段树才对。 比如说看看这个:[洛谷日报第22期]可以代替线段树的树状数组? 树状数组是一种基于二进制思想实现的数据结构,要用于查询任 阅读全文
posted @ 2019-07-25 18:28 Simex 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 链接:P1631 在做这道题前,我们来考虑这样的一个问题 已知一个n*n的数表,保证在每一行上,有a[i][j]<a[i][j+1],我们怎样求出它的第k小的值? 对于这个问题,我们 在做这道题前,我们来考虑这样的一个问题 已知一个n*n的数表,保证在每一行上,有a[i][j]<a[i][j+1], 阅读全文
posted @ 2019-07-25 10:44 Simex 阅读(188) 评论(0) 推荐(0) 编辑