上一页 1 ··· 40 41 42 43 44 45 46 47 48 ··· 71 下一页
摘要: http://poj.org/problem?id=2482类似于上一篇 这题转化的比较巧妙 将一个点转化为一个矩形(x,y, x+w,y+h),扫描线入值为正 出值为负也就是一根线过去 每进入一个矩形 都更新线上的总值 取一个最大值 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define N 20010 8 #define LL long long 9 struct node 10 { 11 LL lx,rx,y,s; 12 node()... 阅读全文
posted @ 2013-07-14 19:47 _雨 阅读(239) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1151http://www.cnblogs.com/kane0526/archive/2013/02/26/2934214.html这篇博客写的不错 主要是图画的不错求面积并 离散化后 通过添加矩形的x方向边 用线段树不断更新(要求的分割开的)矩形的长和宽 1 #include 2 #include 3 #include 4 #include 5 #define maxn 5050 6 using namespace std; 7 struct node 8 { 9 double lx,rx,y;10 int s;11 ... 阅读全文
posted @ 2013-07-14 19:22 _雨 阅读(173) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2750之前做过类似的题 把一段的左连续最大、最小 右连续最大及最小及中间的连续更新出 就可以算出这段最大的连续和注意不能全部加上 加上一特判 如果最大和是全部数的和就减去这段最小的和 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define N 100010 8 struct node 9 {10 int va,lmax,rmin,lmin,rmax,smax,smin;11 }p[N>1;33 bui... 阅读全文
posted @ 2013-07-11 22:00 _雨 阅读(374) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2886单点更新 初始位置都是1 如果这个人出去 位置变为0 利用线段树求区间k值 k值的计算如下如果这个数值是负的 那么下一个人的就是((k-1+p[id].d)%n+n)%n+1; 如果是正的 下一个人就是(k-1+p[id].d-1)%n+1; 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 500010 9 struct node10 {11 char s[12];12... 阅读全文
posted @ 2013-07-11 18:18 _雨 阅读(214) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3686拆点很巧妙 将每个M个点拆成m*n个点 分别表示第i个玩具在第j个机器上倒数第K个处理假设这k个玩具真正用在加工的时间分为a1,a2,a3...ak, 那么每个玩具实际的时间是加工的时间+等待时间,分别为a1, a1+a2, a1+a2+a3.......a1+a2+...ak求和之后变为 a1 *k + a2 * (k - 1) + a3 * (k - 2).... + ak 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #define IN. 阅读全文
posted @ 2013-06-27 19:34 _雨 阅读(255) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2400KM算法http://philoscience.iteye.com/blog/1754498题意:每个雇主对雇员有个满意度 雇员对雇主有个满意度 求最匹配的雇员与雇主最小权匹配 这个给出的数据矩阵貌似是反着的 建图的时候反一下就好了 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #define N 110 8 #define INF 0x3f3f3f 9 using namespace std; 10 int w[N][N],... 阅读全文
posted @ 2013-06-23 17:04 _雨 阅读(317) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3308给两个定义最小割:对于图中的两个点(一般为源点和汇点)来说,如果把图中的一些边去掉,如果它们之间无法连通的话,则这些边组成的集合就叫为割了。如果这些边有权值,最小割就是指权值之和最小的一个割。最大流最小割:应用于网络中,指总流量不超过链路可承载的最大值,且在每条子路径上取尽可能少的流量。对任意一个只有一个源点一个汇点的图来说,从源点到汇点的最大流等于最小割。之前做二分图的时候看过一篇文章 现在依旧看这篇http://ip96cns.blog.163.com/blog/static/170095192201117465473/设置超级源 阅读全文
posted @ 2013-06-21 23:45 _雨 阅读(217) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3352无向图强连通分量缩点 知道一个等式:若要使得任意一棵树,在增加若干条边后,变成一个双连通图,那么至少增加的边数 =( 这棵树总度数为1的结点数 + 1 )/ 2 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 1010 9 #define M 201010 struct node11 {12 int u,v,next;13 }edge[M];14 stacks;15 int... 阅读全文
posted @ 2013-06-19 21:09 _雨 阅读(297) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3114缩点+DIJK 注意缩点之后有重边啊 floyd会TLE 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #define N 510 8 #define M 301000 9 #define INF 0xfffffff 10 using namespace std; 11 struct node 12 { 13 int u,v,next,w; 14 }edge[M]; 15 int t,low[N],pre[N],scc... 阅读全文
posted @ 2013-06-19 12:36 _雨 阅读(273) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3592提交了30多次了 受不了了 两份的代码基本上一样了 一个AC一个WA 木办法 贴份别人的吧 改得跟我得一样 人家能A 我是WA。。强连通分量缩点 用spfa算出最长路 注意算强连通时加过的值就不再加了 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 const int NN=1606; 9 const int MM=1000000; 10 const int INF=0x3f... 阅读全文
posted @ 2013-06-19 10:51 _雨 阅读(294) 评论(3) 推荐(0) 编辑
上一页 1 ··· 40 41 42 43 44 45 46 47 48 ··· 71 下一页