自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 POJ1328 Radar Installation 贪心

题目链接http://poj.org/problem?id=1328分析贪心,转化为选最少的点覆盖所有区间。将区间按右端点升序排序,依次考虑每个区间,若不能覆盖,则在区间右端点加雷达。很容易理解,选择右端点是最优的。AC代码#include <cstdio>#include <cmath>#include <algorithm>using ...

2019-08-28 19:55:14 102

原创 POJ3190 Stall Reservations 贪心

题目链接http://poj.org/problem?id=3190分析贪心,先将牛按开始吃草的时间升序排序。依次考虑每头牛,若其能加入某个已存在的畜栏(即其开始时间晚于该畜栏中上一头牛的结束时间),则加入;否则新建一个畜栏供其使用。枚举下一头牛在安置时可能的情况,会发现这样做最优。AC代码#include <cstdio>#include <algorithm...

2019-08-27 12:33:09 124

原创 POJ3614 Sunscreen 贪心

题目链接http://poj.org/problem?id=3614分析贪心,将奶牛按 minSPF 降序排序,依次考虑每头奶牛,在能用的防晒霜中选择 SPF 最大的使用。假设选择 SPF 较小的使用,则可能会出现后来 SPF 最大的防晒霜无法再使用,造成浪费。一瓶防晒霜最多使一头奶牛满足要求,当前奶牛放弃不用答案也不会更优。AC代码#include <cstdio>#...

2019-08-27 10:50:57 176

原创 IncDec Sequence

题目链接https://www.acwing.com/problem/content/102/分析差分,最终目的是差分序列中第 222 到 NNN 个数为 000。每次操作是将一个位置 +1+ 1+1,另一个位置 −1- 1−1,最少操作次数则是贪心地抵消正数和负数。正负数抵消完后,剩余需要靠第 111 个位置和第 N+1N + 1N+1 个位置上的数来抵消,分别对应操作整个区间前半段和...

2019-08-27 10:17:43 193

原创 洛谷 P3865 【模板】ST表

题目链接https://www.luogu.org/problem/P3865分析ST表使用倍增思想,一般用于解决 O(nlogn)O(nlogn)O(nlogn) 预处理,O(1)O(1)O(1) 查询的静态区间最值问题。AC代码#include <cstdio>#include <algorithm>using namespace std;inlin...

2019-08-26 21:40:27 144

原创 CH0601 Genius ACM 倍增

题目链接https://www.acwing.com/problem/content/111/分析每次设定一段长度为 111 的初始区间(一定合法),倍增来扩展区间右端点。求“校验值”需要排序,只需排新加入的一段,再像归并排序那样合并两段。注意每次扩展还要保证新的右端点不超过 NNN。AC代码#include <cstdio>#include <algorithm...

2019-08-26 21:15:08 133

原创 POJ2893 M * N Puzzle 逆序对

题目链接http://poj.org/problem?id=2893分析此处有一结论:将数码按原有顺序写成一列并除去 000 后,若 NNN 为奇数,则初始状态和目标状态逆序对数奇偶性相同;若 NNN 为偶数,则初始状态逆序对数加上 000 在两种状态下行数之差与目标状态逆序对数奇偶性相同。AC代码#include <cstdio>#include <cstrin...

2019-08-25 22:41:56 106

原创 POJ3889 Fractal Streets 递归

题目链接http://poj.org/problem?id=3889分析分治,递归处理。由于要对区域大小取模,所以从 000 开始编号会更方便。对于每个编号,递归求出其在子区域的坐标,再根据题目的规定,推出其在当前区域的坐标。#include <cstdio>#include <cmath>#include <iostream>using n...

2019-08-25 18:33:19 152

原创 POJ2299 Ultra-QuickSort 逆序对

题目链接http://poj.org/problem?id=2299分析每次交换均可消除一个逆序对,最终目标逆序对数为 000,故该问题等价于求解给定序列逆序对数。AC代码#include <cstdio>inline int read() { int num = 0; char c = getchar(); while (c < '0' || c > ...

2019-08-25 17:45:27 125

原创 POJ3784 Running Median 对顶堆

题目链接http://poj.org/problem?id=3784分析动态维护序列中位数可用对顶堆实现,即用大根堆维护序列前一段,用小根堆维护序列后一段。保证大根堆内元素均比小根堆内元素小,且两堆元素个数差不超过 111。每次输出时,元素个数较多的堆的堆顶元素即为当前序列中位数。AC代码#include <cstdio>#include <vector>...

2019-08-25 17:29:36 247

原创 BZOJ3032 七夕祭 中位数

题目链接https://www.lydsy.com/JudgeOnline/problem.php?id=3032分析上下交换不会改变每列的情况,左右交换不会改变每行的情况,行和列互相独立。假如不考虑第一个位置和最后一个位置相邻,则本题类似于经典的“均分纸牌”问题,考虑每行时有解当且仅当 N∣TN | TN∣T,考虑每列时同理。以考虑每行为例,最少操作步数为 ∑i=1N∣i∗TN−G[i...

2019-08-24 22:50:26 178

原创 CH0501 货仓选址 中位数

题目链接https://www.acwing.com/problem/content/106/分析可以证明,NNN 为奇数时,货仓选在最中间的商店处距离之和最小;NNN 为偶数时,货仓选在最中间的两个商店之间的任意位置距离之和最小AC代码#include <cstdio>#include <cmath>#include <algorithm>u...

2019-08-24 19:53:53 203

原创 CF670C Cinema 离散化

题目链接http://codeforces.com/problemset/problem/670/C分析离散化语言编号,开数组统计会每种语言的人,然后遍历每部电影找答案即可。AC代码#include <cstdio>#include <algorithm>using namespace std;inline int read() { int num =...

2019-08-24 18:18:38 196

原创 AcWing113 Innovative Business 二分

题目链接https://www.acwing.com/problem/content/description/115/分析手动举个简单例子模拟一下可以发现,本题二分可做,具体来说,就是二分一个元素,使得当前元素可放置在其后若不存在,则表明当前元素要放在序列开头这样即可保证询问次数不会超出限制,总时间复杂度需不超过 O(n2)O(n ^ 2)O(n2)另外本题是一道交互式试题,注意格式...

2019-08-23 21:05:25 438

原创 POJ2018 Best Cow Fences 二分答案

题目链接https://www.acwing.com/problem/content/104/分析对于求平均值的问题,往往是转化为每个数值减去平均值后,求最大区间和是否大于 000 即可本题同理,只是所选区间长度要不小于 FFF注意输出格式的处理,题目要求相当于保留三位小数AC代码#include <cstdio>inline int read() { int nu...

2019-08-23 20:09:07 416

原创 CH0302 非递归实现组合型枚举 模拟

题目链接https://www.acwing.com/problem/content/95/分析递归实现组合型枚举是非常简单的,而此处的非递归版其实是手动模拟栈。所以先来了解下“堆栈结构”实现函数调用的基本过程:先把函数所需的第 kkk 个,第 k−1k - 1k−1 个,…,第 111 个参数依次入栈,然后将函数调用的下一条语句的地址入栈,再跳转到调用函数处继续执行指令。AC代码#...

2019-08-23 18:41:31 419

原创 BZOJ 2467 生成树

题目链接https://www.lydsy.com/JudgeOnline/problem.php?id=2467分析手动操作一遍可发现,得到的生成树一定是一个五边形删去两条边且其中一条是底边,另外 N−1N - 1N−1 个五边形各删去一条边,所以结果为 4∗N∗5N−14 * N * 5 ^ {N - 1}4∗N∗5N−1AC代码#include <cstdio>co...

2019-08-20 08:37:50 191

原创 Codeforces 280C Game on Tree

题目链接http://codeforces.com/problemset/problem/280/C分析设随机变量 XXX 表示操作次数,XiX_iXi​ 表示节点 iii 是否被直接操作(“是”为 111,“否”为 000)显然 X=∑1≤i≤nXiX = \sum_{1 \leq i \leq n} X_iX=∑1≤i≤n​Xi​,则 E(X)=∑1≤i≤nE(Xi)E(X) = \s...

2019-08-19 09:22:05 212

原创 Miller-Rabin素性测试

根据费马小定理,若 nnn 为质数,且 a&lt;na &lt; na<n,则有 an−1≡1(mod  n)a ^ {n - 1} \equiv 1 (mod \ \ n)an−1≡1(mod  n)。设 n−1=d×2r,gcd(d,2)=1n - 1 = d \times 2 ^ r, gcd(d, 2) = 1n−1=d×2r...

2019-08-18 19:11:26 164

原创 洛谷 P4159 [SCOI2009] 迷路

题目链接https://www.luogu.org/problem/P4159分析如果边权为 111,则是简单的矩阵快速幂加速DP递推方程,又因为边权并不大,所以考虑拆点,新图中边权均为 111,将每个点暴力拆成相连的 999 个点,对于原先某条边 (u,v,w)(u, v, w)(u,v,w),可以转化为 uuu 拆成的点中第 www 个连向 vvv 拆成的点中第 111 个,其间恰好 w...

2019-08-17 20:30:54 149

原创 洛谷 P4783 【模板】矩阵求逆

题目链接https://www.luogu.org/problem/P4783分析可以直接建一个 n×2∗nn \times 2 * nn×2∗n 的矩阵,左半部分为给定矩阵,右半部分为单位矩阵,进行高斯消元;在取模意义下,除法转化为乘以乘法逆元,模数是质数,逆元用费马小定理加快速幂求即可。AC代码#include <cstdio>#include <iostream...

2019-08-17 19:45:17 225

原创 洛谷 P3389 【模板】高斯消元法

题目链接https://www.luogu.org/problem/P3389分析因为题目涉及实数,所以使用精度较高的主元高斯消元法,即在高斯消元法的基础上,每次向下找到当前列上绝对值最大的一行来消元AC代码#include <cstdio>#include <cstring>#include <cmath>#include <iostre...

2019-08-17 19:09:37 202

原创 POJ1845 Sumdiv 递归

题目链接http://poj.org/problem?id=1845分析将 AAA 分解质因数为 p1c1∗p2c2∗...∗pncnp_1 ^ {c_1} * p_2 ^ {c_2} * ... * p_n ^ {c_n}p1c1​​∗p2c2​​∗...∗pncn​​,则 ABA ^ BAB 为 p1B∗c1∗p2B∗c2∗...∗pnB∗cnp_1 ^ {B * c_1} * p_2...

2019-08-15 21:31:38 228

原创 CH0303 递归实现排列型枚举 DFS

题目链接https://www.acwing.com/problem/content/description/96/分析枚举未选取的数,递归下一位置,回溯后要清除记录是否选取的标记AC代码#include <cstdio>const int maxn = 15;int n, a[maxn], vis[maxn];void dfs(int i) { if (i =...

2019-08-14 19:23:47 177

原创 CH0302 递归实现组合型枚举 DFS

题目链接https://www.acwing.com/problem/content/95/分析相比指数型枚举,加上限制选出数个数的剪枝AC代码#include <cstdio>const int maxn = 30;int n, m, a[maxn], cnt;void dfs(int i) { if (cnt > m || n - i + 1 + cn...

2019-08-14 18:31:20 173

原创 CH0301 递归实现指数型枚举 DFS

题目链接https://www.acwing.com/problem/content/94/分析跑DFS,每次分选当前元素和不选递归下去AC代码#include <cstdio>const int maxn = 20;int n, a[maxn], cnt;void dfs(int i) { if (i == n + 1) { for (int j = 1;...

2019-08-14 18:00:26 164

原创 POJ3263 Tallest Cow 差分

题目链接http://poj.org/problem?id=3263分析差分,初始数组中元素均为 000,对于每个 (A,B)(A, B)(A,B),将 A+1A + 1A+1 位置 −1- 1−1,将 BBB 位置 +1+ 1+1,表示区间 [A+1,B−1][A + 1, B - 1][A+1,B−1] 每个位置均 −1- 1−1,差分数组中最终每个位置的前缀和 +H+ H+H 即为答案...

2019-08-14 12:07:46 94

原创 BZOJ1218 激光炸弹 前缀和

题目链接https://www.lydsy.com/JudgeOnline/problem.php?id=1218分析O(n2)O(n ^ 2)O(n2) 复杂度枚举选中矩形右下角,根据 RRR 即可确定选中矩形,在借助二维前缀和 O(1)O(1)O(1) 求出此时答案AC代码#include <cstdio>#include <algorithm>usin...

2019-08-14 11:22:10 134

原创 POJ1958 Strange Towers of Hanoi 递推

题目链接https://www.acwing.com/activity/content/problem/content/330/1/分析对于 nnn 个圆盘 333 座塔的情况我们是熟悉的,由于只有 333 座塔,且小盘必须在大盘上面,所以操作过程可以概括为先将 n−1n - 1n−1 个盘子借助 CCC 塔从 AAA 塔移动到 BBB 塔,再将最底层的盘子移动到 CCC 盘,再将 BBB ...

2019-08-14 10:56:03 152

原创 CH0201 费解的开关 枚举

题目链接https://www.acwing.com/problem/content/description/97/分析容易想到,对同一位置按两次相当于没按,因此每个位置最多被按一次;另外,一旦我们固定了第一行的按法,那么为使得最终状态全为 111,第二行的按法也是固定的。因此,枚举第一行的按法共 323232 种,之后每一行递推即可。AC代码#include <cstdio&gt...

2019-08-12 13:23:11 304

原创 lowbit求整数二进制表示下所有是1的位

lowbitlowbitlowbit 运算求的是整数最后一位 111 及之后的所有 000 所构成的数值,假如我们要知道最后一位 111 是第几位,就需要对 lowbitlowbitlowbit 运算结果以 222 为底取 logloglog 或者借助 HashHashHash。可以直接令 H[2k]=kH[2 ^ k] = kH[2k]=k,但对空间会造成不小的浪费。《算法竞赛进阶指南》中提到一...

2019-08-12 11:04:31 139

原创 读入及输出优化

读入优化效果十分明显,当读入数据规模过大时使用能大大减少运行时间。#include <cstdio>inline int read() { int num = 0, flag = 1; char c = getchar(); while (c < '0' || c > '9') { if (c == '-') flag = -1; c = getchar...

2019-08-09 13:22:09 173

原创 离散化

有些数据会作为数组下标来用,若其范围过大,无法开出足够大的数组,而恰好实际用到的下标又不多,即直接开数组会造成大量浪费,此时可以离散化,将“相隔”较远的数映射为从 111开始连续的正整数。#include <algorithm>using namespace std;int n, a[MAXN], b[MAXN]; // n为元素个数,a中存放初始数据,b用于记录映射关系...

2019-08-09 13:08:40 86

空空如也

空空如也

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

TA关注的人

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