acm
forOnward
这个作者很懒,什么都没留下…
展开
-
平衡树之替罪羊树 洛谷P3369
题目替罪羊树大概的思路就是一棵普通的平衡树,然后当平衡树失衡的时候(失衡条件可以自己判断,一般是左右子树的大小大于等于整棵树的大小的0.7的时候),暴力拍扁(也就是中序遍历),代码:#include<iostream>#include<cstdio>#include<cstring>#include<vector>#include<algorithm>#include<queue>#include<string&原创 2020-05-31 13:00:49 · 437 阅读 · 0 评论 -
HDU - 1024 Max Sum Plus Plus
https://vjudge.net/problem/HDU-1024题意:将一个长度为n的序列,分成m段不相交叉的子段,使得他们的和最大输入: m,n , 接下来n个数设:dp[i][j]:必须选第i个数,前i个数分为j段最大值mxx[i][j]:dp[1][j]~dp[i][j]的最大值转移方程:dp[i][j]=max(dp[i-1][j]+a[i],mxx[i-...原创 2020-04-06 22:09:00 · 181 阅读 · 0 评论 -
poj 1984 Navigation Nightmare 带拓展域并查集
https://vjudge.net/problem/POJ-1984#author=0题目大意:有n个网格状的农田,每个农田之间有距离,会依次给出关系,在给出关系后询问两个农田之间的曼哈顿距离是多少?若无法判断则输出-1。输入:对于每组案例:首先输入两个数字n和m,表示有n块农田,农田从1开始编号。接下来m行,每行给出a,b,l,d,a和b表示农田的编号,l表示之间的距离...原创 2020-03-05 11:29:16 · 113 阅读 · 0 评论 -
求路径中最长边最小与最短边最大 poj2253 Frogger && poj 1797 Heavy Transportation
poj2253 Froggerhttps://vjudge.net/problem/POJ-2253#author=0题意:湖中有n块石头,编号从1到n,有两只青蛙,Bob在1号石头上,Alice在2号石头上,Bob想去看望Alice,但由于水很脏,他想避免游泳,于是跳着去找她。但是Alice的石头超出了他的跳跃范围。因此,Bob使用其他石头作为中间站,通过一系列的小跳跃到达她。两块石...原创 2020-03-02 22:16:57 · 589 阅读 · 0 评论 -
康托展开+逆康托展开 模板和简单的讲解 例题: poj 1077 Eight A*+康托
先放模板://封装康托与逆康托const int N = 10; //有1~N个数需要康托展开struct Cantor { #define lowbit(i) (i&(-i)) int c[N], pre[N]; //初始化 void init() { pre[1] = 1; for (int i = 2; i <= 9; i++) pre[i] =...原创 2020-02-27 11:43:25 · 336 阅读 · 0 评论 -
bzoj 1233 干草堆tower 优先队列优化dp
https://www.lydsy.com/JudgeOnline/problem.php?id=1233描述:奶牛们讨厌黑暗。 为了调整牛棚顶的电灯的亮度,Bessie必须建一座干草堆使得她能够爬上去够到灯泡 。一共有N大包的干草(1<=N<=100000)(从1到N编号)依靠传送带连续的传输进牛棚来。第i包干草有一个 宽度W_i(1<=w_i<=10000)。所...原创 2020-01-16 21:21:54 · 231 阅读 · 0 评论 -
Hdu 4261 Estimation 优先队列(堆)优化dp
https://vjudge.net/problem/HDU-4261https://www.acwing.com/problem/content/332/题解:首先假如k=1,那么这个值很好找,让B数组取值A的中位数即可。令cost[a][b]表示从B[a]~B[b] 划分为一组,得到的Σ(abs(A[i]-b[i]) (i∈[a,b]) 的最小值显然,类似于背包问...原创 2020-01-14 22:15:19 · 308 阅读 · 0 评论 -
洛谷 P4137 Rmq Problem / mex 可持久化线段树 / 莫队
https://www.luogu.com.cn/problem/P4137解法1:可持久化线段树因为需要查询区间内未出现过的自然数,维护的是数是否有出现,所以大概要往权值线段树那个方向靠用tre[i]表示树节点 root[i]表示每一棵树的树根对于第i颗树,其树上的叶子节点表示 : 数组的第1~第i个数中,叶子节点所代表的那个数x出现的最靠右的距离其余节点则维护节...原创 2020-01-13 21:41:01 · 409 阅读 · 0 评论 -
ch3801 AcWing 216 Rainbow的信号 期望与位运算
https://www.acwing.com/problem/content/218/题意:Freda发明了传呼机之后,rainbow进一步改进了传呼机发送信息所使用的信号。由于现在是数字、信息时代,rainbow发明的信号用N个自然数表示。为了避免两个人的对话被大坏蛋VariantF偷听,rainbow把对话分成A、B、C三部分,分别用a、b、c三个密码加密。现在Freda接...原创 2019-12-10 21:17:32 · 172 阅读 · 0 评论 -
hdu 2196 Computer 树形dp
http://acm.hdu.edu.cn/showproblem.php?pid=2196https://www.acwing.com/problem/content/description/327/题意:一所学校前一段时间买了第一台计算机(所以这台计算机的ID是1)。近年来,学校又购买了N-1台新计算机。每台新计算机都与之前买进的计算机中的一台建立连接。现在请你求出第i...原创 2019-12-02 22:48:01 · 327 阅读 · 0 评论 -
POJ 3345 Bribing FIPA 树上背包
http://poj.org/problem?id=3345https://www.acwing.com/problem/content/326/题意:FIPA(国际国际计划协会联合会)近期将进行投票,以确定下一届IPWC(国际规划世界杯)的主办方。钻石大陆的代表本内特希望通过以赠送钻石买通国家的方式,获得更多的投票。当然,他并不需要买通所有的国家,因为小国家会跟随着他们附庸的...原创 2019-12-02 19:59:51 · 151 阅读 · 0 评论 -
POJ 1390 Blocks 区间dp
http://poj.org/problem?id=1390https://www.acwing.com/problem/content/324/题意:n个木块排成一列,每个木块都有一个颜色。每次,你都可以点击一个木块,这样被点击的木块以及和它相邻并且同色的木块就会消除。如果一次性消除了k个木块,那么就会得到k*k分。给定你一个游戏初始状态,请你求出最高得分是多少输入格...原创 2019-12-01 16:23:29 · 184 阅读 · 0 评论 -
poj 1191 棋盘分割 dp(递归写法和递推写法)
http://poj.org/problem?id=1191https://www.acwing.com/problem/content/323/做高中数学题遇到方差的时候,一般需要化简为了让方差最小,只需要让xi^2 最小即可对于一个棋盘,我们可以遍历其所有可能的分割方式,最后统计答案。递归做法:#include<bits/stdc++....原创 2019-12-01 10:45:20 · 235 阅读 · 0 评论 -
POJ 2176 Folding 区间dp
地址:http://poj.org/problem?id=2176https://www.acwing.com/problem/content/321/题意:比尔正在试图用折叠重复子序列的方式紧凑的表示由大写字母’A’到’Z’组成的字符序列。例如,表示序列AAAAAAAAAABABABCCD的一种方式是10(A)2(BA)B2(C)D。他通过以下方式定义了折叠的字符序列以及...原创 2019-11-27 20:56:58 · 185 阅读 · 0 评论 -
poj 1934 Trip 最长公共子序列+路径输出
题目:http://poj.org/problem?id=1934https://www.acwing.com/problem/content/317/题意:爱丽丝和鲍勃想去旅行。他们每个人制定了一条旅行路线,每条路线包含一个按给定顺序访问的城市列表,一个城市可能会多次出现在同一路线中。因为他们想要一起去旅行,所以必须在旅行路线上达成一致。他们两个都不想改变他们的路线上...原创 2019-11-25 20:42:39 · 301 阅读 · 0 评论 -
POJ 1952 BUY LOW, BUY LOWER 最长上升子序列+dp+路径输出
题目:http://poj.org/problem?id=1952https://www.acwing.com/problem/content/316/题意:给定一段时间内股票的每日售价(正16位整数)。你可以选择在任何一天购买股票。每次你选择购买时,当前的股票价格必须严格低于你之前购买股票时的价格。编写一个程序,确定你应该在哪些天购进股票,可以使得你能够购买股票的次数...原创 2019-11-23 21:51:09 · 141 阅读 · 0 评论 -
POJ 1722 SUBTRACT 线性dp 个人理解
题目:http://poj.org/problem?id=1722https://www.acwing.com/problem/content/318/题意:内心思路:(ai+1表示a[i+1],下面这两个有混用的情况,但是都表示同一个东西)首先,我先想了一下这道题可不可以用粗暴的方式划分子问题,假如说有a1,a2……an需要合并成一个数的话,看看假如将a1和...原创 2019-11-23 20:41:49 · 173 阅读 · 0 评论 -
洛谷P4390 / bzoj1176 Mokia 摩基亚 基于时间的分治算法(CDQ分治)
题目:https://www.luogu.org/problem/P4390题意:有一个W*W的矩阵,所有格子的初始值均为S。每次操作可以增加某格子的权值,或询问某子矩阵的总权值输入:第一行两个整数S,W,其中S为矩阵初始值,W为矩阵大小输出:对于每个询问(即第二种输入),输出一行表示答案。(其实这道题目所有格子的初始值为0,并不是s,所以那个s可以丢...原创 2019-11-19 21:04:24 · 162 阅读 · 0 评论 -
poj3580 SuperMemo splay --- 从入门到入土
(太可怕了,我只是一个刚学懂splay的蒟蒻)poj地址:http://poj.org/problem?id=3580AcWing地址:https://www.acwing.com/problem/content/268/题意:给你一个数列 A1~An有几个操作:输入格式第一行包含一个整数 n。接下来 n 行给出了序列中的数。接下来一行包含一个整数 ...原创 2019-11-17 11:08:32 · 359 阅读 · 0 评论 -
洛谷P4135 作诗 分块
https://www.luogu.org/problem/P4135(不好意思我是吸了氧才过的,假如开O2会被卡两个点orz)AcWing的地址:https://www.acwing.com/problem/content/description/265/题意:N个数,M组询问,每次询问需要你求出[l,r]中有多少个数出现正偶数次。数据范围:对于100%的数据,1&l...原创 2019-11-12 20:07:01 · 134 阅读 · 0 评论 -
POJ 1177 Picture 扫描线求图形周长
题目:http://poj.org/problem?id=1177AcWing 版:https://www.acwing.com/problem/content/264/题意:墙上粘贴了n个相同形状的矩形海报。它们的边都是垂直或水平的。每个矩形可以被其他矩形部分或完全覆盖。所有矩形的并集边界的长度称为周长。现在请你编程计算这个周长是多少。输入:第一行输入...原创 2019-11-11 20:54:31 · 178 阅读 · 0 评论 -
POJ 3667 Hotel 线段树(带延迟标记)
题目:http://poj.org/problem?id=3667还有一个:https://www.acwing.com/problem/content/description/263/一家旅馆共有N个房间,这N个房间是连成一排的,标号为1-N。现在有很多旅客以组为单位前来入住,每组旅客的数量可以用Di来表示。旅店的业务分为两种,入住和退房:1、旅客入住时,第i组旅客需要根据他...原创 2019-11-10 15:12:25 · 200 阅读 · 0 评论 -
POJ 1417 True Liars 并查集+dp(背包)
题目:http://poj.org/problem?id=1417另一个地方:https://www.acwing.com/problem/content/description/261/题意:一个岛上存在着两种居民,一种是天神,一种是恶魔。天神永远都不会说假话,而恶魔永远都不会说真话。岛上的每一个成员都有一个整数编号(类似于身份证号,用以区分每个成员)。现在你拥有n次提问...原创 2019-11-08 22:57:57 · 325 阅读 · 0 评论 -
AcWing 200 Hankson的趣味题
https://www.acwing.com/problem/content/202/题意:已知正整数a0,a1,b0,b1,设某未知正整数x满足:1、 x和a0的最大公约数是a1;2、 x和b0的最小公倍数是b1。求有多少个这样的x数据范围1≤n≤20001≤a0,a1,b0,b1≤2e9对于一个1e9以内的自然数,其约数最多有1536个可以...原创 2019-10-31 20:37:05 · 183 阅读 · 0 评论 -
bzoj 1257:[CQOI2007] 余数之和 (分块)
(最近滚去学数论了,对我这种数学蒟蒻来说真的是痛苦)https://www.lydsy.com/JudgeOnline/problem.php?id=1257题目:给出正整数n和k,计算j(n, k)=k mod 1 + k mod 2 + k mod 3 + … + k mod n的值其中k mod i表示k除以i的余数。1<=n ,k<=10^9(其...原创 2019-10-30 20:38:05 · 108 阅读 · 0 评论 -
AcWing 259 关押罪犯 (贪心+并查集)
https://www.acwing.com/problem/content/259/S 城现有两座监狱,一共关押着 N 名罪犯,编号分别为1~N。他们之间的关系自然也极不和谐。很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突。我们用“怨气值”(一个正整数值)来表示某两名罪犯之间的仇恨程度,怨气值越大,则这两名罪犯之间的积怨越多。如果两名怨气值为 c 的罪犯被关押在...原创 2019-10-28 22:07:22 · 125 阅读 · 0 评论 -
IDA*学习日记 + 例题(poj3460 poj2286)
IDA* 是A*中的预估函数和迭代加深DFS的结合对于不同深度限制的DFS,假如当前深度+未来预估步数>深度限制,那么直接回溯。和A*一样,IDA*的预估函数也要求小于等于实际需要迭代次数poj 3460Booksorthttp://poj.org/problem?id=3460题意:给定n本书,编号为1-n,在初始状态下,书是任意排列的,在每一次操作中,可...原创 2019-10-23 12:42:06 · 401 阅读 · 0 评论 -
A* 学习日记 + 用A*求第k短路问题(poj2449)
A* 就是一个带预估函数的优先队列BFS相比起优先队列BFS,A*带了一个预估函数,也就是预估到终点所需要的搜索次数。因为优先队列BFS只是根据目前的最小搜索次数来排列,目前的搜索次数少不代表搜到终点的搜索次数少,所以这两者都需要权衡,因此加入了一个对到终点搜索次数的预估,然后用当前搜索次数+预估搜索次数 作为排序的权值放到优先队列中预估函数只是对未来搜索步数的简单估计,举个栗子:在一...原创 2019-10-23 10:55:28 · 217 阅读 · 0 评论 -
《挑战程序设计竞赛》---坐标离散化,个人解法与看法
题目:Input第一行输入w,h,n第二行是i条线的一个起点的xi值第三行是i条线的一个起点的yi值第四行是i条线的另一个起点的xi值第五行是i条线的另一个起点的yi值Output输出分割成多少个区域Sample Input10 10 51 1 4 9 106 10 4 9 104 8 1 1 64 8 10 5 10Sample Output6解法将前后没有...原创 2019-02-28 15:22:22 · 423 阅读 · 0 评论 -
poj-2991 Crane 个人感想和做法
原题地址:http://poj.org/problem?id=2991题意:二维平面上的线段,给出每条线段的长度,他们连成一条线,一开始竖直向上,给出某一段与下一段的角度(逆时针),输出最后的坐标的位置分析:由于题目有多次查询,每次查询都需要对一个区间更改并且输出一个值,很容易联想到线段树。然鹅问题来了,如何用线段树去解题(老实说我线段树刚入门看到这题一脸懵逼)。假如每次修改两段之间的夹角...原创 2019-03-01 21:49:08 · 446 阅读 · 0 评论 -
基于稀疏表的RMQ,结合poj3264,谈谈个人看法
在区间查询最大最小值的方法中,有一种叫稀疏表的方法。做法是预处理:利用一个数组A[I][J] 存储最大/最小值,其中 I 表示长度为2^I的区间长度,J表示区间从J开始查找:如上图所示单单在查询的时候可以达到O(1)的速度(除去其他)利用二进制的特点使得预处理数组不需要开的太大,而且查找区间长度利用位操作也比较快速这样的做法查询时会比线段树快,适合多次查询的题目(更...原创 2019-03-02 21:58:57 · 346 阅读 · 0 评论 -
结合poj 2686,入门状态压缩dp
poj 2686题意:有m个城市,p条道路将他们连接起来,每经过一条道路需要缴纳车票,车票上印有马的匹数,因此通过一条道路等于道路距离/马的匹数,一共有n张票。问从a点到b点最少需要多少时间假如不要车票的话,这道题无疑是最短路的算法。但是每条路均可以使用车票,假如将所有可行的方法保存下来,用贪心的思想将方法中经过的道路从长到短排序,票最多的匹配最长的道路,试试就逝世,再往下想会发现这程序写...原创 2019-03-06 15:04:19 · 198 阅读 · 0 评论 -
结合poj 2104,对于简单的归并树谈谈个人的理解和做法
题目:poj 2104大意:给你一个长度为n的数列,每次查询数列下标为[i,j]区间里面升序排序后第k大的数(我刚刚加入学校集训队暑假acm集训的时候遇到这题直接头铁sort。。。。现在想起来还真是天真)由此引出归并树(其实这一题用主席树更快,点击传送!)首先,区间升序排序第k大需要做一个小小的转换,不妨设那个数就是aim,就是区间内比aim小的<k个,小于等于aim的>...原创 2019-03-03 20:07:52 · 248 阅读 · 0 评论 -
poj 1459 多源点与汇点的最大流
题目:poj 1459ps:题目看得我很难受,建议只看input output,还有那个输入我也是很难受题目大意:总共有n个点,有np个点是发电站,nc个点是消费电的,m条线,其他点只起到传输的作用题目会给出np发电站有多少电,nc个消费电的地方最多消费多少电,然后要求出总的最大的消费电的值题解:多源点与汇点的模板题蓝色为发电站,红色为消费电的地方,忽略中间的点增加...原创 2019-03-14 15:57:56 · 404 阅读 · 0 评论 -
结合poj 2104,对于静态区间主席树谈谈个人理解和做法
这篇是我写的归并树的博客,也是用的poj2104 归并树 题目:poj 2104大意:给你一个长度为n的数列,每次查询数列下标为[i,j]区间里面升序排序后第k大的数主席树在速度上比归并树快得多,但相对的内存占用会比较大,据我的计算,主席树的数组会比归并树多用大概nlogn+n个(但毕竟内存不值钱)对于这道题,用归并树:用主席树:(原谅我的渣渣代码能力)对于主席树网上...原创 2019-03-04 17:29:49 · 209 阅读 · 0 评论 -
铺砖问题(状压dp) --《挑战程序设计竞赛》p196页,个人的感想和做法
(ps:我发现很多博客都是将书上的代码,书上的解释打进去。就算了还打错代码,不晓得这样写博客有啥用)题目:给定n*m的格子,每个格子被染成了黑色或者白色。现在要用1 * 2 的砖块覆盖这些格子,要求块与块之间互相不重叠,且覆盖了所有白色的格子,但不覆盖任意一个黑色格子。求一个有多少种覆盖方法,输出方案数对M取余后的结果。(整张题目图片放上去会变得畸形。。。)一些碎碎念:看到这道题我...原创 2019-03-07 15:45:33 · 1385 阅读 · 1 评论 -
poj 1182 ,并查集拓展域+向量,谈谈个人理解和做法
原题:poj 1182(做这道题因为我认为 -2%3 = 1 ,debug了一个多钟,吨吨吨吨吨。。。)题意:emm题目是中文的这道题相较于并查集入门题,多了一个集合之间的关系:一样,吃或者被吃,这个时候假如按照传统并查集做法,将全部动物通过并查集分成A,B,C三类将会十分难操作。并查集是快速提供一个集合的关系的做法,假如我们在集合内关系之间存放吃,一样或者被吃这三种关系呢。在做的时候...原创 2019-03-15 09:57:26 · 201 阅读 · 0 评论 -
结合hdu3549,谈谈个人对 最大流 和 Edmond—Karp 算法的理解
题目:hdu 3549大意:网络流求最大流(模板题)下面是对最大流的理解:假如说有A,B,C,D三个点,A->B 有3 的流量,B->D有2的流量,A->C有3的流量,C->D有2的流量,B->C有3的流量,那么如何求A->D的最大流量呢?如图所示:很明显用肉眼能看出来A->B->D+A->C->D=4就是答案,那么如...原创 2019-03-11 15:37:50 · 144 阅读 · 0 评论 -
洛谷P4926 [1007]倍杀测量者,个人看法和理解
题目链接:P4927 题目最近校赛出了这道题的改编题,那时候我信心满满的认为是水题,一发贪心GG,心态爆炸。错误的思路:将式子变形:对于每一个A,B都知道成绩的组,求出他们的T,然后将最大的T输出即可下面是错误的代码:#include<bits/stdc++.h>using namespace std;int score[1004];struct n...原创 2019-03-11 16:51:56 · 518 阅读 · 0 评论 -
初学dinic算法,带上洛谷p3376,谈谈自己的一点理解和看法
题目:从头裸到脚的最大流(dinic)对于dinic我自己也在网上找了许多博客看了一下,都写得挺不错,但是有一些博客会有小小得错误,我这里提醒一下。就是在拿EK 算法 和 dinic 算法对比的时候,会用这幅图:说使用EK可能程序会顺着 A -> B -> C-> D ,A -> C ->B ->D 两条路线不断更新,这样就很慢其实因为EK是...原创 2019-03-16 20:11:07 · 322 阅读 · 0 评论