自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

原创 POJ 3484 二分

题意传送门 POJ 3484求整个集合中唯一一个出现次数为奇数的值。对于每一输入行,其代表的数列是有序的,直接二分答案,计算小于等于当前值数字的个数。单调性在于,偶数相加仍为偶数,加上唯一的一个奇数后,后续求和都是奇数。#include <cstdio>#include <cstring>#include <iostream>#include &lt...

2020-03-31 21:17:00 168

原创 POJ 3258 二分

题意传送门 POJ 3258二分最短距离,将包括起点终点的点集按距离排序,向前搜索,统计需要去除的石头。满足去除石头数小于等于 MMM 的最大值即答案。#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <queue&...

2020-03-31 10:46:16 109

原创 POJ 3662 二分 + Dijkstra / 双端队列 BFS

题意传送门 POJ 3662题意为线缆公司免费提供 KKK 条边,问题转化为最小化路径上第 K+1K+1K+1 长的边权值。二分答案,将图中权值大于当前二分值的边的权值赋为 1,反之为 0;dijkstra 求最短路,此时的最短路代表从顶点 1 到顶点 N 大于二分值的边的最少使用数,满足使用数小于等于 KKK 的最短边权值即答案。#include <cstdio>#inclu...

2020-03-30 20:46:10 222

原创 POJ 3685 二分

题意传送门 POJ 3685查找第 kkk 大值的问题。二分第 kkk 大的值,考虑单调性,对矩阵元素对行 iii 求偏导2i+100000+j>02i+100000+j>02i+100000+j>0矩阵在列方向上随行数增加而单调递增。每次搜索第 kkk 大的值,遍历 NNN 列,二分求小于搜索值的元素分数即可。注意此处元素索引范围为 [1,N][1, N][1,N]。...

2020-03-30 15:03:02 94

原创 POJ 3579 二分

题意传送门 POJ 3579先处理掉绝对值。对数列升序排序,则绝对值可化为Xi−Xj,j<iX_{i}-X_{j},j<iXi​−Xj​,j<i根据等差数列求和公式,对于偶数、奇数情况,medianmedianmedian 都是第 N∗(N−1)/2/2+1N*(N-1)/2/2+1N∗(N−1)/2/2+1 小的数。此时二分搜索可能的 medianmedianmedia...

2020-03-30 12:09:58 424

原创 POJ 3273 二分

题意传送门 POJ 3273最小化最大值问题,二分搜索每月最大花费,判断在该费用下月份安排是否可行。可行判断用贪心法求解,当分配完 N 天且此时分配的月份数小于等于 M 则判断可行;反之,不可行。#include <cstdio>#include <cstring>#include <iostream>#include <algorithm&g...

2020-03-30 10:44:04 93

原创 POJ 2976 二分

题意传送门 POJ 2976最大化平均值问题,求满足下式的最大 xxx∑ai/∑bi≥x\sum a_{i} / \sum b_{i}\geq x∑ai​/∑bi​≥x不等式变形,即∑(ai−x∗bi)≥0\sum (a_{i}-x*b_{i}) \geq 0∑(ai​−x∗bi​)≥0贪心法求最大的 n−kn-kn−k 个测试 (ai−x∗bi)(a_{i}-x*b_{i})(ai​...

2020-03-30 08:26:45 113

原创 POJ 3111 二分

题意传送门 POJ 3111最大化平均值问题,求满足下式的最大 xxx∑vi/∑wi≥x\sum v_{i} / \sum w_{i}\geq x∑vi​/∑wi​≥x不等式变形,即∑(vi−x∗wi)≥0\sum (v_{i}-x*w_{i}) \geq 0∑(vi​−x∗wi​)≥0贪心法求最大的 kkk 个珠宝 (vi−x∗wi)(v_{i}-x*w_{i})(vi​−x∗wi​...

2020-03-29 21:29:10 206

原创 POJ 3104 二分

题意传送门 POJ 3104这道题的教训是要考虑好复杂度和数据范围。最先想到贪心法,利用优先队列每次处理当前未晾干衣服水分的最大值,TLE,因为极端情况 O(max{ai})O(max\{a_{i}\})O(max{ai​})。考虑二分法,O(nlog(max{ai}))O(nlog(max\{a_{i}\}))O(nlog(max{ai​})),搜索时间值,所有衣服都当做自然烘干叠加射线...

2020-03-29 10:15:54 170

原创 POJ 3045 贪心

题意传送门 POJ 3045考虑任意 2 头牛的情况,要使 Wi−Sj<Wj−SiW_{i}-S_{j}<W_{j}-S_{i}Wi​−Sj​<Wj​−Si​ 的牛 jjj 位于牛 iii 下方,此时 Si+Wi<Sj+WjS_{i}+W_{i}<S_{j}+W_{j}Si​+Wi​<Sj​+Wj​。对牛排序,若任意 2 头牛交换位置,其 max{∑Wi−S...

2020-03-28 22:07:13 114

原创 POJ 2395 Kruskal

题意传送门 POJ 2395裸的最小生成树,这里更新的是最小树中的最大权边。#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <cmath>#define min(a,b) (((a) < (b)...

2020-03-28 20:57:06 96

原创 POJ 1995 快速幂运算

题意传送门 POJ 1995使用反复平方法进行快速幂运算。#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <cmath>#define min(a,b) (((a) < (b)) ? (a) :...

2020-03-28 20:40:35 320

原创 POJ 3292 埃氏筛法 + 二分

题意传送门 POJ 3292仿埃氏筛法筛 H−numbersH-numbersH−numbers,求小于 MAX_HMAX\_HMAX_H 的 H−semi−primeH-semi-primeH−semi−prime ,二分答案即可。需要注意的是,H−primeH-primeH−prime 非真正的素数,可能会存在不同的组合得到相同的乘积,二分答案前要去重。#include <cstd...

2020-03-28 19:49:52 134

原创 POJ 3181 dp

题意传送门 POJ 3181基本思路dp[i][j]=∑n≥0,j−k∗n≥0dp[i−1][j−k∗n]dp[i][j]=\sum_{n\geq0,j-k*n\geq0}dp[i-1][j-k*n]dp[i][j]=∑n≥0,j−k∗n≥0​dp[i−1][j−k∗n]优化递推式dp[i][j]=dp[i][j−k]+dp[i−1][j]dp[i][j]=dp[i][j-k]+dp[i...

2020-03-27 22:06:31 66

原创 POJ 3046 dp

题意传送门 POJ 3046基本思路,dp[i][j]dp[i][j]dp[i][j] 为选择前 iii 种蚂蚁,所能构成大小为 jjj 组合的数量。dp[i][j]=dp[i−1][j]+∑j−Ni≤j′<jdp[i−1][j′]dp[i][j]=dp[i-1][j]+\sum_{j-N_{i}\leq j'<j} dp[i-1][j']dp[i][j]=dp[i−1][j]+...

2020-03-27 20:26:59 104

原创 POJ 1742 dp

题意传送门 POJ 1742多重部分和问题dp[i+1][j]:=用前i种数加和得到j时第i种数最多能剩余多少个(不能加和得到j的情况下为−1)dp[i+1][j]:=用前i种数加和得到j时第i种数最多能剩余多少个(不能加和得到j的情况下为-1)dp[i+1][j]:=用前i种数加和得到j时第i种数最多能剩余多少个(不能加和得到j的情况下为−1)实现上重复利用数组,最终满足 dp[i]≥0...

2020-03-27 18:01:38 106

原创 POJ 2184 dp

题意传送门 POJ 2184对于所有可能的 TSTSTS,dpdpdp 求最大的 FSFSFS。实现上将负半轴映射为正值以方便数组索引。考虑 SiS_{i}Si​ 可能取正值或负值,dp 顺序应该相反。#include <cstdio>#include <cstring>#include <iostream>#include <algorith...

2020-03-26 23:49:26 77

原创 POJ 3666 dp

题意传送门 POJ 3666基本思路是对 N 个位置枚举所有可能高度,并 dp 求最大值。可能高度取 N 个位置的高度即可,排序以方便顺序 dp。对于升序的情况dp[i][j]=max{dp[i−1][j′]}+abs(B[j]−A[i]),j′≤jdp[i][j]=max\{dp[i-1][j']\}+abs(B[j]-A[i]),j'\leq jdp[i][j]=max{dp[i−1][...

2020-03-26 21:07:49 124

原创 POJ 2010 优先队列

题意传送门 POJ 2010按照分数对牛排序,用优先队列从左向右遍历求小于可能为中位数的头牛的分数的 N/2N/2N/2 头牛的最小和;同理求右侧最小和。枚举中位数,满足 ∑aidi≤F\sum aid_{i} \leq F∑aidi​≤F 的最大值即答案。#include <cstdio>#include <cstring>#include <iostre...

2020-03-26 18:51:34 272

原创 POJ 3614 优先队列

题意传送门 POJ 3614对防晒霜按 SPF 升序排序,每次处理当前防晒霜,就将所有 SPF 小于等于该 SPF 的牛入队,此时入队的牛也是其后处理的防晒霜的可能涂抹对象。使防晒的牛数量最大,当前处理的防晒霜选择优先队列中 SPF 最大值最小的牛进行涂抹。#include <cstdio>#include <cstring>#include <iostre...

2020-03-26 15:13:33 190

原创 POJ 2392 dp

题意传送门 POJ 2392多重部分和问题,由于每一类都有上界,要先按上界进行排序,保证 dp 当前种类时能考虑到所有可能情况。dp[i+1][j]:=用前i种数加和得到j时第i种数最多能剩余多少个(不能加和得到j的情况下为−1)dp[i+1][j]:=用前i种数加和得到j时第i种数最多能剩余多少个(不能加和得到j的情况下为-1)dp[i+1][j]:=用前i种数加和得到j时第i种数最多能剩...

2020-03-26 11:48:08 115

原创 POJ 1631 dp

题意传送门 POJ 1631最长上升子序列问题,dp[i] 为长度为 i + 1 的上升子序列中末尾元素最小值,不存在即 INF。#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <cmath>#define...

2020-03-26 08:50:46 151

原创 POJ 1065 dp

题意传送门 POJ 1065 设置时间最小时,对于某长宽为 l, w 的木棍,l <= l’ 且 w <= w’ 的其余木棍应该尽可能的安排在其后面。保证在 l 这个维度上有序,然后在 w 的维度 dp。dp[i] 表示已处理的木棍中各不同流程段的最大 w 值,dp 中非零值项的长度即所需时间。每次处理的木棍长度一定保证满足 l <= l’,处理当前木棍时,由二分搜索找到满...

2020-03-26 07:51:24 139

原创 POJ 3176 dp

题意传送门 POJ 3176每个位置向两个方向转移,取最大值即可,特判只有一个方向可以转移的边界情况。#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <cmath>#define min(a,b) (...

2020-03-25 23:08:28 57

原创 POJ 2229 dp

题意传送门 POJ 2229考虑 N 的组合中有 1 的情况,其数量等于 N - 1 的组合数;考虑组合中无 1 的情况,则 N 为偶数,其数量等于 N / 2 的组合数。dp[i]=dp[i−1],i为奇数dp[i]=dp[i-1],i为奇数dp[i]=dp[i−1],i为奇数dp[i]=dp[i−1]+dp[i/2],i为偶数dp[i]=dp[i-1]+dp[i/2],i为偶数dp[i...

2020-03-25 22:28:42 75

原创 POJ 2385 dp

题意传送门 POJ 2385每一个时间点,农夫可能在编号为 1 或 2 苹果树的位置。考虑到对于第 i 次移动位置,所在树的编号是可以确定的,那么在第 i 次移动后各个时间点获取苹果的数量也可以确定。取所有移动次数到达最末时间点获得苹果数量的最大值。#include <cstdio>#include <cstring>#include <iostream&g...

2020-03-25 21:34:49 51

原创 POJ 3616 dp

题意传送门 POJ 3616休息时间 R 可以归到工作区间。每个区间权重不同,难以使用贪心法。考虑动态规划,对区间排序,每次处理当前区间时,若区间左边界大于等于已处理好的区间的右边界,则更新答案。dp[i]=max(dp[i],dp[j]+efficiencyi)dp[i] = max(dp[i], dp[j] + efficiency_{i})dp[i]=max(dp[i],dp[j]+e...

2020-03-24 21:18:27 70

原创 POJ 3280 dp

题意传送门 POJ 3280考虑已知较小区间处理为回文的最小花费,此时递推式dp[l][r]=min(dp[l+1][r]+cost[l],dp[l][r−1]+cost[r])dp[l][r] = min(dp[l+1][r]+cost[l],dp[l][r-1]+cost[r])dp[l][r]=min(dp[l+1][r]+cost[l],dp[l][r−1]+cost[r])考虑不...

2020-03-23 21:42:08 105

原创 POJ 2393 贪心法

题意传送门 POJ 2393每周的货物费用取可能的最小花费即可,即 mincost=min(mincost+S,C[i])mincost=min(mincost+S,C[i])mincost=min(mincost+S,C[i])。#include <cstdio>#include <cstring>#include <iostream>#inclu...

2020-03-23 14:22:44 167

原创 UVa 11990 分桶法 + 平方分割

题意传送门 UVa 11990

2020-03-23 10:55:04 140

原创 POJ 2155 二维 BIT

题意传送门 POJ 2155二维树状数组维护矩阵的数据,查询、更新都可以在 O(log n * log n) 时间里完成。取反操作即模二加法,最终对结果 sum(x, y) & 1 即可。#include <cstdio>#include <cstring>#include <iostream>#include <algorithm&g...

2020-03-22 19:18:01 109

原创 AOJ 0531 坐标离散化 + bfs

题意传送门 AOJ 0531矩形的宽和高 1 ≤ w, h ≤ 1000000 数据范围大,要离散化处理。对于划分区域,bfs 即可(递归实现可能栈溢出)。填充数组 fld[x][y] 代表左下角顶点坐标离散表示为 (x, y) 的 1 * 1 矩形。#include <cstdio>#include <cstring>#include <iostream...

2020-03-22 12:26:25 209

原创 AOJ 0009 埃氏筛法

大致题意求小于等于 n 的素数个数。1 ≤ n ≤ 999,999埃氏筛法水之。#include <cstdio>#include <stdlib.h>#include <algorithm>#include <cmath>#define min(a,b) (((a) < (b)) ? (a) : (b))#define ...

2020-03-21 23:43:25 92

原创 AOJ 0005 GCD & LCM

大致题意求最大公因数和最小公约数。辗转相除法水之。#include <cstdio>#include <stdlib.h>#include <algorithm>#define min(a,b) (((a) < (b)) ? (a) : (b))#define max(a,b) (((a) > (b)) ? (a) : (b...

2020-03-21 23:12:13 85

原创 AOJ 2224 Kruskal 最大生成树

题意传送门 AOJ 2224最小生成树算法更改排序条件即得最大生成树算法。求删除部分边以消除所有圈的最小花费,Kruskal 原理是判断加入的 2 个顶点是否在同一个连通分量里,以避免产生圈。这里反过来用即可,边的权值和减去最大生成树即答案。#include <cstdio>#include <stdlib.h>#include <iostream>...

2020-03-21 22:45:26 411

原创 AOJ 2200 Floyd-Warshall + dp

题意传送门 AOJ 2200路径顺序给定,每次要从当前结点更新最短时间,则用 Flord-Warshall 分别求走陆路和海路的任意两点间最短路。按照路径顺序 dp,走到当前结点停船有 N 种可能,dp[i][j] 代表按路径顺序从第一个节点出发走到第 i 个节点,且船只停靠在第 j 个节点的最短时间。路径顺序的第 i 个节点向第 i + 1 个节点,走法为陆路-海路-陆路,边界情况不走陆路要...

2020-03-21 21:35:58 175

原创 AOJ 2249 dijkstra

大致题意王国提出了一种 N 座城市,M 条道路道路建设方法,需要删减部分道路,在保证首都至各城市最短路与原方案相同的前提下,道路建设总费用最小。1 ≤ N ≤ 10000, 0 ≤ M ≤ 20000改造 dijkstra,在更新最短路的同时,更新最小费用。如果到达各节点的费用按照从首都出发至该节点的费用来计算,求和会出现重复,而且不方便处理重复的部分;改为最短路的前驱结点至该节点的费用则可以...

2020-03-21 17:13:44 126

原创 AOJ 0189 Floyd-Warshall

大致题意求 A 先生从哪个城市出发抵达其他所有城市时间和最小,相同时间下取标号最小的城市。重边取最小值,然后裸的 Flord-Warshall。#include <cstdio>#include <stdlib.h>#include <iostream>#include <algorithm>#include <cstring&g...

2020-03-21 10:28:07 118

原创 AOJ 2170 暴力 / 并查集

题意传送门 AOJ 2170节点 1 ≤ N ≤ 100000 和查询次数1 ≤ Q ≤ 100000 的数量级,最坏情况一下 2 种方法估复杂度都会爆,Emmmmm 数据还是美好的。暴力保存标记,直接向父节点搜索。#include <cstdio>#include <stdlib.h>#include <cstring>#include &lt...

2020-03-20 22:00:03 161

原创 AOJ 0525 穷竭搜索

题意传送门 AOJ 0525题意即翻转部分行或列,使得最终为 0 或 1 的煎饼数目最大。列数 1 ≤ C ≤ 10 000 枚举会翻车,行数 1 ≤ R ≤ 10 可以直接枚举 01 状态,之后按列增加 0 或 1 的煎饼数最大值即可。#include <cstdio>#include <stdlib.h>#include <iostream>#i...

2020-03-19 15:02:30 197

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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