WinForBest

你说你有梦,有远方

线段树专题

线段树说明及理解 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。 预处理耗时O(n),查询、更新操作O(logn),需要额外的空间O(n)即2倍空间 未优化的空间复杂度为2N,实际应用时一般还要开4N的数组以免越界,因此有时需要离散化让...

2018-01-01 20:53:17

阅读数 157

评论数 0

Node.js安装教程(Win7)

1. git下载并安装 下载地址:git download 安装过程不解释. 检查是否安装成功: 若没有出现上述信息,请到系统变量配置git环境. 2. Node.js下载并安装 下载地址:Node.js windows 64bit 打开下载后的node-v9.3.0-x64.msi 一直next...

2017-12-28 18:15:18

阅读数 242

评论数 0

ZOJ3988 Prime Set (匈牙利算法求解)

题目链接:ZOJ - 3988 Prime Set题意: 给出n个数, a[1]~a[n] 若a[i]+a[j]是素数,那么称 集合{i, j} 为Prime set 给定k, 表示至多从由这n个数组成的Prime set中取出k个集合 问:取出的集合合并后,集合的大小最大为多少?(注意,此处集...

2017-11-03 10:18:23

阅读数 670

评论数 6

HDU 2842 Chinese Rings ( 矩阵转换,矩阵快速幂求解)

题目链接: HDU 2842 题意:  有一种中国结,由n个环组成,问将n个环全部拆下来所需要的最小步数 拆解条件: 拆解第n个环,需要保证前n-2个环全部拆解下来,而第n-1个环保留(依旧悬挂)解法: 设F[n]为拆解n个环所需要的最小步数. 拆解n个环的情况下,...

2017-10-18 14:12:42

阅读数 174

评论数 0

HDU 5521 Meeting ( nlogn的dijkstra+拆点)

题目链接: HDU 5521 题意: 给定n和m,n表示n个点,m表示m个集合,给出每个集合包含的点的编号,第i个集合中各个点之间的距离为ti,问,A位于编号为1的点,B位于编号为n的点,若同时出发,最快需要多久能相遇(可停留在某点等待), 输出最小时间以及满足最小时间的相遇的点.解法: ...

2017-10-14 17:48:22

阅读数 206

评论数 0

Tarjan无向图求割点割桥模版, O(n+m), 无重边/重边情况均可处理

/* Function:Tarjan无向图求割点割桥, O(n+m), 无重边/重边情况均可处理 1. 求出所有的桥,再将 */ #include<bits/stdc++.h> #define rep(i,a,b) for(int i=a; i<=b; ++i) #def...

2017-10-13 08:10:44

阅读数 237

评论数 0

HDU 1269 迷宫城堡 (裸的Tarjan算法求强连通分量, 可作模版)

题目链接 : HDU 1269 题意: 给定有向边,问是否两两可达,即整个图是个强连通图(强连通分量=1) 解法: 直接上tarjan板子求解 #include<bits/stdc++.h> #define rep(i, a, b) for(int i=a; i<=b; ++i...

2017-10-10 09:36:07

阅读数 150

评论数 0

ACM常用对拍程序

建立cpp文件,放置标程,执行后产生exe可执行文件 (std.cpp -> std.exe ) #include<bits/stdc++.h> using namespace std; int main(){ int a, b; cin >> a &...

2017-10-10 09:05:52

阅读数 365

评论数 0

VS Professional 2017 配置Jsoncpp

Jsoncpp 下载链接 将下图Jsoncpp目录中的.h文件 以及.cpp文件 移动到 项目 (需要使用jsoncpp的项目)的目录下Jsoncpp - .h文件目录 Jsoncpp - .cpp文件目录 需要使用jsoncpp的项目的目录 在项目中将上述的.h文件添加到头文件下,.cpp...

2017-10-08 07:56:24

阅读数 1997

评论数 0

UVALive - 7527 Funfair (dp + 滚动)

题目链接: UVALive - 7527 Funfair 题意: 给定n个游戏,从中选取k种游戏去玩,玩家的金钱初始值为x. 假设玩第i个游戏之前,拥有的金钱为x0, 则在第i个游戏中若胜利,则金钱变成x0+ai, 否则金钱变成 (1-li)*x0. 问: 玩完k个游戏后,金钱最大值为多少.(即...

2017-10-07 16:35:12

阅读数 146

评论数 0

HDU 1078 FatMouse and Cheese (dfs + dp记忆化搜索)

题目链接 : HDU 1078 题意: 给定N x N 的方阵,每个格子均有一个价值,问从[0, 0]从发,往上下左右四个方向走,每次至多只能走k个格子,且每次停留的格子必须比上一次停留的格子的价值大(严格大于), 问: 能吃到的最大价值为多少? 解法: dp[i][j]表示从[i,j]出发能吃到...

2017-10-05 16:56:33

阅读数 168

评论数 0

HDU 1074 Doing Homework (二进制状态压缩,状压dp)

题目链接 : HDU 1074 题意: 给出n个课程作业, (课程名称,截止时间,完成所需天数), n<=15 每个课程作业,延误一天就扣一分 求最少扣分,以及输出方案,按字典序顺序 解法: n<=15则采用二进制去表示完成状态, 1 < < 15 - 1 = 111 ...

2017-10-04 18:01:02

阅读数 254

评论数 0

HDU 1069 Monkey and Banana (dp, 最长上升子序列)

题目链接: HDU 1069 题意: 给定n个长方体,每个长方体均有长、宽、高. 将这些长方体(可重复使用)叠起来,满足上面的长方体的长宽>下面的长方体的长宽( 长>长,宽>宽,为严格> )的条件下. 问叠出来的高度最高为多少? 解法: 一个长方体可分为6种类型的长方体( ...

2017-10-04 16:49:08

阅读数 259

评论数 0

HDU 4446 IT Companies (线段树, 区间修改)

题目链接: HDU 4446 题意: 有n个公司,标签由1到n, 对应的分支标签由-1到-n. (分支不是公司,分支和公司均是单元) 满足以下条件: 每个公司的人数>对应分支的人数 如果A公司人数>B公司人数,那么A公司的分支的人数>B公司的分支的人数 ...

2017-10-03 22:31:04

阅读数 206

评论数 0

HDU 1059 Dividing(多重背包 , 二进制优化形成01背包)

题目链接: 1059 Dividing 题意: 有6个物品,一个物品的价值=该物品的编号i (1-6),给定每个物品的数量,问,是否能将所有物品分成价值相等的两堆? 解法: 多重背包,将价值当作背包承受量,物品数量当作价值. #include<stdio.h> #include<...

2017-09-29 16:29:17

阅读数 178

评论数 0

HDU Bone Collector (01背包,裸题)

题目链接Bone Collector 题意: 给定n, v . 表示有n个物品, 和一个最大承重为v的背包,给出n个物品,每个物品的价值和重量. 问这个背包最多获得多少价值解法: 01背包,裸题 #include<bits/stdc++.h> #define rep(i,a,b)...

2017-09-29 14:44:19

阅读数 163

评论数 0

HDU 1025 Constructing Roads In JGShining's Kingdom (简单dp, 最长上升子序列LIS)

题目链接 : Constructing Roads In JGShining’s Kingdom 题意: 有rich city和poor city 两种,分别有n个,编号均为1-n, 一个poor city只会与一个rich city连接,两种city的布局(连边不允许交叉如下 从左到右,均...

2017-09-28 15:10:38

阅读数 123

评论数 0

2015-2016 Northwestern European Regional Contest (NWERC 2015) E. Elementary Math

题目链接: 2015-2016 Northwestern European Regional Contest (NWERC 2015) E. Elementary Math 题意: 给定n, 以及n对(a, b), 每对(a, b) 均有三个操作(a*b, a+b, a-b). 给每一对选择...

2017-09-28 12:20:38

阅读数 225

评论数 0

codeforces Manthan, Codefest 17 B.Marvolo Gaunt's Ring (简单dp)

题目链接: B.Marvolo Gaunt’s Ring 题意: 给出n, p, q, r 给出n个数, a[i] 求p * a[i] + q * a[j] + r * [k] 的最大值 ( 1<=i<=j<=k<=n) 解法: 限制条件i<=j<=k p*...

2017-09-28 10:53:58

阅读数 160

评论数 0

边存储 - 前向星(结构体存边)

#include<bits/stdc++.h> #define rep(i, a, b) for(int i=a; i<=b; ++i) #define repp(i, a, b) for(int i=b; i>=a; --i) using namespace std; c...

2017-09-26 19:49:28

阅读数 275

评论数 0

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