E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Pku
POJ3784 Running Median——双向链表/堆——
Pku
3784
题目大意: 写程序读入一个整数序列。每次读入第奇数个数后,输出当前序列的中位数。 {以上感谢铎铎大牛提供的翻译} 我想出来的是离线算法:将整体读入之后快排,建立链表,首先求出最后一个中位数,然后按读入顺序从后向前每次删去两个数,有如下五种情况: 如果删去的两个数都比中位数大,那么将中位数的位置移到没有被删去的比当前中位数小的最大的数。 如果删去的两个数都比
·
2015-11-02 17:19
media
POJ3169 Layout——差分约束系统+SPFA——
Pku
3169
本题是一道典型的差分约束系统问题。关于差分约束系统,请visit 百度百科:http://baike.baidu.com/view/1008149.htm 简略成一句话,那就是:对于i-j<=k 这样一个条件,就在j和i之间连一条有向边,边权为k 对于本题,有两种条件,两头牛的距离不大于或者不小于k,距离不大于k的时候按照差分约束系统的条件即可进行,而距离不小于k时则可以按照如下数学方法
·
2015-11-02 17:19
layout
POJ1849 Two——贪心——
Pku
1849
类似于树形动态规划的贪心。题目大意: 这个城市由节点和连接节点的街道组成,街道是双向的。此刻大雪覆盖了这个城市,市长确定了一些街道要将它们清扫干净,这些街道的确定保证所有节点可以通过它们连通而且街道数目尽可能小。有两台相同的扫雪机S和M,它们的起点在同一个节点上。 所有被确定的街道必须至少被一台扫雪机经过,才能完成清扫任务,完成任务后S和M可以在原地停下,不必集合到某一点。扫雪机的行进是需要
·
2015-11-02 17:18
poj
POJ2455 Secret Milking Machine ——二分答案+网络流——
Pku
2455
思路:二分答案,用权值比二分出来的答案小的边来建图。网络流判定的是是否能够满足找到t条路径。 CODE Program Secret;//By_Poetshy Const maxn=40000; Var i,j,k,m,n,p,t,d :Longint; pre,other,last,data :Array[1.
·
2015-11-02 17:17
mac
POJ2394 Checking an Alibi ——最短路——
Pku
2394
单源最短路的SPFA算法即可。 CODE Program Alibi; Const maxn=1000; Var i,j,k,m,n,f,p,c,o,r,d :Longint; pre,other,last,dist,data :Array[1..maxn*2]of Longint; ans,place :Array[1..maxn]of Longint;
·
2015-11-02 17:16
check
POJ2454 Jersey Politics ——贪心+随机化算法——
Pku
2454
初看此题时,显然大家都想到了贪心+搜索+剪枝,但是POJ的评测机是很不给力的,一定是TLE。所以,理所当然的,我们知道了random的威力。 先证明一下贪心算法的正确性: 策略:将这n*3个元素倒序快排一下,取前n*2个元素分为两组,最后n个元素分为一组。 证明:如果不这样选的话,那么前两组的总和必会比这样选的情况小,那么更有可能失败。证毕。 随机化算法: 每次从前两个集合中各选一个元素
·
2015-11-02 17:16
jersey
POJ2393 Yogurt factory ——贪心——
Pku
2393
贪心思想:维护每一个点上的两种决策:取这个点的价值还是取这个点前面权值最小的点的价值。取完这个点后,更新最小值并处理下一个点。 证明:因为储存价值s固定,所以贪心策略成立。 CODE Program Yogfac;//By_Poetshy Var i,n,m :Longint; re,ans,p,q :Int64; BEGIN ans:=0;
·
2015-11-02 17:15
factory
POJ2230 Watchcow——欧拉回路——
Pku
2230
复习一下欧拉回路的求法。 伪代码如下: Void Eular(int p); { for 从p出发的每条边 { 如果这条边没有被访问过 { 边的访问标记置为 true Eular(这条边上另外一个点); 将这条边压入栈中; } } } 倒序访问栈中每一条边就是答案。 CODE
·
2015-11-02 17:14
poj
POJ2392 Space Elevator ——动态规划初步——
Pku
2392
此题为一般的动态规划,为可能性动态规划。初态只需将f[0]:=true;在所有都不小于a[i]的条件下进行动态规划。 状态转移方程:f[j+c[i]]:=true (if (f[j]=true) and (j+c[i]<=a[i])) 注意动态规划的顺序:一定要倒推,否则会造成重复。 CODE Program Elevator;//By_Poetshy C
·
2015-11-02 17:14
动态规划
POJ2226 Muddy Fields——最小点覆盖问题——
Pku
2226
最小点覆盖问题,采用匈牙利算法。 证明一下算法的正确性: 定义一段无法向左右扩展的连续泥地为行连通块,一段无法向上下扩展的连续泥地为列连通块。我们把行连通块对应X集合,列连通块对应Y集合,如果一个行连通块与一个列连通块有交点且为空地,则对应在二分图中有一条边。显然木板的集合对应二分图的一个匹配,任意两个木板不可能共同存在于一个行/列连通块中,所以最少木板数目=最大匹配数。证毕。 Progr
·
2015-11-02 17:12
Field
POJ2228 Naptime——动态规划+技巧性优化——
Pku
2228
本题是一个显然的动态规划题目。设计状态时,用f[i,j,1]表示第i段时间为止,已睡去j个时间段,且第i段时间睡觉获得的最大效用。反之,f[i,j,0]表示上述状态下[i]第i段时间不睡觉能获得的最大效用值。 状态转移方程如下: f[i,j,0]:=Max{f[i-1,j,0],f[i-1,j,1]} f[i,j,1]:=Max{f[i-1,j-1,0],f[i-1,j-1,1]+u[i]}
·
2015-11-02 17:11
动态规划
POJ1987 Distance Statistics——树的分治——
Pku
1987
这道题是楼教主《男人八题》中的一题,算法:树的分治。 看到题目时很容易想到直接Dfs,但那样的话时间复杂度会高达O(n^2)!对于n<=40000的数据来说根本无法承受。所以,必须考虑分治的思想。 怎么分治呢? 树的重心! 至于树的重心,不熟悉的OIer可以做掉POJ1655,或者NOI2011 Day2的第一题来练手,这两道题要求的就是树的重心。至于pascal语言的ACMer可以
·
2015-11-02 17:11
poj
POJ 2227 The Wedding Juicer——堆的应用——
Pku
2227
这是刘汝佳神牛《算法艺术与信息学竞赛》上有关堆的一道例题。主要思路如下: 维护一个堆,存储的是水位和高度一样的格子的高度。 1、首先把边缘点全部加到堆中 2、每次取堆中最小的一个,做一次Floodfill,如果被fill到的点比队首元素高度高,那么将这个点加入堆中,否则将该点的水位设置为队首元素的水位。 3、重复2,直到堆中没有元素。 4、最后,统计答案为每个点水位高度与实际高度的差值和
·
2015-11-02 17:10
poj
POJ1991 Turning in Homework——贪心+动态规划——
Pku
1991
贪心+ 动态规划。 贪心思想:当有一段连续区间[i,j]未交时,取i或j是最优的。 贪心思想证明:如果在[i,j]这段连续区间都没有被取的时候取了中间的m,那么后来一定要从m返回到i或者j,这时候是一定走了“冤枉路的”。而如果这时取了i或者j,那么到中间的时候m一定可以取。证毕。 动态规划的方程这时候就简单了: f[i,j,0]表示[i+1,j]这一段连续区间都没有取,奶牛站在i上 f[
·
2015-11-02 17:09
动态规划
POJ1989 The Cow Lineup——贪心+扫描法——
Pku
1989
开始的时候没有想出算法,上网查题解,居然有人说这题是动态规划……无奈。偶然间看到了上海交大马融牛的解题表格:只有一句话,从前向后扫描。才知道这道题用到的只不过是一个贪心思想。 贪心思想: 把序列划分成尽量多的连续子序列,使得每一个连续子序列都满足如下条件: 1..k每个数字都在这个子序列中出现过一次,并且至少有一个数字只出现过一次。 这样的子序列的个数+1就是答案 贪心思想证明: 要让
·
2015-11-02 17:08
poj
POJ1988 Cube Stacking——并查集——
Pku
1988
比较巧妙的并查集,考察对并查集的引申应用。维护三个数组: a[i]表示i到pre[i]中间有方块的个数 pre[i]表示i所在集合编号,即根 c[i]表示以i为标志的集合中元素个数,只有当pre[i]=i的时候c[i]才有意义 合并时,只需进行如下操作: 1、对读入的x、y分别进行路径压缩,直到找到真根为止 2、合并x、y两个集合,主要步骤如下:
·
2015-11-02 17:08
stack
POJ1990 MooFest——树状数组——
Pku
1990
维护两个树状数组,一个记录这个坐标所控制的范围内的奶牛个数,另外一个记录这个坐标所控制范围内的奶牛坐标之和。 program poj1990;//by_poetshyconst maxn=20000;var i,n :longint; p,m,ans :int64; v
·
2015-11-02 17:07
树状数组
PKU
SC2013 BUG集锦
如果今年考试真的是这个难度,那比的就是速度和准确度了…… a A:不明觉厉 B:推公式后不明觉厉 C:树的HASH D:不明觉厉 E:QAQ 复制代码'-'忘改'+' WA×1, F:QAQ 请输出 "No solution." WA×2 b(这么多WA还玩啥!!) A:不明觉厉(爆搜0ms)
·
2015-11-02 17:23
bug
PKU
2593 Max Sequence
分析:和2479一样,只是数据规模不同了。 Code #include <iostream> using namespace std; int a[100001],l[100001],r[100002]; int main() { int
·
2015-11-02 16:22
sequence
PKU
2479 Maximum sum
分析:和上一题差不多,首先引入一个数m,m是在t1和s2之间的一个数,简单讲就是把序列分成两部分,然后两部分分别求最大子序列和,左边部分的最大子序列和为l(i),右边部分的最大子序列和为r(i)。那么问题变成了。 d(A) = max{ l(m)+r(m+1), 1<=m<=n } Code #include <iostream> u
·
2015-11-02 16:21
pku
PKU
1273 Drainage Ditches
分析:第一个网络最大流的题目,绝对经典,值得一做。代码没怎么优化,方便做参考。 Code #include <iostream> #include <deque> #include <queue> using namespace std; #define MAXN&
·
2015-11-02 16:15
pku
PKU
2036
对线段排序 对于K不存在的线段的放在一起,对x1进行排序 对于x1相同的对于y1排序 对于K存在的直线 对b进行排序 b相同的对于x1进行排序 排序复杂度Nlogn 在对于在一条直线上的线段O(n)的计算线段数目 总时间复杂度NLOGN这应该是这题最基本的算法 #include < stdio.h > #include <
·
2015-11-02 15:36
pku
PKU
1151线段树解法
模仿别人的代码写的 这题不用线段树也可以过 #include < stdio.h > #include < string .h > #include < stdlib.h > struct line { double x,
·
2015-11-02 15:35
线段树
PKU
3264线段树解法
#include < stdio.h > #include < string .h > struct node { node * pl, * pr; int left, right
·
2015-11-02 15:34
线段树
PKU
2074
#include < stdio.h > #include < string .h > struct line { double x1, x2, y; bool ex; } ; line&n
·
2015-11-02 15:34
pku
PKU
2029
#include < stdio.h > #include < string .h > int n, W, H, w, h; int m[ 101 ][ 101 ]; int cnt; void DP() { &n
·
2015-11-02 15:33
pku
PKU
1940
#include < stdio.h > #include < string .h > int n; __int64 x1, y1; __int64 x[ 1024 ], y[ 1024 ]; __int64 sum_x, sum_y; int main()
·
2015-11-02 15:32
pku
PKU
3277离散化+线段树
对于x坐标先进行一个排序 用一个数组记录它们是第几大 这样就把非常大的数压缩得很小 线段树中叶子节点记录的就是相邻x的区间 对于每个节点记录最高的h hcount代表这个区间有多少个高度 最后用每个区间宽度×h 在树中即可计算area #include < stdio.h > #include < math.h > #include < s
·
2015-11-02 15:30
线段树
PKU
3316
这题陷阱很多....很多种不合法的贪食蛇...要仔细排除每种情况.. #include < stdio.h > #include < string .h > struct P { int i, j; } ; int n, m; b
·
2015-11-02 15:28
pku
PKU
3321
开始写的是用线段树的模型 由于结构的差异 线段较烦 节点中只能记录父节点 然后在维护节点中COUNT值的时候 需要不断地从叶节点开始从下到上对count进行更新 正好和线段树相反 结果超时了 这是因为 如果数据中的树是一棵很高的树的话 维护COUNT值会耗时很大 下面是上面思想的超时代码 (用邻接表也许更省时一点,不过想想如果用精简的树状数组会更美观一些) #include &
·
2015-11-02 15:27
pku
pku
3338
坐标系转换一下 求联通子图个数 内存时间都比较小 #include < string .h > #include < stdio.h > int w, d, n, cnt; bool e[ 21 ][ 21 ][ 2 ]; // 0 right |
·
2015-11-02 15:25
pku
PKU
3331
#include < string .h > #include < stdio.h > struct Num { int dig; char n[1024]; } ; int n, 
·
2015-11-02 15:24
pku
PKU
3327
WA了N次... #include < string .h > #include < stdio.h > struct Rect { int w, d; } ; int c, w, d, cnt, 
·
2015-11-02 15:23
pku
PKU
2411
#include < string .h > #include < stdio.h > int m, n; __int64 f[ 12 ][ 2048 ]; __int64 g[ 12 ][ 12 ]; void DFS( int i, int j
·
2015-11-02 15:23
pku
补上以前没有AC的
PKU
儿八死三
额。。。DFS会RE。。。 #include < stdio.h > #include < string .h > int mmm[ 1024 ][ 1024 ]; int rj[ 1024 ][ 1024 ]; int cnt, N, M, i1,&nb
·
2015-11-02 15:19
pku
PKU
1039
几何题 #include < math.h > #include < string .h > #include < stdio.h > struct Point { double x,y; } ; struct Line
·
2015-11-02 15:18
pku
PKU
3200
每次加盘子时候 ,算i~n圆盘的重心坐标 ,看是否该重心在下面圆盘i-1里面 注意临界情况,题意是临界不平衡 #include < math.h > #include < string .h > #include < stdio.h > double x[ 1000 ],y[ 1000 ]
·
2015-11-02 15:17
pku
pku
1966 Cable TV Network 点连通度
http://poj.org/problem?id=1966 这里是点连通度的一些介绍: 点连通度的定义:一个具有N个点的图G中,在去掉任意k-1个顶点后(1<=k<=N),所得的子图仍然连通,去掉K个顶点后不连通,则称G是K连通图,K称作图G的连通度,记作K(G)。 独立轨:A,B是图G(有向无向均可)的两个顶点,我们称为从A到B的两两无公共内顶的轨为独立轨,其最大的条数记作
·
2015-11-02 15:15
NetWork
pku
1734 Sightseeing trip floyd求最小环
http://poj.org/problem?id=1734 题意: 给定一张图,n个点m条无向边(存在重边)。求该图的最小环(边权和最小) 注意此环满足展开的路径v1,v2,v3...v1中出了v1之外其他的点都必须不同,业绩不会存在1 2 3 3 2 1这样的环 思路: 1:朴素的求最小环的方法做E遍Dijkstra,枚举每条边e(i,j),删去边e(i,j)之后,求i到j的最短路经,
·
2015-11-02 15:15
floyd
pku
The Windy's KM最小权匹配 or 最小费用最大流
http://poj.org/problem?id=3686 题意: 给定n个玩具,有m个车间,给出每个玩具在每个车间的加工所需的时间mat[i][j]表示第i个玩具在第j个车间加工所需的时间,规顶只有第i个玩具在j车间完成时第j车间才能接受其他玩具来生产。求加工完毕所有的的n个玩具所需的最小的平均时间。 思路: 不论使用KM求最小权匹配还是使用最小费用最大流求解,建图还是最重要的。笨啊.
·
2015-11-02 15:10
pku
树形DP题目
pku
1463 Strategic game http://poj.org/problem?id=1463 题意: 给定一个树,求在节点上放士兵来检查所有的线路。
·
2015-11-02 15:57
dp
01背包问题。
pku
3624 Charm Bracelet http://poj.org/problem?id=3624 最裸的01背包。
·
2015-11-02 15:54
问题
完全背包题目:
pku
1384 Piggy-Bank 完全背包入门题目。 http://poj.org/problem?id=1384 这里只是求的恰好装满,且是最小罢了。
·
2015-11-02 15:54
背包
并查集专题
普通的并查集:
pku
1308 Is It A Tree? http://poj.org/problem?
·
2015-11-02 15:52
并查集
线段树——扫描线
PKU
1151 && hdu1542 Atlantis 矩形面积并 http://poj.org/problem?
·
2015-11-02 15:51
线段树
pku
2104 K-th Number && hdu 2665 Kth number 划分树
http://poj.org/problem?id=2104 http://acm.hdu.edu.cn/showproblem.php?pid=2665 题意: 给定一个长度为n的序列,求一个区间[L,R]内第K大的数; 思路: 划分树模板题。 给出个人感觉讲解比较好的连接: http://blog.sina.com.cn/s/blog_5f5353cc0100ki
·
2015-11-02 15:49
number
pku
Nearest Common Ancestors LCA 问题(rmq && tarjan)解决
http://poj.org/problem?id=1330 题意:给n个点,n-1条边,一棵树,求每个询问的LCA; 思路: rmq求LCA。。。。http://dongxicheng.org/structure/lca-rmq/ View Code #include <iostream> #include <cstdio> #include <
·
2015-11-02 15:46
REST
pku
3070 Fibonacci 矩阵快速幂相乘求Fibonacci 数列
http://poj.org/problem?id=3070 思路: 这里n很大单纯的递推是O(N)会超时,所以要用矩阵快速幂优化; f(n) 1 1 &n
·
2015-11-02 15:44
fibonacci
pku
2947 Widget Factory 高斯消元
http://poj.org/problem?id=2947 题意: 工人生产不同的部件需要不同的时间,最少需要3天最多需要9天。 给出n种部件和m条记录,每条记录包括该工人生产部件的总数k和他开始生产时间和结束时间(只给出是周几,不给出具体时间),之后给出这K个部件跟的所属的种类。最后求出生产这n种部件分别所需要的时间。 思路: 高斯消元: 例子来讲 首先我们能够列出方程 (x
·
2015-11-02 15:31
factory
pku
1026 Cipher 置换群
http://poj.org/problem?id=1026 题意: 给定长度为n的序列key[],key[i](表示第i个字符置换一次后跑到key[i]的位置)然后给出数字k以及字符串seq[],输出经过k次加密后的字符串,字符串的长度总是满足长度为n如果后边无字符用空格代替。 每一次的加密过程为: 例如 4 5 3 7 2 8 1 6 10 9, He
·
2015-11-02 15:29
pku
上一页
37
38
39
40
41
42
43
44
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他