09 2012 档案
摘要:最近的状态都不是很好>_<,没有一些明确的目标,所以得要制定一些计划才能够得到提高:目标一:USACO 最近已经刷到了2.3了,在今年结束前得要刷完他。。。目标二:URAL 最近的题数过了46题,后面都是在这刷了,得要刷到Rank500前。。。目标三:BZOJ 很好的一个OJ,题目经典,但是相对来说比较难,所以题目数量最要求50题(现在已近10题了)以上吧,明年开始全力刷。。。目标四:POJ 在学新的算法的时候,我喜欢在poj上刷,因为比较容易找到分类和题解^^,所以题目数量应该超过400(现在270)目标五:新的算法 引用大牛的(会了的话,在前面//吧)更新...
阅读全文
摘要:前面的是POJ的,后面的是HOJ1.burnside定理,polya计数法这个大家可以看brudildi的《组合数学》,那本书的这一章写的很详细也很容易理解。最好能完全看懂了,理解了再去做题,不要只记个公式。*简单题:(直接用套公式就可以了)pku2409 Let it Beadhttp://acm.pku.edu.cn/JudgeOnline/problem?id=2409pku2154 Colorhttp://acm.pku.edu.cn/JudgeOnline/problem?id=2154pku1286 Necklace of Beadshttp://acm.pku.edu.cn/Ju
阅读全文
摘要:一个很水的版本 >_<直接vector操作,修改时直接lower_bound找到位置,然后add操作时是a.insert(),del操作时是a.erase(),询问时直接枚举求和。。。67782292012-09-16 21:57:16Accepted42886843MS1060K1154 BG++yejinruView Code 1 #include <iostream> 2 #include <vector> 3 #include <cstring> 4 #include <cstdio> 5 #include <algor
阅读全文
摘要:若有错,请指出^_^67755042012-09-16 17:05:39Accepted4292125MS2436K3010 BG++yejinru67754962012-09-16 17:05:08Accepted428978MS1488K2452 BG++yejinru1002 Control 题目: 给出歹徒的起点、终点以及每个经过的节点的权值,问如何安排警察在节点上拦截歹徒,使得歹徒总会被逮获,并且使得费用最少分析: 最小割问题,对于每个节点进行拆点操作(a,a+n两条边),流量为他的点权。然后对于边相连的情况,由于边是无向边,所以建立四条边(a+n,b),(b+n,a),...
阅读全文
摘要:/*题目: 求最小费用最大流的裸模板分析: 每次找到一条最短路,然后记录下每个经过的节点的前驱结点,然后若能够 到达终点的话,从终点开始往回找到最小流,然后再从终点往回依次更改当 前每条边的流量以及反向弧,直到不能再找到一条最短路为止,找最短路的 算法是spfa*/#include #include #include using namespace std;const int maxn = 10005;const int maxm = 1000005;const int inf = 1e8;#define debug puts("here");int n,m,s,...
阅读全文
摘要:1 /* 2 *最大流模板(引用学长的模板。。。) 3 * SAP(当前弧优化+GAP优化)非递归形式 7 */ 8 9 #include 10 #include 11 #include 12 13 #define SETZR(a) memset(a,0,sizeof(a)) 14 15 using namespace std; 16 17 //定义常量:边数、点数和无穷 18 const int MAXM = 1000000; 19 const int MAXN = 10000; 20 const int INF = 1000000000; 21 22 /...
阅读全文
摘要:1080. Map ColoringTime Limit: 1.0 secondMemory Limit: 16 MBWe consider a geographical map withNcountries numbered from 1 toN(0<N<99). For every country we know the numbers of other countries which are connected with its border. From every country we can reach to any other one, eventually cross
阅读全文
摘要:代码如有错,请指出找规律题。。。打的表如下:View Code n 满足有公因子且不整除的数的个数 满足为奇数的个数(要求的答案)1 0 02 0 03 0 04 0 05 0 06 1 17 0 18 1 29 1 310 3 411 0 412 3 513 0 514 5 615 4 616 4 617 0 618 7 719 0 720 7 821 6 822 9 923 0 924 9 1025 3 1126 11 1227 6 1228 11 1329 0 1330...
阅读全文
摘要:67270642012-09-09 17:39:14Accepted42780MS212K853 BG++若代码有错,请指出^^分析: 相当于将十进制转换为8进制。。。View Code 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 5 using namespace std; 6 7 int n, m, l, ans; 8 int a[20]; 9 int p[11];10 11 int main()12 {13 p[0] = 1;14 for (int i = 1; i
阅读全文
摘要:题目: 问给出的数字在字符串中出现的次数(有映射关系的) 分析: 直接map<int,int> 记录给出的数,然后对于每个字符串,可以先转换成一个整数(长度小于7),然后若该数在map中, 这更新相应的计数器即可若代码有错,请指出^^67268252012-09-09 17:10:30Accepted428793MS688K839 BG++View Code 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <map> 5 6 using
阅读全文
摘要:题目:若代码有错,请指出 求满足X^Z + Y^Z + XYZ = K K (0 < K < 2^31), (X < Y, Z > 1)分析:注意到z的值最大为30(x<y所以y>=2) 当k==2时,直接利用完全平方公式判断即可,可变成(x+y)^2 = k 当k>2时,直接枚举z,x,y可以水过(z>2时x的值最大为1290左右)67268502012-09-09 17:12:22Accepted4282281MS472K1151 BG++View Code 1 #include <iostream> 2 #include <
阅读全文
摘要:题目: 给出一棵树,现要从树的1号节点走到n号节点,每条边都需要一定的时间才能走过,并且每个节点有相应的财宝,现在给出时间t,问能不能在时间t之内走到n节点且使得所获得的财宝最多(每个节点的财宝只能收集一次)分析: 先spfa算出1号节点走到n号节点所经过的节点,算出的最短路若不满足小于等于给定的时间t,要被饿死。在spfa中,用path数组记录每个节点的前驱以及该节点是从那条边过来的,走完之后,用n的前驱把该路上的边权全部更新为0,表示不用时间花费,再在深搜之前把总时间减掉他即为其他走过了两次的不在最短路径上面的节点所花费的时间总和。 树上背包的转移方程为 dp[x]...
阅读全文
摘要:题目: 给出2*n个矩形(给出长和宽),问前n个矩形能够套上最多多少个后n个矩形分析: 把前n个矩形与后n个矩形分开在两数组中,然后分别先对长x(或宽)排序,排序结束后,只需要满足另外一个条件y就行。 在这里我们利用贪心的思想,每次从后n个矩形中满足x1>=x2且y2值尽可能最大,要维护y2值最大,我们可以使用平衡树(SBT、AVL、TREAP)或者Splay来维护都行,另外可利用STL的福利,直接调用multiset<int> s;维护即可,具体的应用请百度、谷歌,代码如下: 稍后我把SBT的弄上来View CodeSBT的如下:View Code 1 #include &
阅读全文
摘要:题目: 给出n条边,每条边有一定的长度,现在要用所有的边围成三角形,问能够围成多少个不同的三角形(三边至少有一边不等)。 分析: 对三角形进行编号,A,B,C三边,所有的边必定在其中的一条上面,只要三进制压缩枚举每条边所在的位置即可,也可以直接 dfs枚举即可。另外注意到第一根木棍肯定在三角形的一条边上,所以根据对称关系,可以直接把他放在a号边即可View Code #include <cstdio>#include <cstring>#include <set>#include <algorithm>using namespace std;co
阅读全文
摘要:SBT的资料很多(陈启峰的论文以及下面的blog),在这里就不再叙述:给出下面几道题目以及代码:http://www.cnblogs.com/reflec94/archive/2011/01/22/1942095.htmlBZOJ 1208 [HNOI2002]营业额统计{Insert , pred , succ , find}View Code 1 /* 2 3 题目: 4 最小波动值= min { | 该天以前某一天的营业额-该天的营业额 | } 5 6 分析: 7 求前驱以及后继与当前的数相减的绝对值的最小值。 8 9 */ 10 #incl...
阅读全文
摘要:1208: [HNOI2004]宠物收养所Time Limit:10 SecMemory Limit:162 MBSubmit:1994Solved:689[Submit][Status][Discuss]Description最近,阿Q开了一间宠物收养所。收养所提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物。 每个领养者都希望领养到自己满意的宠物,阿Q根据领养者的要求通过他自己发明的一个特殊的公式,得出该领养者希望领养的宠物的特点值a(a是一个正整数,a<2^31),而他也给每个处在收养所的宠物一个特点值。这样他就能够很方便的处理整个领养宠物的过程了,宠物收养所总是会有两种
阅读全文