
POJ
Mr_Xujh
无论走在那条路上都要做一个优秀的人
展开
-
POJ 1180 Batch Scheduling
斜率优化DP 题意:给你N个jobs,要你去用一台或多台机器 顺序 完成,然后每一台机器启动之前需要S的时间去准备; 如果一台机器要完成3个jobs,那么这3个jobs完成的时间就都是 tt =(开始的时间 + S + t[a] + t[b] + t[c]); 所以代价是tt*f[a] + tt * f[b] + tt * f[c]; 求完成所有jobs的最少代价 这一到题目的难原创 2015-09-08 00:16:52 · 1308 阅读 · 0 评论 -
POJ 2676 Sudoku
这题数据水,可以直接暴力DFS解决 然后学了下 dancing links 就试着解决这题 #include #include #include #include using namespace std; const int N = 9; const int MAXN = N*N*N + 10; const int MAXM = N*N*4 + 10; const int M = MA原创 2015-09-01 22:28:50 · 407 阅读 · 0 评论 -
POJ 2699 The Maximum Number of Strong Kings
网络流 模板题 参考 网络流汇总 http://blog.youkuaiyun.com/sdj222555/article/details/7797257 #include #include #include #include #include using namespace std; #define ll long long const int MAXN = 105; c原创 2015-08-16 09:50:43 · 547 阅读 · 0 评论 -
POJ 3261 Milk Patterns
题目意思大概就是,求可重叠的最少出现k次最长重复子串的长度。 思路:后缀数组,二分最长长度 #include #include #include #include using namespace std; const int N = 20050; int sa[N],rank[N],height[N],num[N]; int wa[N],wb[N],wv[N],wd[N];原创 2015-08-27 21:38:53 · 398 阅读 · 0 评论 -
POJ 2104 K-th Number
题意:给定一个数组,输入i, j, k,也就是询问i到j之间第k大的数 思路:暴力,主席树(模板题); 1、 暴力就是对每一个数标好顺序,然后排序(这时候预处理完成); 对于每个查询,暴力的扫一遍,遇到序号在i,j之间的数就k--,k=0是,就是所找的数 /*暴力法 Time: 7563MS */ #include #include #include using names原创 2015-07-19 22:10:54 · 514 阅读 · 0 评论 -
POJ 1986 Distance Queries
题意:求出两个树节点的距离 思路:可以转化成d[u]+d[v]-2*d[lca(u,v)] d[i]代表根节点到i的距离 lca(u,v)就是u,v的最近公共祖先的意思 模板题 第一种是tarjan的,比较快 #include #include #include #include #include #include using namespace std; c原创 2015-08-03 11:33:45 · 468 阅读 · 0 评论 -
POJ 2723 Get Luffy Out
题意:给你2n把钥匙,分成n组,每组只能选一把,然后另一把就不能用了。同时,有m个门,每个门上有两把锁,打开一个就可以通过,问最多可以通过几扇门; 思路:2-sat,假如(a,b)是同一组的钥匙,那么就有 a--b',b--a'; (c,d)是同一门上的锁那么就有d'--c,c'--d;(为什么不是c--d',d--c'? 因为2-SAT其实就是找不相容的点对,你开了c,当然也可以开d,原创 2015-07-27 10:52:28 · 422 阅读 · 0 评论 -
POJ 2728 Desert King
#include #include #include #include #include #include #define INF 1000000000 #define eps 1e-7 using namespace std; const int N = 1005; int n; double e[N][N],low[N]; int nearn[N]; struct point{转载 2015-07-27 16:04:50 · 338 阅读 · 0 评论 -
POJ 2724 Purifying Machine
#include #include #include using namespace std; const int N = 1100; int n,m,t; int g[N][N],match[N],vis[N]; char p[N][N]; bool dfs(int x){ for(int i = 0; i < t; i++){ if(g[x][i] && !vis[i]){原创 2015-07-26 13:50:09 · 428 阅读 · 0 评论 -
POJ 2299 Ultra-QuickSort
树状数组求逆序 如 i= 1 2 3 4 5 v= 9 1 0 5 4 id= 1 2 3 4 5 排序后 i= 1 2 3 4 5 v= 9 5 4 1 0 id= 1 4 5 2 3 f[id]= 1 2 3 4 5 f[i]= 1 4 5原创 2015-05-23 15:20:45 · 362 阅读 · 0 评论 -
POJ 3468 A Simple Problem with Integers
题意: 给你n个数,q个操作,操作有两种,‘Q a b ’是询问a~b这段数的和,‘C a b c’是把a~b这段数都加上c 可以用线段树,树状数组,伸展树 线段树: /*线段树*/ #include #include #include #include using namespace std; #define ll long long const int N=100005; in原创 2015-05-01 18:55:11 · 332 阅读 · 0 评论 -
POJ 1815 Friendship
最小割 参考 网络流建模汇总 教程:最大流-最小割定理 http://blog.youkuaiyun.com/lenleaves/article/details/7887217 #include #include #include #include #include #include using namespace std; #define ll long long原创 2015-08-20 10:22:55 · 341 阅读 · 0 评论