09 2012 档案

摘要:PKU 1151 && hdu1542 Atlantis 矩形面积并http://poj.org/problem?id=1151题意:给出n个矩形,每个矩形给出左下角坐标,右上角坐标。然后求矩形并的总面积;思路:浮点数先要离散化;然后把矩形分成两条边,上边和下边,对横轴建树,然后从下到上扫描上去,用cnt表示该区间下边比上边多几个,sum代表该区间内被覆盖的线段的长度总和这里线段树的一个结点并非是线段的一个端点,而是该端点和下一个端点间的线段,所以题目中r+1,r-1的地方可以自己好好的琢磨一下;这里点到线段的转化不好理解:我们的线段树的叶子节点表示的是线段,座椅如果我们求1到 阅读全文
posted @ 2012-09-28 21:18 E_star 阅读(329) 评论(0) 推荐(0) 编辑
摘要:http://www.notonlysuccess.com/index.php/divide-tree/http://blog.sina.com.cn/s/blog_5f5353cc0100ki2e.html以上为两个不错的讲解:struct node{ int l,r; int mid(){ return (l + r)>>1; }}tt[N<<2];int toLeft[20][N];int val[20][N],sorted[N];int n,q;void build(int l,int r,int rt,int d){ int i; tt[r... 阅读全文
posted @ 2012-09-26 10:47 E_star 阅读(310) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4417题意:给定一个长度为n的序列,求区间[L,R]中小于h的个数;思路:分三种情况:1:如果该区间最小值都大于h输出0;2:如果该区间最大值小于等于h输出区间长度:3:否则,二分枚举该区间的第m大,直到找到第m大为最后一个小于等于h的;View Code #include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include 阅读全文
posted @ 2012-09-26 10:45 E_star 阅读(262) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=2104http://acm.hdu.edu.cn/showproblem.php?pid=2665题意:给定一个长度为n的序列,求一个区间[L,R]内第K大的数;思路:划分树模板题。给出个人感觉讲解比较好的连接:http://blog.sina.com.cn/s/blog_5f5353cc0100ki2e.htmlhttp://www.notonlysuccess.com/index.php/divide-tree/pkupoj2761一样的题目:个人理解:划分树就是按层划分区间,以排好序的mid为基准进行划分。建好树之后关键在于询问,我们 阅读全文
posted @ 2012-09-26 09:45 E_star 阅读(305) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4415题意:Ezio 作为一个刺客他想杀掉n个人,他仅有的武器就是一把剑这把剑有攻击值m,每个人对应了两个值ai,bi,即杀掉i这个人必须消耗剑的ai的攻击之,然后你可以获得bi超级攻击法术,可以杀死bi个人。问他要怎么杀法才能是它杀的人最多而且消耗的剑的攻击之最小。思路:由于bi的非零的特殊性,我们将n个人按bi==0分为一组1,bi!=0分为一组2,非零的这一组只要我们能够杀掉其中的一个那么我们就可以杀掉所有的这一组的人(bi的非零性)。对于第2组我们要么全部杀光,要么一个不杀,这样就给了我们两种情况的讨 阅读全文
posted @ 2012-09-25 17:12 E_star 阅读(312) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4407比赛的时候想到了先求与p不互质的然后减去,但是就是遇到了容斥处理的问题,当时没有想到对因子容斥,只想到求和容斥那去了。。哎。悲剧啊、、题意:给出一个长度为n序列初始值为1,2,......n对其进行两种操作:"2 x c" 将x位置的值替换成y;"1 x y p" 求区间[x,y]内与p互质的数的和。思路:首先对于2操作我们离线处理,因为只有对于1,2,3.....n这样的序列我们在求1操作时才好处理,首先对p进行因式分解,可知他最多有6个因子因为到17是就已经大 阅读全文
posted @ 2012-09-23 10:35 E_star 阅读(288) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4409赛后才过只能说悲剧了,知道思路,stl不熟悉,所以导致写的很慢....占据了很多时间,手速+代码准确度。。哎。。。题意:给你一个家谱,n个人的姓名,姓名前边的点代表了他是第几代人。每个人的祖先肯定在他之前出现。有三种操作:L:输出这个家族的序列,不是按层数,而是递归的输出,还要保证字典序升序;b name 输出name的兄弟个数,注意这里堂兄弟不算:c name1 name2 求name1 name2的最近公共祖先。思路:首先我用set建图这样就能保证L输出时按字典序输出,mp用来进行映射,rmq+lc 阅读全文
posted @ 2012-09-22 18:12 E_star 阅读(628) 评论(2) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4297题意:给出n个点的有向图,每个点的出度均为1.有m个询问,每个询问两个数(u,v),表示两个人一个在u一个在v。对于每个询问,请你选择一个点P使得u、v均能到达P。设u到达P需要A步,v到达P需要B步。求一个P使得max(A,B)最小?若答案不唯一,输出min(A,B)最小的;若答案还不唯一,输出A>=B的。(不存在P的A=B=-1)思路:这个有向图很特别,由于每个节点只有一条出边,所以如果形成一个环的话就只能有指向这个环的边,同时一个子图内最多存在一个环,tarjan搞掉环,建反图虚拟根节点转换 阅读全文
posted @ 2012-09-22 09:13 E_star 阅读(217) 评论(0) 推荐(0) 编辑
摘要: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 <cstring>#include <algorithm>#include <cmath>#include <queue>#include <stack>#include < 阅读全文
posted @ 2012-09-19 22:08 E_star 阅读(244) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4291题意:...思路:首先暴力求出最外层模100000007的循环节MOD2,然后求出模MOD2的循环节MOD1.求出循环节后用类似与斐波那契数列举证优化的方法求解将时间复杂度由O(N)降到O(logN*2^3);ps:注意这里我们虽然求(n - 1)次幂就能得到{fn,fn-1}了,但是对于当n等于0时就要特殊判断,单纯的一个求幂判断完毕也就罢了,但是当多次求幂时,里面套着也会出现0也需要判断。比较麻烦您容易忽略。所以我们可以求到a^n次方去a.mat[0][1] = a.mat[1][0]。 当计算n- 阅读全文
posted @ 2012-09-19 19:17 E_star 阅读(244) 评论(0) 推荐(0) 编辑
摘要:数据结构struct Mat{ ll mat[3][3]; void init(){ for (int i = 0; i < 2; ++i){ for (int j = 0; j < 2; ++j){ mat[i][j] = ; } } mat[1][1] = 0; }}; 乘法Mat operator * (Mat a,Mat b){ Mat c; int i,j,k; CL(c.mat,0); for (i = 0; i < 2; ... 阅读全文
posted @ 2012-09-19 10:42 E_star 阅读(372) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=3070思路:这里n很大单纯的递推是O(N)会超时,所以要用矩阵快速幂优化;f(n) 1 1 f(1) = 的n-1次方 *f(n-1) 1 0 f(0)View Code #include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <queue>#include <stack>#include <set>#in 阅读全文
posted @ 2012-09-19 10:03 E_star 阅读(331) 评论(0) 推荐(0) 编辑
摘要:<本人转载>C语言的自增++,自减--运算符对于初学者来说一直都是个难题,甚至很多老手也会产生困惑,最近我在网上看到一个问题:#include <stdio.h>void main() /*主函数*/{int a,b,c,d;a=5;b=5;c=(a++)+(a++)+(a++);d=(++b)+(++b)+(++b);printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);}结果是什么?而后Eric搜了一下后发现,类似的问题很多,也就是说对自增自减运算符感到迷惑是一个普遍存在的问题,基于此,Eric决定对自增自减运算符做个小 阅读全文
posted @ 2012-09-18 21:27 E_star 阅读(2225) 评论(3) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4289题意:有N个城市 M条无向边 有一些恐怖分子要从某一城市到另一城市 打算在某些城市安放一些SA 去抓住他 但若在某个城市安放SA需要一定费用 求一个集合使每个到达终点的路线肯定会经过其中一个点,而这个集合里面每个点都安放了SA,这样就能找到所有的恐怖分子,求该集合使费用最小。思路:网络流的题目做的还太少,对于这类题目还是不太敏感,没想到拆点建图。。。。题目意思是求一个s-t割,求最小的费用肯定要求最小割了,又由于最小割等于最大流,所以我们只要用最大流求解即可,而这里建图是关键,这里将每个点拆成两个点(i 阅读全文
posted @ 2012-09-18 20:35 E_star 阅读(315) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4293题意:有n个人分成了若干组走在一条林荫道路上,导游为了能够确定人数,要求每个人喊出自己所在的队伍前边有多少人Ai表示,后边有多少人Bi表示,于是我们得到了n条信息。这里面有错误的信息也有正确的信息,要求我们尽量使正确信息最大求出正确信息的数量。思路:想了很久一直在捉摸它的最有子结构从何而来,怎样dp....今天下午虎哥给了点提示终于明白了如何做了。。。YM虎哥.....首先我们根据每个人提供的前边Ai个人,后边Bi个人,可以确定这个人所在队伍的人数的范围。于是我们得到了N个区间,我只要求出不想交区间最多 阅读全文
posted @ 2012-09-18 17:23 E_star 阅读(315) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4296题意:给出n个石板的重量w和它的承受能力s,将这n个石板累在一起,这样每个石板都有一个PDV =(Σwj)-si ,(Σwj)表示在i石板上的石板的重量和,我们计算每块石板的PDV如果是负数说明石板不会被压坏,如果是正数则表示石板会被压坏,要求我们确定一个顺序是的所有正数的最大值最小。一次来表示石板的最大承压能力;思路:开始读题读了老长时间都没读懂,最后还是把题意理解错了,试了分别按s,w排序都不对,郁闷了。最后才看懂了题意,我们要求的是正数的最大值的最小,我们只要保证每次可能出现正数时他是可能的里面. 阅读全文
posted @ 2012-09-17 21:37 E_star 阅读(464) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4288题意:给出三种操作add x 向集合里添加x(这里保证集合中不存在该元素), del x删除集合里的x(这里保证集合里面不存在x),sum:然后给出N个操作,输出每次的sum;思路:才开始看到这题就想到了上次那个维护区间(i-a)%k == 0的题目区间部分更新的题目,每个线段树上的节点添加记录该区间内模k余(0到k-1)的值,可是这里是求整个区间,而且一旦删除一个值它们原来满足模k的余数就会发生改变。直接就晕了。。。看了下解题报告原来和上次的题目是类似的,我们还是记录当前区间模5余(0到4)的值,只是 阅读全文
posted @ 2012-09-17 21:14 E_star 阅读(475) 评论(1) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4292题意:有N个顾客,餐厅里有F中食物,D中饮料。给出每种食物的个数以及每种饮料的个数。还给出两个关系矩阵N*F 和N*D Y表示第i个人对于第j个食物或者饮料是满意的,求出该餐厅能使顾客满意的最多人数。思路:这里我们主要是保持每个人能够拿到自己满意的一份食物和一瓶饮料,(注意每个人只能那一份食物和饮料). Food ------ Peole ------- Drink 按这样的思路只要给出一个最大流即可,但是我们要保持每个人只拿到一份食物与饮料所以要将n个点拆成2*n个点每一对加权值为1,其余的就是给出. 阅读全文
posted @ 2012-09-17 19:20 E_star 阅读(289) 评论(0) 推荐(0) 编辑
摘要:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4772题意:给定n个点n-1条边,每个点对应一个财富值,走每条路径都对应着一个所需要的时间,问在m天内从k出发然后回到k,所能取得到的最大财富值 v1 V2 ....V1.思路:由于题目给定的是一棵生成树,所以从k出发后必须按原路返回才可满足条件,也就是每条边走两次。dp[k][m]表示从k出发的又回到k的路径所取得的最大值。就是相当于往容量为m的包里放物品一样。每个点对应一个包。View Code #include <iostream>#include < 阅读全文
posted @ 2012-09-16 10:36 E_star 阅读(194) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4268题意:Alice and Bob各自都有N个矩形纸牌,Alice 想用他的纸牌尽量多的覆盖Bob的纸牌,i覆盖j满足的条件是p[i].h >= p[j].h p[i].w >= p[j].w ,并且一张纸牌只能覆盖一张,求最多覆盖的张数。思路:这里给出的n很大,(N <= 100,000) 首先分析肯定回事O(nlogn)级别的算法,才开始我想到的是二分,分别将Alice and Bob的纸牌排序,枚举Alice的纸牌二分查找Bob的纸牌里最大的能满足被Alice 的纸牌覆盖的然后覆盖 阅读全文
posted @ 2012-09-15 09:49 E_star 阅读(198) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4274题意:我们派出的间谍得到一些信息,信息包括N个职工分别负责N个部门,每个职工最多有一个上司,每个职工的工资最少为1,上司i负责部门i 而i的下属也属于部门i,给出m个部门的描述,i < W 表示部门i的所有人的总工资小于w,(包括i以及i的下属,下边一样);i > W 表示部门i的所有人的总工资大于W;i = W 表示部门i所有人的总工资等于W让你判断这些信息是否正确,如果寻在矛盾说明不正确。思路:比赛时,最后20分钟才有思路,不过没写完,。。郁闷。。每个点low[i]记录i部门最少可得的工 阅读全文
posted @ 2012-09-14 20:11 E_star 阅读(200) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4272题意:给你一个数字栈,每次必须从栈顶开始往下找距离<=5的范围内,如果存在与栈顶相同的数字,则两个数字同时出栈,其余数字还在栈中保持相对位置不变。思路:比赛时,这道题目相当坑爹,才开始写的是<5 VON想到贪心模拟,可是我出了两组数据一组数据按最近贪不对,另一组按最远贪也不对。于是我们纠结啊。。。。后来知道题目出错,是<=5于是贪心水过。后来才发现贪心是不对的这组数据:121 2 2 1 3 1 1 1 1 1 1 3应该输出0可是输出1也对。。我对这题无语了。。。我处理成<=7 阅读全文
posted @ 2012-09-14 17:09 E_star 阅读(366) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4277题意:给出n条线段,每条线段的长度为li(1 <= li <= 10000)1 <= N <= 15。才开始想到了爆搜算了一下时间复杂度O(3^15)*15勉强可以,可是在判重问题上一直很纠结,不知道该怎么处理,素以就放下了。赛后看了看解题报告,可谓经典啊。。爆搜所有的组合,然后set(或者hash判重),这里由于li<=10000 N <=15 所以最大的长度肯定小于10000000000000000ll,在__int64的表示范围之内,所以我们只需要将a,b, c 阅读全文
posted @ 2012-09-12 19:56 E_star 阅读(229) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4267题意:给你N个数,有两种操作:2 x询问a[x]的值;1 a b k c a <= i <= b 满足(i - a)%k == 0的a[i] += c;(1 <= N <= 50000) (1 <= a <= b <= N, 1 <= k <= 10, -1,000 <= c <= 1,000)思路:一看就知道这肯定是线段树的题目,可是区间内满足(i - a)%k == 0的点才进行处理怎么办,如果i i + k,i + 2k的循环处理的 阅读全文
posted @ 2012-09-12 17:22 E_star 阅读(310) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4283题意:给定一个长度为n的序列表示人,每个人都有一个愤怒系数与之对应。他们依次上台,当第k个人上台时,他的愤怒值为(k - 1)*Di. 给定一个小黑屋相当于栈,来调整上台顺序使总的愤怒值最小思路:区间DP dp[i][j]表示第i个人到第j个人区间上台愤怒值的最小值。对于区间[x][y]如果x在第i个位置上台,则有x + 1,x + 2,.....,x+i,x ,x + i + 1.....y则将整个区间分为[x+ 1][x+i]和[x+i+1][y]两个小区间这样局部最优的思想就出来了。dp[x][y 阅读全文
posted @ 2012-09-12 14:56 E_star 阅读(203) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4287题意:给出n个手机数字序列,m个英文组合,求每个数字序列对应的可能的英文组合在下边的出现了多少个。思路:才开始想复杂了,其实只要用一个map即可。View Code #include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <queue>#include <stack>#includ 阅读全文
posted @ 2012-09-11 23:47 E_star 阅读(208) 评论(0) 推荐(0) 编辑
摘要:天津赛区网络赛的两道题目1:http://acm.hdu.edu.cn/showproblem.php?pid=4282题意:给你一个K (0 < K < 2^31) ,求正整数X,Y,Z满足X^Z + Y^Z + XYZ = K,有多少组。(X < Y, Z > 1)思路:如果暴力枚举的话,肯定会超时。这里关键是31.因为1<=X < Y 所以Y>=2所以Z<31;对于X他最大肯定小于5000(因为50000^2 > 2^31)所以我们只要枚举x和z然后在区间[x + 1,5000]二分查找即可O(50000*31*log(50000)) 阅读全文
posted @ 2012-09-11 23:40 E_star 阅读(275) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4284题解:http://www.cnblogs.com/E-star/archive/2012/09/11/2680992.htmlView Code #include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <queue>#include <stack>#include <set 阅读全文
posted @ 2012-09-11 23:19 E_star 阅读(184) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4282题解:http://www.cnblogs.com/E-star/archive/2012/09/11/2680992.htmlView Code #include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <queue>#include <stack>#include <set 阅读全文
posted @ 2012-09-11 23:15 E_star 阅读(335) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4280题意:给定平面上n个点的坐标,最左边的点为源点,最右边的点为汇点,给出m条边的容量求最大流。思路:才开始理解错了题意,For safety, no two routes are cross or overlap and no routes will pass an island except the departing island and the arriving island。以为要处理线段不能相交什么的,不知道怎么做了。原来直接见图套模板即可,题目保证不会相交。为此我和von纠结了好久。。View 阅读全文
posted @ 2012-09-11 23:10 E_star 阅读(545) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4279题意:给出a,b两个数,1<=a<=b 如果a,b不互质,且a%b != 0则说明a是b的特殊数字f[i]表示i拥有的特殊数字的个数,如果f[i]是奇数,那么i就是real numbers给出区间[x,y]求区间内的real numbers的数量。思路:打标找规律,真心不好发现这规律;大于12之后 d[x] = x/2 -1或者d[x] = x/2 - 2;(d[x]表示1到x拥有的real numbers的数量)发现在遇到平方数是转变原来-1变为-2,否则-2变为-1。 p^2 <= 阅读全文
posted @ 2012-09-11 23:03 E_star 阅读(188) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4278题意:一个特殊的汽车行程计数器,当每个位出现3或者8时直接跳到下一位;0 1 2 4 5 6 7 910 11 12 14 15 16 17 1920 21 22 24 25 26 27 29......思路:YY发现其实可以映射到8进制数,(0 - 9)表示10进制数,将(0 1 2 4 5 6 7 9 )映射到(0 - 8)其实就是8进制的表示。View Code #include <iostream>#include <cstdio>#include <cstring 阅读全文
posted @ 2012-09-11 22:51 E_star 阅读(200) 评论(0) 推荐(0) 编辑
摘要:哈哈。。。几年一下自己手写的第一个Java大整数程序:import java.util.*;import java.io.*;import java.math.*;public class Main { public static void main(String agrs[]){ Scanner cin = new Scanner(System.in); while (cin.hasNextInt()){ int n = cin.nextInt(); for (int i = 1; i <= n; ++i){ BigInteger a = cin.nextBigIntege... 阅读全文
posted @ 2012-09-10 18:52 E_star 阅读(190) 评论(0) 推荐(0) 编辑
摘要:字符串处理:unix的ELF哈希函数unsigned int ELFHash(char* str){ unsigned int hash = 0; unsigned int x = 0; while (*str){ hash = (hash << 4) + (*str++); if ((x = hash & 0xF0000000L) != 0){ hash ^= (x >> 24); hash &= ~x; } } return (hash & 0x7FFFFFFF);} BK... 阅读全文
posted @ 2012-09-08 10:17 E_star 阅读(289) 评论(0) 推荐(0) 编辑
摘要:255pt:题意:给一个01矩阵,要求改变一行和一列是它的总和最大,求最大的总和,枚举行列,然后取抑或O(n^3)做即可;#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <queue>#include <stack>#include <set>#include <map>#include <string>#define CL(a 阅读全文
posted @ 2012-09-07 21:26 E_star 阅读(291) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=2947题意:工人生产不同的部件需要不同的时间,最少需要3天最多需要9天。给出n种部件和m条记录,每条记录包括该工人生产部件的总数k和他开始生产时间和结束时间(只给出是周几,不给出具体时间),之后给出这K个部件跟的所属的种类。最后求出生产这n种部件分别所需要的时间。思路:高斯消元:例子来讲首先我们能够列出方程(x + y)%7 = 4;(2*x + y)%7 = 5;(x + 2*y)%7 = 0;这里直接套高斯消元模板就行,关键是处理%7的情况,我们先按[0,6]计算结果最后再处理到[3,9];View Code #include < 阅读全文
posted @ 2012-09-05 11:19 E_star 阅读(216) 评论(0) 推荐(0) 编辑
摘要:高斯消元法,是线性代数中的一个算法,可用来求解线性方程组,并可以求出矩阵的秩,以及求出可逆方阵的逆矩阵。高斯消元法的原理是:若用初等行变换将增广矩阵 化为 ,则AX = B与CX = D是同解方程组。所以我们可以用初等行变换把增广矩阵转换为行阶梯阵,然后回代求出方程的解。以上是线性代数课的回顾,下面来说说高斯消元法在编程中的应用。首先,先介绍程序中高斯消元法的步骤:(我们设方程组中方程的个数为equ,变元的个数为var,注意:一般情况下是n个方程,n个变元,但是有些题目就故意让方程数与变元数不同)1. 把方程组转换成增广矩阵。2. 利用初等行变换来把增广矩阵转换成行阶梯阵。枚举k从0到equ 阅读全文
posted @ 2012-09-05 09:49 E_star 阅读(494) 评论(0) 推荐(0) 编辑
摘要: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,Hello Bob, 然后从左到右让字符串的每一个字符与一个数字对应:4 5 3 7 2 8 1 6 10 9H e l l o B o b ‘ ’ ‘ ‘假如加密后的到的新字符... 阅读全文
posted @ 2012-09-04 19:39 E_star 阅读(204) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=3270题意:给定N头牛的身高,要求你通过每次交换两头牛的位置使其按身高从小到大排序,身高各不相同。假设交换ai,aj两头牛的位置则花费的时间为ai + aj,求用最小的时间花费。思路:黑书P248详细解释。cost += sum + Min((k – 2) * ti, ti + (k + 1) * minn);前一个式子:sum + (k – 2) * ti,ti是所在置换群的最小值比如:8 4 5 3 2 7目标 2 3 4 5 7 8,里边有两个置换群(8 2 7)(4 3 5)(这里是每个置换都可以写成若干互不相交的循环的乘积(黑书P 阅读全文
posted @ 2012-09-03 21:18 E_star 阅读(247) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示