自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序员充电站(itcharge)

高效率编程,慢节奏生活。

  • 博客(660)
  • 资源 (3)
  • 收藏
  • 关注

原创 POJ3020 Antenna Placement【二分图最小边覆盖】

题目大意:在N*M的矩阵中,有K个城市要覆盖无线网。而一个无线网基站只能覆盖左右相邻或是上下相邻的两个城市。问:至少放置多少个基站,能将这K个城市全部覆盖。输入数据时,'*'表示城市,'o'表示空地。思路:K个城市作为K个点,编号为1~K。如果有两个城市相邻,则两个城市之间建立一条双向边。现在问题变为了怎么从图中选择最少的边,使得能够覆盖所有的点。可以用二分图最小边覆盖来做。首先遍历原图,对K个城市编号,存入iMap[][]数组中。然后建立一个二分图,两边都为K个城市。如果两个城市有边(即两

2015-04-03 10:31:03 1057

原创 POJ2195 Going Home【二分图最佳匹配】

题目大意:在一个N*M的矩阵中,有M个人和M个房子,每个人要安排一个房子,每个房子只能安排一个人。而每个人移动一步需要一美元。那么问题来了:求为每个人安排房子移动所需要的金钱最小值是多少。思路:做一个二分图,一边为人,另一边为房子,如果把人和房子之间的距离作为边权的话,问题就变成了求带权二分图最小权和的最佳匹配。这里我们为了方便计算,吧人和房子之间的距离的负值作为边权,那么就变成了求带权二分图最大权和的最佳匹配,就是经典的二分图最佳匹配问题。用KM算法解出最大权值和。取其相反,就得到了最小

2015-04-02 20:41:40 854

原创 POJ3565 Ants【二分图最佳匹配】

题目链接:http://poj.org/problem?id=3565题目大意:在坐标系中有N只蚂蚁,N棵苹果树,给你蚂蚁和苹果树的坐标。让每只蚂蚁去一棵苹果树,一棵苹果树对应一只蚂蚁。这样就有N条直线路线,问:怎样分配,才能使总路程和最小,且N条线不相交。思路:用一个图来说明思路。假设A、B为蚂蚁,C、D为苹果树。则存在两种匹配:第一种

2015-04-02 19:37:38 2123 2

原创 HDU2255 奔小康赚大钱【二分图最佳匹配】

题目大意:村里要分房子。有N家老百姓,刚好有N间房子,考虑到每家都要有房住,每家必须分配到一间房子且只能分配到一间房子。另外, 村长为了得到最大利益,让老百姓对房子进行估价。比如有3件房子,一家老百姓可以对第一间出10万,对第二间出2万,对第三间出4万,第二家老百姓可以对第一间出8万,对第二家出3万,对第三间出5万。那么问题来了:怎么分配,才能使利益最大化。(村民房子不一定能分到房,关键看领导分配)。思路:建立二分图,一边为N家老百姓,另一边为N间房子。对老百姓和房子之间估价建立一条有带权边

2015-04-02 15:49:29 1249

原创 POJ2226 Muddy Fields【二分图最小点覆盖】

题目大意:有一个r行c列的方格组成的田地。里边有若干个方格充满泥水,其余的方格是草。要用宽度为1、长度不限的长木板把充满泥水的方格覆盖掉,但不能覆盖草地,同时只能按行覆盖或是按列覆盖,不能斜着覆盖。问:最少要用多少木板。思路:这道题感觉很难想。看了看网上的题解,居然很巧妙的构造了二分图来求解,很是精妙。我们把同一行一段连续的泥水方格作为一个顶点,把这些点作为二分图的一个集合,再把同一列一段连续的泥水方格作为一个顶点,把这些点作为二分图的另一个集合。如果两个集合的点有相交,就建立一条边。两个集

2015-04-02 15:20:58 826

原创 POJ1325 Machine Schedule【二分图最小点覆盖】

题目大意:有两台机器A和B,机器A有N种不同的模式,编号为0~N-1。机器B有M种不同的模式,编号为0~M-1。在一开始的时候,机器A和B都处于0模式。现在需要用两台机器来处理K项任务,任务编号为0~K-1。每一项任务都可以在A或B的指定状态下完成。例如任务1可以在机器A的2模式下完成,也可以在机器B的4模式下完成。对于第i想任务用(i,x,y)来表示第i项任务可以在机器A的x模式下或机器B的y模式下完成。为了完成所有任务,不得一次次地切换机器的工作模式。而切换机器的工作模式只能通过重启机器来完

2015-04-02 11:48:09 990

原创 POJ3041 Asteroids【二分图最小点覆盖】

题目大意:有一个N*N的矩阵,有些格子上有障碍物(坐标为(x,y) ),在消除这些障碍物的时候,可以一次性消除该障碍物同一行所有的障碍物,或是一次性消除该障碍物同一列所有的障碍物。只能选择清理该行或是清理该列。问:最小进行多少次消除,就可以清理所有的障碍物。思路:可以将每一行当做一个点,这样总共有N个点,作为二分图的一边。将每一列当做一个点,这样又有N个点,作为二分图的另一边。将有障碍物的行点和列点连接起来,每次只能选择行或是列,需要清除所有的障碍物。所以不能存在一条边两边的点都没有被选中的

2015-04-01 23:19:22 852

原创 POJ3692 Kindergarten【二分图最大独立集】

题目大意:幼儿园里边有N个男孩和M个女孩,所有男生之间都互相认识,所有女生之间也都相互认识。还有k对关系,表示某个男孩和某个女孩认识。现在要选择一些学生组成一个集合,使得这个集合中所有的人都认识,求这个集合中最多能有多少人。思路:建立二分图,图的一边为男生,另一边为女生。不能直接选取认识关系来建边,应该选取不认识的人建边,也就是认识关系的补集作为边集。这样匹配的两个人都是不认识的,求出来的最大匹配数就是最多有多少对人相互不认识。而最大独立集 = N + M - 最大匹配数,就求出了最多能能

2015-04-01 22:47:56 696

原创 POJ1466 Girls and Boys【二分图最大独立集】

题目大意:有N个学生,他们之间的某些人比较暧昧,只有认识的人能组成一个集合。问:最多能组成多少个集合,使得这几个集合之间的学生都没有任何关系。思路:从N个图中选出M个点,使得这M个点两两之间没有边,求最大的M是多少。二分图最大独立集问题。本来应该以男生、女生各一边建二分图求最大独立集,但是这里只有N个点,没有告诉男生、女生的编号。那么以N个学生为一边、再以N个学生为另一边。将相互联系的人之间建边。然后求最大匹配数。因为如果u和v有联系的话,边(u,v)和(v,u)都加入了二分图中,被重复计

2015-04-01 22:35:26 744

原创 HDU2391 Filthy Rich【数塔DP】

题目大意:在一个N*M的矩阵中,不同的位置上有不同重量的黄金,从矩阵的左上角开始,只能向右或是向下走,问:从左上角走到右下角最多能获得多少黄金。思路:简单的数塔DP,状态转移方程:dp[j] = max(dp[j-1],dp[j])+ Map[i][j]。

2015-03-30 11:49:03 1241

原创 HDU4500 小Q系列故事——屌丝的逆袭【模拟】

题目大意:工作室的布局是N*M的矩形,每个单位上有一名员工。每个位置由一个价值。每一个位置的价值和其上、下、左、右四个邻居的魅力值有关。如果一个位置的邻居与这个位置的员工性别不同,则该位置的价值总分加上这个邻居的魅力值,性别相同的话就下去邻居的魅力值。最终得分就是这个位置的价值。(输入的时候,男生魅力值用负数表示,女生魅力值用正数表示)那么问题来了:问哪个位置的魅力值最大,计算并输出最佳位置的行列号和序列号即相应的价值。思路:就是直接的模拟,遍历每个位置,判断一下上下左右和自身的正负情况,

2015-03-30 11:41:41 1339

原创 HDU1719 Friend【数学规律】

题目大意:我们来递归定义一个友好数:(1)整数1、2是友好数(2)如果a和b是友好数,那么a*b + a + b也是友好数(3)只有用(1)和(2)定义的数是友好数。现在给你一个数n(0 <= n <= 30),判断n是否是友好数思路:挺有意思的一道简单数学题。设n是一个友好数,那么n就可以分解为:n = a*b + a + b = (a+1)*(b+1) - 1,即n+1 = (a+1)*(b+1)由递归定义,这里的a和b也必须是友好数。a = a1*b1 + a1 + b1 = (a

2015-03-30 11:31:29 1093

原创 HDU1787 GCD Again【欧拉函数】

题目大意:给你一个整数N,求范围小于N中的整数中,与N的最大公约数大于1的整数的个数。思路:典型的欧拉函数变形。欧拉函数φ(N)是用来求小于N的整数中,与N的最大公约数为1的数的个数。那么此题的答案ans = N - φ(N) - 1。

2015-03-30 11:12:51 1409

原创 HPU1179 Ollivanders: Makers of Fine Wands since 382 BC.【二分图最大匹配】

题目大意:题目太长了,简单的意思就是:有N个魔杖,M个魔法师,魔杖有多个匹配的魔法师。但是一个魔法师只能对应一根魔杖。那么问题来了:最多有多少魔法师能得到魔棒。思路:做一个二分图,一边是魔杖,另一边是魔法师。相应的匹配作为二分图的边。利用匈牙利算法,求出二分图最大匹配是多少。

2015-03-30 11:04:33 847

原创 POJ2447 RSA【公匙密码】

题目大意:RSA是个有名的公匙密码系统。在这个系统中,每个参与者有一个只能自己知道的私匙和一个每个人都知道的公匙。为了安全地把信息传递给对方,应该用公匙对信息进行加密,对方用自己的私匙进行解密。对RSA系统的描述如下:首先,选择两个大素数P、Q,计算N = P * Q。然后,选择一个正整数E作为加密密匙,令T = (p-1)*(q-1),且gcd(E,T) = 1。最后,计算解密密匙D,使得(E * D) mod T = 1,这里D是E模T的逆元。公匙表示为{E,N},私匙表示为{D,N},P

2015-03-28 10:32:18 1323

原创 HDU1211 RSA【公匙密码】

题目大意:RSA是个很强大的加密数据的工具,对RSA系统的描述如下:选择两个大素数p、q,计算n = p * q,F(n) = (p-1)*(q-1),选择一个整数e,使得gcd(e,F(n)) = 1,e是公匙,计算d使得d * e mod F(n) = 1 mod F(n),d是私匙。加密数据的方法为 C = E(m) = m^e mod n解密数据的方法为 M = D(c) = c^d mod n其中,c是密文中字母的ASCII的值;m是明文中字母的ASCII的值。现在问题

2015-03-28 10:13:50 1618

原创 POJ2159 Ancient Cipher【字符密码】

题目大意:古罗马帝王的保密服务部门的保密方法是替换和重新排列。替换方法是将出现的字符替换成其他的字符。如将'A'替换成'Z',将'Z'替换成'A'。排列方法是改变原来单词中字母的顺序。例如将顺序变为<2,1,5,4,3,7,6,10,9,8>。应用到字符串"VICTORIOUS"上,则可以得到"IVOTCIRSUO"。单用一种解密方法是不安全的,只有将两种方法结合起来才安全。那么问题来了:给你一个原文字符串和加密字符串,问是否能通过这两种加密方法结合,从而由原文信息得到加密信息。如果能则输出"

2015-03-28 10:02:05 2027

原创 POJ1107W's Cipher【字符密码】

题目大意:高级加密标准需要用到三个整数k1、k2、k3,然后把26个英文字母分为三组,字符[a~i]为一组,字符[j~r]是第二组,其他字符[s~z]和下划线_组成第三组。在信息中属于每组的字符,在加密的时候,都被循环的向左移ki个位置。每组的字符只在自己组中的字符构成的字符串中移动。现在给你加密过后的消息,请输出原文信息。思路:解密的过程其实就是信息中属于每组的字符,都循环的向右移ki个位置。用字符数组s[]来存储加密信息,s1[]来保存解密后的信息。统计每组字符的个数numi,如果不为0

2015-03-27 17:33:37 1261

原创 POJ3749 破译密码【字符密码】

题目大意:凯撒大帝的加密方法是:将原文的每个字母分别用该字母后边的第5个字母替换。现在给你加密后的信息,问信息原文是什么。思路:将加密消息的ASCII码值减去5,低于'A'字符的,ASCII码再加上26。直接输出即可。

2015-03-27 17:11:16 1385

原创 POJ2183 Bovine Math Geniuses【伪随机数】

题目大意:给定一个六位数,选择中间四位数字,求它的平方,只保留后六位数字。然后再选择新六位数字中间的四位数字,求这四位数字的平方,再只保留后六位数字。这样循环下去,直到出现重复的六位数字为止。输出第一次出现循环的六位数字,循环长度和循环前总共执行的操作步数。思路:直接模拟就可以了,用一个大于1000000的数组来存储六位数字,初始化为-1,出现六位数字,就将相应位置执行的操作次数,只要在相应位置上找到大于等于0的,就说明之前已经出现过了,然后输出结果。

2015-03-27 17:02:00 1046

原创 HDU2841 Visible Trees【容斥原理】

题目大意:给一个含有N*M个点的矩阵,左下角的点为(1,1),右上角的点为(N,M),一个人站在(1,1)点看这些点,在一条直线上,他只能看到最前边的点,后边的点都被挡住看不到了。那么问题来了:这个人总共能看到多少个点?思路:发现一条线上的点,斜率都是一样的,后边的点都是最前边能看到点的倍数,能被看到的点都是横纵坐标公约数为1的点,即gcd(x,y) = 1,如果有一个点(x,y),有一个公约数d,即gcd(x,y) = d,那么,它就被前边(x/d,y/d)的点挡住了。问题就变求N*M个点

2015-03-26 22:42:37 1183 4

原创 HDU4135 Co-prime【容斥原理】

题目大意:给一个区间[a,b],从区间[a,b]中找出共有多少个数是与n互质的。思路:欧拉函数得到的是小于n与n互质的个数,这里是个区间。由于区间较大,不可能对[a,b]进行遍历,考虑计算区间[1,a-1]中与n互质的个数num1,[1,b]中与n互质的个数num2,最终结果就是两者相减的结果。现在考虑如何计算区间[1,m]中n互质的个数num,num等于 (m - 与n不互质的个数)。与n不互质的数就是[1,m]中n的素因子的倍数。例如m = 12,n = 30的情况。30的素因子数为

2015-03-26 16:16:13 2203

原创 POJ2480 Longge's problem【乘性函数】

题目大意:给一个正整数n,求Σgcd(i,n),(1 <= i <= n)。思路:如果m,n互质,则gcd(i,m*n) = gcd(i,m) * gcd(i,n),所以gcd是乘性函数。因为乘性函数的和函数也是乘性函数,所以Σgcd(i,N)也是乘性函数。首先考虑gcd(x,n) = 1,这样的数和刚好为欧拉函数之和sum( φ(n)),现在考虑gcd(x,n) = p的情况,因为gcd(x/p,n/p) = 1,就变成了欧拉函数之和sum(φ(n/p)),所以gcd(x,n) = p,这种

2015-03-26 15:31:00 987

原创 HDU1452 Happy 2004【因数之和】

题目大意:对于一个正整数X,令S是2004^X的所有约数和。现在计算S%29的结果。思路:先将2004分解素因子,2004 = 2^(2*X) * 3^X * 167^X,所以S = (2^(2*X+1) - 1)/(2-1) * (3^(X+1) - 1)/(3-1) * (167^(X+1) - 1)/(167-1)。S = (2^(2*X+1) - 1) * (3^(X+1) - 1)/2 * (167^(X+1) - 1)/166令a = 2^(2*X+1) - 1,b = (3^

2015-03-25 23:05:29 951

原创 POJ1845 Sumdiv【因数之和】【二分求等比数列】

题目大意:对于两个自然数A和B,令s = A^B所有约数和,计算s%9901的结果是多少思路:小優的博客对这道题写的非常好,参考博文:http://blog.csdn.net/lyy289065406/article/details/6648539对A进行素因子分解,A = p1^k1 * p2^k2 * … * pm^km,则A^B = p1^(k1*B) * p2^(k2*B) * … *pm^(km*B)。利用乘性函数的性质:所偶因子和为 s = (1 + p1 + p1^2 + …

2015-03-24 22:42:43 923

原创 POJ2992 Divisors【因子个数】

题目大意:求解出组合数C(n,k)的约数个数。思路:数据中的n和k值都比较大,直接求解显然不可以。求约数个数,要先进行素因子分解。C(n,k) = n!/(k!*(n-k)!)。n范围小于等于431,可以先筛选出431以内的素数,用数组Primer[]来存储素数。对每个阶乘进行素因子分解,用数组jie[i][j]来表示阶乘i进行分解式第j个素数的幂。然后求组合数的素因子分解,利用公式得到因子个数。

2015-03-24 20:50:24 1831 1

原创 POJ3358 Period of an Infinite Binary Expansion【欧拉函数】

题目大意:输入一个有理数,形式为分数形式p/q,令{x}为该有理数二进制形式的小数部分,且{x}具有循环性,{x} = 0.A1A2A3…Ar(Ar+1Ar+2…Ar+s)^w。循环从r+1位开始,循环节为s。现在称x1 = A1A2A3…Ar为{x}的循环前缀,x2 = Ar+1Ar+2…Ar+s为{x}的循环部分。现在让循环前缀的长度和循环部分的长度尽可能小。求最小循环部分的起始位置以及最小的循环长度。例如:1/10 = 0.0001100110011(00110011)^w,0001100

2015-03-24 20:40:59 949

原创 POJ3696 The Luckiest number【欧拉函数】

题目大意:给你一个数N,问是否存在L的倍数M,且数M各个位上都由8组成,如果存在多个M,输出最小的那个,并输出M由几个8组成。思路:设长度为x,由题意可知,长度为x的由8组成的数可以被L整除。形式为88…88,由于10^x-1是长度为x、全部由9组成的数,则(10^x-1)/9*8 = L*k(k倍),即(10^x-1)*8= 9*L*k。则(10^x-1)*8/gcd(8,L) = 9*L*k/gcd(8,L)令p = 8/gcd(8,L) q = 9*L/gcd(8,L),则(10^x

2015-03-24 19:58:58 768

原创 FZU1669 Right-angled Triangle【毕达哥拉斯三元组】

题目大意:求满足以a、b为直角边,c为斜边,并且满足a + b + c <= L的直角三角形的个数。思路:勾股定理,a、b、c也就是本原毕达哥拉斯三元组,则满足:x = m^2 - n^2y = 2*m*nz = m^2 + n^2其中m > n,且若m为奇数,则n为偶数,若m为偶数,则n为奇数。枚举m、n,然后将三元组乘以i倍,保证 i * (x + y + z)在所给范围内(2 * m^2 + 2 * m*n <= L),就可以求出所有满足条件的三元组。

2015-03-19 22:06:24 1085

原创 POJ1320 Street Numbers【佩尔方程】

题目大意:求解两个不相等的正整数N、M(N<M),使得 1 + 2 + … + N = (N+1) + … + M。输出前10组满足要求的(N,M)。思路:要使 1 + 2 + … + N = (N+1) + … + M,那么 N*(N+1)/2 = (M-N)(M+N+1)/2,即(2*M+1)^2 - 8*N^2 - 1,令x = 2*M + 1,y = N,就有x^2 - 8*y^2 = 1,就变成了典型的佩尔方程,已知x1 = 3,y1 = 1,由迭代公式得:xn = x(n-1)*

2015-03-19 21:58:52 889

原创 POJ1305 Fermat vs. Pythagoras【毕达哥拉斯三元组】

题目大意:给一个整数N,求N范围内的本原的毕达哥拉斯三元组的个数,以及N以内毕达哥拉斯三元组不涉及数的个数。思路:本原毕达哥拉斯三元组x^2 + y^2 = z^2 满足 x = m^2 - n^2,y = 2*m*n,z = m^2 + n^2,其中m > n,且若m为奇数,则n为偶数,若m为偶数,则n为奇数。要求所给范围N内的本原毕达哥拉斯三元数组,只需枚举m、n,然后将三元组x、y、z乘以i(保证i*z在所给范围内,因为z>x且z>y),就可以求出所有的毕达哥拉斯三元组。注意:因为在

2015-03-19 21:48:55 1072

原创 POJ2142 The Balance【二元一次方程】

题目大意:有一个天平,还有质量为a和质量为b的砝码,砝码的数量不限且天平左右两端均可放砝码,现在要求在天平上惩处质量为c的物品。那么问题来了:怎样放置砝码,才能使放置的砝码数量尽可能的少;当砝码数量相同时,总质量尽可能的少。思路:假设放置x个质量为a的砝码和y个质量为b的砝码,题目就变为了求解a*x + b*y = c的其中一组解,使得|x| + |y|尽可能小,若相等,则a|x| + b|y|尽可能小。设d = gcd(a,b),首先用扩展欧几里得算法出a/d*x + b/d*y = c/

2015-03-19 20:44:25 820

原创 HDU1788 Chinese remainder theorem again【中国剩余定理】

题目大意:题目前边的描述是多余的。。。一个正整N除以M1余M1-a,除以M2余M2-a,除以M3余M3-a,即除以Mi余Mi-a(a < Mi < 100),求满足条件的最小的数。思路:这是一道中国剩余定理的基础题。由题目得出N % Mi + a = Mi,即得:N + a = 0(mod Mi)。也就是所有的Mi都能整除N+a。那么题目就变为了求N个Mi的最小公倍数,最后再减去a。

2015-03-19 14:52:16 1144

原创 POJ1995 Raising Modulo Numbers【整数快速幂】

题目大意:N个人在一起玩游戏,每个人默写两个数字Ai、Bi,在同一个时间公开给其他玩家看。游戏的目的是为了看谁能够在最快的时间求出所有的Ai^Bi的和对M取模的值。那么问题来了:你能够快速算出(A1B1+A2B2+ ... +AHBH)mod M 的值吗?思路:用二分整数快速幂算法计算出每一个Ai^Bi,然后依次相加取模。

2015-03-18 14:53:51 748

原创 POJ3233 Matrix Power Series【矩阵快速幂】

题目大意:给定一个N*N的矩阵A和一个整数K,要求计算S = A + A^2 + A^3 + … + A^k。思路:分别用矩阵快速幂求出每一项的A^i,然后将每一项矩阵相加,考虑到k值很大,所有采用二分求解。

2015-03-18 14:45:16 760

原创 HDU2815 Mod Tree【高次同余方程】

题目大意:有一颗树,每个节点有K个儿子,那么问题来了:能否算出这棵树的最小深度D,使得这个深度的节点数对P取模的结果为N吗?思路:转换一下题目含义,就变成了解K^i = N(mod P),典型的A^i = B(mod C)问题,此题B的范围明显在[0,C-1]之间,若不在此区间,方程显然没解。

2015-03-18 10:49:52 974

原创 POJ2417 Discrete Logging【高次同余方程】

题目大意:已知整数P、B、N满足公式B^i = N(mod P),求i的值是多少。思路:典型的解高次同余方程A^x = B(mod C),直接套模板解决。注意输入顺序:C A B

2015-03-18 10:43:33 907

原创 POJ3243 Clever Y【高次同余方程】

题目大意:已知公式A^x mod C= B,以及A、C、B的值,求解x的值为多少。思路:典型的求解方程A^x = B(mod C),直接模板解决。

2015-03-18 10:37:20 889

原创 HDU3579 Hello Kiki【一元线性同余方程组】

题目大意:Kiki有X个硬币,她用不同的方式数了N次,每次她把硬币分成大小相等的组,记录每次一组硬币的个数Mi和数完最后剩余的硬币数Ai。那么问题来了:总共有多少枚硬币?思路:典型的一元线性同余方程组X = Ai(mod Mi)求解。题目要求输出最小正整数解,则如果求得同余方程组的解为0,那么答案就是所有Mi的最小公倍数。

2015-03-17 22:04:35 941

原创 POJ2536 Gopher II【二分图最大匹配】

题目大意:有N只鼹鼠和M个洞穴,如果鼹鼠在S秒内不能够跑到洞穴,就会被老鹰捉住吃掉。鼹鼠跑的速度为V米/秒。已知一个洞穴只能容纳一只鼹鼠。给你鼹鼠和洞穴的坐标,那么问题来了:问最少有多少只鼹鼠被老鹰捉住吃掉。思路:建立一个二分图,一边为鼹鼠,另一边为洞穴枚举求出每只鼹鼠到各个洞穴的距离,把能够在S秒内跑到该洞穴(距离<=S*V)的进行连边。建好图后用匈牙利算法求出最多有多少只鼹鼠能够幸免于难( MaxMatch() ),那么剩下的N - MaxMatch()就是最少有多少只鼹鼠被老鹰捉住吃掉

2015-03-17 09:23:02 741

Flask Web开发

本书共分三部分,全面介绍如何基于 Python 微框架 Flask 进行 Web 开发。 第一部分: Flask 简介,介绍使用 Flask 框架及扩展开发 Web 程序的必备基础知识 ; 第二部分:给出一个实例,真正带领大家一步步开发完整的博客和社交应用 Flasky, 从而将前述知识融会贯,付诸实践。 第三部分:介绍了发布应用之前必须考虑的事项,如单元测试策略、性能分析技术、Flask 程序的部署方 式等。

2018-05-29

2014年北大ACM暑期培训资料、讲义

北京大学的ACM国际大学生程序设计竞赛(ACM/ICPC)水平在国内处于领先地位,自2005年至2013年每年均参加总决赛,名次分别为11(铜牌)、13、14、13、20、14、13,13,13,13。北京大学多次承担ACM/ICPC亚洲区预选赛命题,广获好评。近几年负责命题的赛区有:2008年北京赛区,2009年宁波赛区,2010年杭州赛区,2010年福州赛区,2011年北京赛区,2011年福州赛区,2012年金华赛区,2012年杭州赛区。2013年杭州赛区。均由此课程主讲教师郭炜负责命题。北京大学的Online Judge --- POJ 更是国内最有影响力的ACM/ICPC竞赛训练平台之一,在国际上也有较高知名度和较多用户。

2014-08-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除