自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LCP 11 数学期望

题意传送门 LCP 11. 期望个数统计题解不容易从不同组合序列的角度计算期望;拆成每一位,按位计算重复个数的期望;分别求各位数字保持原位的期望;虽然事件不统计独立,但因为每次只对该重复位计数,不会重复计入,所以合理。E(X)=∑i=0n−11n=1E(X)=\sum\limits_{i=0}^{n-1}\frac{1}{n}=1E(X)=i=0∑n−1​n1​=1求不同的数字个数即可...

2020-04-29 18:57:27 138 1

原创 LCP 13 bfs + 状态压缩 dp

题意传送门 LCP 13.寻宝题解bfs 求各机关点到地图各点的最短距离;遍历石碓求各机关点间经过石碓的最短距离;对经过的机关点状态压缩,记忆化搜索求解。class Solution {private:int INF = 0x3f3f3f3f;int dx[4] = {0, 0, -1, 1};int dy[4] = {-1, 1, 0, 0};int H, W, sX, sY,...

2020-04-29 12:32:57 201

原创 最小费用循环流

最小费用循环流

2020-04-29 10:34:53 1627

原创 LeeCode 1095 二分

题意传送门 LeeCode 1095. 山脉数组中查找目标值题解山脉数组峰值左侧斜率为正,右侧斜率为负,二分求峰值。对峰值左右两侧区间分别二分答案即可。/** * // This is the MountainArray's API interface. * // You should not implement it, or speculate about its implement...

2020-04-29 09:17:53 578

原创 UVa 1659 最小费用循环流

题意传送门 UVA 1659题解边 e=(u,v)e=(u,v)e=(u,v) 权值为 x−y×duvx-y\times d_{uv}x−y×duv​,求最大费用循环流;将边权取负后转化为最小费用循环流问题。#include <cstdio>#include <cstring>#include <iostream>#include <algo...

2020-04-28 23:02:16 488

原创 POJ 1061 拓展欧几里德算法

题意传送门 POJ 1061题解青蛙相遇即满足(x+m×t)%L=(y+n×t)%L(x+m\times t)\%L=(y+n\times t)\%L(x+m×t)%L=(y+n×t)%L引入变量 zzz 变形为z×L+(n−m)×t=x−yz\times L+(n-m)\times t=x-yz×L+(n−m)×t=x−y求变量 zzz,ttt 的线性组合是否满足 x−yx-yx−...

2020-04-28 22:09:00 89

原创 LeeCode 62 组合数打表

题意传送门 LeeCode 62. 不同路径题解路径长度为 m+n−2m+n-2m+n−2,纵向 m−1m-1m−1 个,横向 n−1n-1n−1 个,则路径总数为 Cm+n−2n−1C_{m+n-2}^{n-1}Cm+n−2n−1​。组合数打表即可,递推式可理解为对于 CmnC_{m}^{n}Cmn​,最后一个可以取或不取Cmn=Cm−1n−1+Cm−1nC_{m}^{n}=C_{m-...

2020-04-28 20:21:46 150

原创 LeeCode 面试题56 - I 位运算

题意传送门 LeeCode面试题56 - I. 数组中数字出现的次数题解两个相同的数异或为 000,若求一个数组中除了一个数字其余数字都出现偶数次,则对数组依次异或操作,结果即为该奇数次数字。题中存在 222 个奇数次数字,遍历数组异或后得到这 222 个数的异或结果,需要将其转化为只有 111 个奇数次数的问题。那么将其分组即可,将奇数次数字分到不同的 222 个组,其余偶数次数字中相同...

2020-04-28 10:01:09 124

原创 AOJ 2230 最小费用流循环流

题意传送门 AOJ 2230题解最小费用流#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <queue>#include <vector>#define min(a,b) (((a) ...

2020-04-27 23:33:56 661

原创 LeeCode33 二分

题意传送门 LeeCode33.搜索旋转排序数组题解出现旋转排序,数列最左侧值一定大于最右侧的值;先二分求旋转排序后最小值的位置(单调性:小于等于右值),再分前后两个有序区间二分答案。class Solution {public: int calc(vector<int>& nums, int target, int m){ int lb = ...

2020-04-27 09:43:09 236

原创 AOJ 2266 最小费用流

题意传送门 AOJ 2266题解#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <queue>#include <vector>#define min(a,b) (((a) < (...

2020-04-26 12:10:56 191

原创 LeeCode 23 优先队列

题意传送门 LeeCode 23题解遍历链表中 n×kn\times kn×k 个元素,每次只考虑 kkk 个已排序链表中第一个未合并的元素,用优先队列维护最小值。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListN...

2020-04-26 11:41:32 70

原创 POJ 3422 最小费用流

题意传送门 POJ 3422题解求点权和最大,可以将点权取负后转化为求点权和最小,用最小费用流求解。矩阵的点只能使用一次,即顶点有容量限制,可拆成 222 个点,将顶点容量限制转化为边容量限制(看做容量为 111 的边);为了保证路径的完整,每个矩阵的点还要对应一个无花费的点。为了在最小费用流算法中使用 dijkstra,要保证边的非负性,且此时路径点数相同,加上 infinfinf 即可,...

2020-04-25 09:26:45 152

原创 POJ 2195 BFS + 最小费用流

题意传送门 POJ 2195题解bfs 求每个人到每个房子的最短距离;每个人向每个房子连一条容量为 111 费用为最短距离的边;最小费用流即答案。#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <queue&g...

2020-04-24 21:47:15 111

原创 POJ 3068 最小费用流

题意传送门 POJ 3068题解求节点 000 到节点 N−1N-1N−1 流量为 222 的最小费用流即可。#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <queue>#include <vec...

2020-04-24 18:27:36 112

原创 AOJ 2251 Floyd-Warshall + 最大二分匹配

题意传送门 AOJ 2251题解Floyd-Warshall 求解任意一对房屋间的最短距离,若两个请求的时间差大于请求对应的房屋间的最小距离则在两个房屋间连边。此时得到一个 DAG,目标是用尽可能少的路径覆盖所有节点(请求),此时要求节点在路径上的前驱节点尽可能多。考虑将每个节点拆成 222 个,分别在二分图的左右,此时最大匹配即最多前驱节点数;用总请求数减去前驱节点数即答案。#inclu...

2020-04-24 16:13:22 160

原创 溢出处理的整数乘累加器 Verilog 实现

大致题意设计一个乘累加器(MAC: Multiply Accumulator)sum=∑iaibisum=\sum_{i}a_{i} b_{i}sum=∑i​ai​bi​模块要去实现上述公式的乘累加操作;数据输入接口中 din_a, din_b 为整数;当累加器内部检测到有溢出时,overflow信号赋 1 以向外报告模块接口定义首先用 input, output 声明模块接口信号的输...

2020-04-23 22:15:49 6555 3

原创 定点数乘累加器的 MATLAB 模拟

大致题意为实现 FPGA 上的信号处理,通常要经过算法的设计,算法的定点化以及顶点算法的实现三个步骤。这里要实现定点数乘累加器的第二阶段设计——用 MATLAB 设计算法的定点化。sum=∑iaibisum=\sum_{i}a_{i} b_{i}sum=∑i​ai​bi​MATLAB 的仿真结果要与 HDL 模拟结果一致,即模拟出的定点数能够与算法在硬件中实现后的对应信号在每个bit 上都匹...

2020-04-23 22:14:55 981

原创 POJ 2226 二分图最小点覆盖

题意_传送门 POJ 2226_题解假设草地可以被覆盖,那么板子就是横向或者竖向铺满的,此时对于每一个坐标点,看作横轴与纵轴对应坐标间连的一条边,问题则转化为最小点覆盖,最终转化为最大二分匹配问题。在这里,草地不能不覆盖,对于同一行或列的方向相同的板子,会被草地分开,此时只要对每一个横向或列向的板子设置索引即可(每一个点都要有横向和纵向的板子覆盖),此时板子可以看成顶点,顶点间的连边可以...

2020-04-23 16:15:20 185

原创 POJ 2724 最小边覆盖

题意传送门 POJ 2724题解最多的操作数即对于每一个被感染奶酪都进行一次操作;目标是最小化操作数,则关注带 ′∗′'*'′∗′ 的操作,使满足此类操作的奶酪数最多,则操作数最小;其实是求最小边覆盖,转化为最大二分匹配问题。#include <cstdio>#include <cstring>#include <iostream>#include...

2020-04-22 21:44:50 99

原创 POJ 3692 补图的最大独立集

题意传送门 POJ 3692题解求两两之间互有关系的点集,用补集的思想可以转换为求补图的最大独立集,最终可以转化为最大二分匹配问题。#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <queue>#incl...

2020-04-22 12:44:10 178

原创 POJ 1466 最大独立集

题意传送门 POJ 1466题解记 G=(V,E)G=(V,E)G=(V,E)#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <queue>#include <vector>#define ...

2020-04-21 19:49:48 205

原创 LCP 08 暴力 / 二分

题意传送门 LCP 08题解暴力触发条件要求 C>=c[i]C >= c[i]C>=c[i] 且 R>=r[i]R >= r[i]R>=r[i] 且 H>=h[i]H >= h[i]H>=h[i],则分别处理 c,r,hc, r, hc,r,h, 对其排序后求各个场景的最小触发时间,在 333 个属性都满足触发的条件下,取最大值。ty...

2020-04-18 21:31:37 92

原创 LeeCode 11 双指针

题意传送门 LeeCode 11题解双指针的思想是缩小问题规模,对于当前边界高度较小的点,由于以它为边界的最优解已被更新,故可将其去除,缩小区间范围。class Solution {public: int maxArea(vector<int>& height) { int sz = height.size(), s = 0, t = sz -...

2020-04-18 12:48:55 95

原创 LeeCode 685 dfs + 并查集

题意传送门 LeeCode 685题解此时图中一定出现环。考虑所有节点度都小于等于 111 的情况,此时环首尾相连,环上任意边均为可能答案,取索引值最大的即可;用并查集合并节点,第一次出现两端节点连通的边即答案。考虑存在度为 222 的结点的情况,此时答案为指向该节点的边之一;枚举删边,从根节点 dfs 即可,若不能遍历全部节点,则当前删除边非答案;若 222 条边枚举删除后 dfs 都...

2020-04-17 20:27:23 94

原创 LeeCode 287 快慢指针

题意传送门 LeeCode 287题解将数列的索引与值看做链表的值与指针。考虑索引 000 为非重复数字的情况,则该数字索引处的值不能指向自身,以此类推,直到遇到所求重复数字又指向以遍历过的节点;考虑索引 000 为重复数字的情况,当节点都指向自身;都可以判环找到入环节点解决。判环使用快慢指针,速度差为 111 保证出现环时快指针可以追上慢指针;此时相遇位置与起点在前进方向上距离入环节点一...

2020-04-16 21:20:15 103

原创 LeeCode 3sum

题意传送门 3sum题解3SUM问题,基本思路是排序后枚举最左侧元素,不断前进头指针,后退尾指针,直至满足条件。在这里要枚举出所有答案,故每一次满足条件后要继续移动指针。限制条件是组合不能重复,则处理完一个最左侧元素后不再处理重复元素,对于头尾指针而言,也要跳过重复元素。class Solution {public: vector<vector<int>>...

2020-04-16 17:40:21 59

原创 LeeCode merge-intervals 尺取法

题意传送门 merge-intervals题解对区间按左边界排序,尺取法不断合并区间,对于每个区间维护区间右边界的最大值。class Solution {private: static bool cmp(const vector<int> &a, const vector<int> &b){ return a[0] <...

2020-04-16 14:05:23 53

原创 POJ 1486 最大二分匹配 + 枚举

题意传送门 POJ 1486题解求幻灯片与数字的唯一匹配,考虑到合理性,每个数字至少可以配对 111 个幻灯片,此时是完美匹配。枚举删除边,若匹配唯一,则删除某条边后最大匹配数减少 111;反之,最大匹配数不变。#include <cstdio>#include <cstring>#include <iostream>#include <al...

2020-04-15 21:42:02 113

原创 POJ 2112 Floyd-Warshall + Dinic

题意传送门 POJ 2112题解求最大距离的最小值,二分答案即可。对于牛和取奶点的最小距离, Floyd-Warshall 求解。二分的判断,用 Dinic 求最大流;对小于等于当前二分值的路径对牛和取奶点连容量为 111 的边,源点对牛连容量为 111 的边,取奶点对汇点连容量为 MMM 的边;最大流为 CCC 即可收缩上界。#include <cstdio>#includ...

2020-04-13 08:51:11 104

原创 POJ 1274 最大二分图匹配

题意传送门 POJ 1274题解裸的最大二分图匹配,可以用最大流或者匈牙利算法解决。这里使用匈牙利算法。#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <queue>#include <vector...

2020-04-12 23:38:30 117

原创 POJ 3155 最大密度子图

题意传送门 POJ 3155题解算法思路参考《最小割模型在信息学竞赛中的应用》。分数规划,求满足条件的 xxx 最大值∣E∣∣V∣≥x\frac{|E|}{|V|}\geq x∣V∣∣E∣​≥x∣E∣|E|∣E∣ 为子图边数,∣V∣|V|∣V∣ 为子图点数,不等式左边为图的密度。不同子图密度差不小于 1/∣V∣21/|V|^21/∣V∣2,考虑到多边形点与边的关系,图密度的二分范围为 ...

2020-04-12 20:44:49 132

原创 POJ 2914 stoer-wagner 全局最小割

题意传送门 POJ 2914题解算法思路stoer−wagnerstoer-wagnerstoer−wagner 基本思路 是对于任意 222 个节点 s,ts,ts,t 全局最小割可能为 s−ts-ts−t 最小割;反之,将 s,ts,ts,t 合并为 111 个点对答案无影响。那么只要每次找到一个 s−ts-ts−t 最小割并更新答案,再将 s,ts,ts,t 合并,缩小问题规模,直到...

2020-04-11 16:24:30 153

原创 MATLAB AWGN信道 M-ary PSK 误码性能

对 AWGN 信道 QPSK 调制误码性能分析的 MATLAB 仿真基本流程做记录。M 进制 PSK 调制解调% M 进制 PSK 调制参数设置M = 4; % PSK 进制数N = 20; % 仿真点数A = M - 1; % PSK 调制...

2020-04-10 19:55:19 2512

原创 POJ 2987 最大权闭合子图

题意传送门 POJ 2987题解最大权闭合子图建图基本方法:源点向每一个正权值节点连边,每一个负权值节点向汇点连边,边权值为点权值的绝对值;每一条有向边连一条容量为 INF 的边;则闭合子图的最大权等于正权值节点的权值和减去最小割流量,此时最大权闭合子图的节点对应从源点可达的节点。#include <cstdio>#include <cstring>#inclu...

2020-04-09 22:23:39 180 1

原创 POJ 3680 坐标离散化 + 最小费用流

题意传送门 POJ 3680题解离散化坐标,对区间端点连边,容量为 111,权值为 −wi-w_{i}−wi​ ;对所有相邻左边连边,容量为 INF,权值为 000;此时对应一个 DAG。图中有负权边,令其初始时满流处理,即可直接用 dijkstra 求最小费用流。#include <cstdio>#include <cstring>#include <i...

2020-04-08 23:31:29 149

原创 POJ 3686 最小费用流

题意传送门 POJ 3686题解参考白书解法。考虑只有一个工厂情况,按照 a1,a2,…,aNa_{1},a_{2},\dots,a_{N}a1​,a2​,…,aN​ 顺序加工玩具,观察总时间最小值 TTTT=Za1+(Za1+Za2)+⋯+(Za1+Za2+⋯+ZaN)T=Z_{a_{1}}+(Z_{a{1}}+Z_{a_{2}})+\dots +(Z_{a{1}}+Z_{a_{2}}+...

2020-04-08 22:02:18 114

原创 POJ 2175 Floyd-Warshall

题意传送门 POJ 2175题解流量过大,最小费用流跪了。题意只要求答案优于当前方案即可,用 Floyd-Warshall 在增光路上求负圈,沿着负圈增广即可得到费用更小的流。实现上考虑到所提供方案城市人数安排一一对应,则源点到城市的边满流,求负圈时源点可不考虑在内。#include <cstdio>#include <cstring>#include <...

2020-04-08 21:02:18 134

原创 POJ 2135 最小费用流

题意传送门 POJ 2135把起点作为源点,终点作为汇点,求一条流量为 222 的最小费用流即可。#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <queue>#include <vector>...

2020-04-08 17:09:02 65

原创 POJ 3469 Dinic 最小割

题意传送门 POJ 3469白书说:“用最小的费用将对象划分成两个集合的问题,常常可以转换成最小割后顺利解决。”总的花费∑i∈SAi+∑i∈TBi+∑ai∈S,bi∈Twi+∑bi∈S,ai∈Twi\sum\limits_{i\in S}A_{i}+\sum\limits_{i\in T}B_{i}+\sum\limits_{a_{i}\in S,b_{i}\in T}w_{i}+\s...

2020-04-08 09:54:14 126

空空如也

空空如也

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

TA关注的人

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