摘要: 题意:给了一个T 代表有 T 组数据每组数据给出 n 个点和 m 条边然后接下来 n 行..x, y 表示每个点的坐标然后 m 行..a b w 表示 a 点和 b 点之间有权值 w..求最大流..思路:主要是最大流的方法..最大流ISAP,邻接表+GAP+当前弧优化Tips:理解用法..Code:View Code 1 #include <stdio.h> 2 #include <cstring> 3 #include <iostream> 4 using namespace std; 5 #define clr(x) memset(x, 0xff, si 阅读全文
posted @ 2012-09-15 21:33 Griselda. 阅读(530) 评论(0) 推荐(0) 编辑
摘要: 题意:给出 n 个数..用a, b表示 n 次更新一段区间[a, b]..求更新完 n 次后这 n 个数的值..思路:正常做法是 从 a 到 b 每个数+1不正常做法是 用树状数组 在a的地方+1 在b的地方-1 然后求某个数 k 的值的时候就求从1~k的和..Tips:树状数组的应用..Code:View Code 1 #include <iostream> 2 #include <cstring> 3 #include <stdio.h> 4 using namespace std; 5 6 int n; // n是边界 7 int c[100001]; 阅读全文
posted @ 2012-09-15 12:36 Griselda. 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 题意:给出 n 表示有 n 个位置然后有 一行 n 个数表示初始状态 每个位置的值然后给出 m 表示有 m 条order接下来 m 行..每行的格式有两种..1 b 表示询问在 b 点的值2 a b k x 表示在 a 到 b 里面满足 (i-a)%k == 0 的位置上的值都加 x思路:感觉是树状数组了但是 树状数组是单点更新 而题目要求是在a b 内每隔 k 个数更新..如果用for循环对a b 内每隔 k 个位置的数更新就会很费时间..所以有一个方法就是 按 k 值 i%k 值还有 i/k+1 值把每隔 k 个位置的值都分组..即按 k 值和 i%k 值建树状数组到时候维护其中一棵 树状 阅读全文
posted @ 2012-09-15 12:35 Griselda. 阅读(1493) 评论(0) 推荐(0) 编辑