自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 2013寒假练习 1033 Squares

地址:http://acm.bit.edu.cn/mod/programming/view.php?a=519平面上有n个点,问这些点能形成几个正方形。(n只要枚举两个点作为正方形的两个顶点(相邻或者相对都行),从而算出另两个顶点的坐标,然后查找这两个坐标是否存在于点集内就可以啦。因为枚举需要o(n^2),查找效率就必须是o(logn)不然超时啦~可以用哈希、二分查找等等方法加速查找。我是

2013-02-21 18:32:06 360

原创 2013寒假练习 1036 篱笆长度

地址:http://acm.bit.edu.cn/mod/programming/view.php?a=522做过好几遍的题。。答案等于凸包周长+半径为l的圆的周长。n=1,2特判下就行。。WA了无数次。。全改double就过了#include #include #include #define PI acos(-1.0)using namespace std;in

2013-02-20 09:45:32 387

原创 2013寒假练习 1050 Diophantus of Alexandria

地址:http://acm.bit.edu.cn/mod/programming/view.php?a=536给定n,问1/X+1/Y=1/n的正整数解有几组(设X设X=n+a,Y=n+b 代入化简后可得 n*n=a*b. 然后就一目了然了,a与b就是n*n的每一对约数。故答案就是n*n的约数个数+1再除以2。自己想不到就是想不到。。怎么办T T#includeusing na

2013-02-20 09:28:09 407

原创 2013寒假练习 1039 Unit Fraction Partition

地址:http://acm.bit.edu.cn/mod/programming/view.php?a=525将一个给定分数划分成许多单位分数之和,限制这些单位分数分母之积不能超过a,个数不能超过n,求方法总数。给了那么多贴心限制肯定是DFS啦,注意假设所选分数分母非递减,防止重复。自己写的0.14s。。那些0.008估计是利用了什么性质优化了?#includeusing na

2013-02-19 21:38:06 899

原创 2013寒假练习 1088 车厢重组

地址:http://acm.bit.edu.cn/mod/programming/view.php?a=574答案为该序列的逆序数。。nlog(n)求逆序数:树状数组或归并排序。又写了一遍树状数组的。。#include#includeusing namespace std;#define ll __int64#define SIZE 100005#define lowb

2013-02-19 20:11:53 1363

原创 2013寒假练习 1052 青蛙的约会

地址:http://acm.bit.edu.cn/mod/programming/view.php?a=538扩展欧几里得算法解ax+by=c,经典题。注意最后要输出x的最小的正整数解,故求出通解应该先%(b/gcd),再把负的加成正的。直接加减会超时。#include#define ll __int64using namespace std;ll x0,y0;ll exg

2013-02-19 11:38:33 406

原创 2013寒假练习 1051 Score

地址:http://acm.bit.edu.cn/mod/programming/view.php?a=537题意其实就是:给出a,b 问不能使得ax+by=n有正整数解的最大n。如a=3 b=7,n>11时恒有正整数解,n=11时没有,故答案为11;a=2,b=2,n为奇数时均无正整数解,故不存在“最大的”,输出Inf。一眼就能看出若a,b不互素那么Inf。关键是a,b互素时,这个最大的

2013-02-19 10:17:59 498

原创 2013寒假练习 1035 远古石碑

地址:http://acm.bit.edu.cn/mod/programming/view.php?a=521题意:求多边形重心。这里的多边形重心是指质量均匀分布在整个多边形上的重心,而不是质量分布在顶点上的,所以不能直接坐标全加起来再除以n。三角剖分,因为三角形的重心即等于质量分布在三角形三个顶点上时的重心,即等于三个顶点坐标之和除以3.那么就可以求出这些三角形的重心,那么多边形

2013-02-18 20:28:10 510

原创 2013 寒假练习 1048 n以内约数最多的数

地址:http://acm.bit.edu.cn/mod/programming/view.php?a=534题意:如题目。。逐一求约数肯定超时。正解是枚举可能的质因子的组合。如2^2*3,2*3*5等等。由于题目要求在约束相同时输出最小的,那么对于相同的指数组合,取较小的质因子肯定更优,故枚举时只需枚举指数组合非增的,像2^1 * 3^2 * 5^3这种就不用枚举,因为肯定没有2^3

2013-02-18 18:55:43 1649

原创 2013寒假练习 快速幂三弹连发 A^B mod C v1.0-3.0

1044:A^B mod C v1.0  (1  http://acm.bit.edu.cn/mod/programming/view.php?a=5301045:A^B mod C v2.0  (1  http://acm.bit.edu.cn/mod/programming/view.php?a=5311056:A^B mod C v3.0 1http://acm.bit.

2013-02-18 16:03:01 1441

原创 2013寒假练习 1055 The Euler function

地址:http://acm.bit.edu.cn/mod/programming/view.php?a=541给出a和b,求a到b之间的数的欧拉函数值之和。(2肯定要打表把1000000以内数的欧拉函数都算出来。一个个算显然很慢,所以我们又可以反向思考,利用类似筛法的方法算出所有数的欧拉函数。具体做法:当前i若没有被更新过,说明是素数,将其倍数的欧拉函数值(因为这些数有i这个质因子)全部利

2013-02-18 10:41:16 486

原创 2013寒假练习 1011 Maximum Sum II

地址:http://acm.bit.edu.cn/mod/programming/view.php?a=497题意:子段长度不超过k的最大子段和。看似简单题,序号又靠前,结果就给虐了T T一开始妄图用和最大子段和差不多的方法做,最后才发现算法不对。正解如下:sum[i]表示前i个数之和(特别的sum[0]=0),问题转化为找一个最小的sum[j](i-k=http://yzmd

2013-02-18 09:18:58 375

原创 2013寒假练习 1057 SUM

地址:http://acm.bit.edu.cn/mod/programming/view.php?a=543问小于等于n且不与n互质的数的和。(2 ≤ N ≤ 1000000000).对于小于n且与n互质的数,因为若i与n互质那么n-i也与n互质,故这些数两两成对,每对和为n,一共φ(x)/2对,和为φ(x)/2*n.再加上n,得小于等于n且与n互质的数之和为φ(x)/2*n+n.然

2013-02-18 09:05:27 455

原创 2013寒假练习 1054 Largest prime factor

地址:http://acm.bit.edu.cn/mod/programming/view.php?id=705题意:给出n(0 一个比较好的方法是类似筛法的方法,筛的时候用当前素数更新其倍数的值为当前素数的序号。这样最后prime[i]里存的一定是i的最大质因子的序号(大的质因子会覆盖掉小的)#includeusing namespace std;#define N 1000

2013-02-17 19:28:26 383

原创 2013寒假练习 1063 食物链(另1062 Find them, Catch them,1061 Ubiquitous Religions)

地址:http://acm.bit.edu.cn/mod/programming/view.php?a=549经典拓展(真)并查集,多码几次没坏处。难点:merge时,relation的变更容易搞混。原理是b对a的关系等于b对c+c对a的关系(注意有先后)。故merge时已知a对roota关系temp1.r,b对roota关系temp2.r,a对b关系s,则roota对rootb关系为 -

2013-02-17 17:11:58 365

原创 2013寒假练习 1060 Is It A Tree?

地址:http://acm.bit.edu.cn/mod/programming/view.php?id=711给出一个有向图的边,问该图是不是有向树标程貌似是并查集,但是其实只要满足所有点的入度均为1,只有一个(根节点)为0就可以了。我做的时候还加上了边数=节点数-1这个条件,但其实这是前述条件的推论。。。另外注意 空树即0 0也是树。。#includeusing names

2013-02-17 09:03:32 392

原创 2013寒假练习 1038 Red and Black

地址:http://acm.bit.edu.cn/mod/programming/view.php?id=689水题,最基本的bfs。#include#includeusing namespace std;typedef struct NODE{ int x,y;}node;node temp,now;char map[25][25];bool flag

2013-02-16 21:23:51 371

原创 2013寒假练习 1049 Relatives

地址:http://acm.bit.edu.cn/mod/programming/view.php?id=700题意:求n的欧拉函数值。。原理是"φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn),其中p1, p2……pn为x的所有质因数,x是不为0的整数。"如12=2^2*3 那么φ(12)=12*(1-1/2)*(1-1/3)自己

2013-02-16 20:34:55 454

原创 2013寒假练习 1047 Fibonacci Numbers

地址:http://acm.bit.edu.cn/mod/programming/view.php?id=698求第n个斐波那契数mod p 的结果。矩阵快速幂入门题。#includeusing namespace std;typedef struct MATRIX{ __int64 a[2][2];}matrix;matrix I;int n,p;matr

2013-02-16 19:08:38 351

原创 2013寒假练习 1046 Leftmost Digit

地址:http://acm.bit.edu.cn/mod/programming/view.php?a=532题意:(1 hdu有一道同名题目是问n^n的最高位数字,较为基础,原理一致。设n^n=a*10^b(科学计数法)其中a的整数部分即为所求然后化为nlog(n)=loga+b进一步的loga即为nlogn的小数部分,然后就能求出a,最终求出a的整数部分。对于本题方法基本一致,但左边变

2013-02-16 18:44:02 535

原创 2013寒假练习 1026 Til the Cows Come Home

地址:http://acm.bit.edu.cn/mod/programming/view.php?id=677裸的dijkstra。。今次使用邻接表#include#define INF 0x7f7f7f7ftypedef struct NODE{ int v,l; struct NODE * next;}node;node map[1005],*temp;

2013-02-16 16:53:10 425

原创 2013寒假练习 1019 The Little Architect II

地址:http://acm.bit.edu.cn/mod/programming/view.php?id=670用1*1*2的积木装满2*2*n的矩阵,一共有几种方法。答案mod p输出(1 这题想了我好几天,终于想明白每一层只有三种可能:不放向下的(情况0),放两个相邻的向下的(情况1),放四个向下的(情况2)。则由状态压缩DP的思想可以得到递推公式:dp[i][0]=dp[i-1]

2013-02-16 16:12:08 500

原创 2013寒假练习 1025 Layout

地址:http://acm.bit.edu.cn/mod/programming/view.php?a=511题意:有一群牛编号从1到n依次沿直线排列,若两牛相互喜欢,则他们之间的距离不得大于给定值;若两牛相互讨厌,则他们之间的距离不得小于给定值;给出所有的喜欢和讨厌情况,问在这些约束条件下1牛到n牛的最大距离。这类题是第一次接触,是差分约束问题,可以用spfa解。。具体的通用做法是,若最

2013-02-16 09:21:20 327

原创 2013寒假练习 1024 载重问题

地址:http://acm.bit.edu.cn/mod/programming/view.php?id=675题意:给一个图,每条边有一个权值,求一个从起点(1)到终点(n)的最大权值路径,其中路径的权值是路径中所含的边的权值的最小值。这题可以用类似dijkstra的按顺序依次松弛每个节点,每个节点只松弛一遍。一般求最短路的dijkstra之所以每次选择当前未松弛节点中值最小的进行松弛,

2013-02-15 21:45:26 450

原创 2013寒假练习 1022 Mondriaan's Dream

地址:http://acm.bit.edu.cn/mod/programming/view.php?id=673题意:求用1*2的砖填满m*n的矩阵的方法总数,对称的也算。状态压缩DP。。由于接触的比较少是模仿别人AC代码写的。首先可以简化这道题的关键之一是可以把每一行的状态记成101000(最多11位)之类的二进制表示,其中0表示该行的这一位要么是上一行的竖块占掉的,要么是这一行横放

2013-02-13 18:23:23 392

原创 2013寒假练习 1021:Pascal's Travels

地址:http://acm.bit.edu.cn/mod/programming/view.php?id=672要从一个矩阵的左上角走到右下角。矩阵的每个点都有一个值表示从该点出发的下一步必须走这个指定的距离,而且必须往右或往下走。问总的走法有几种。直接把每种方法都搜索出来会TLE。注意到特殊之处在于每一步必须往右或往下走,所以每个点的走法总数只被其左上方的点影响。所以我们可以另ans[i

2013-02-08 18:53:16 351

原创 2013寒假练习 1034:丈量土地

地址:http://acm.bit.edu.cn/mod/programming/view.php?a=520裸的多边形面积。。三角剖分思想。今次使用了从伟神那学来的运算符重载算叉积=w=#include#includeusing namespace std;typedef struct{ double x,y; void in() { scanf("%l

2013-02-08 13:52:55 493

原创 2013寒假练习 1030:Knight Moves

地址:http://acm.bit.edu.cn/mod/programming/view.php?id=681给定起点和终点,问马从起点跳到终点所需最少步数。直接BFS无须多言。。#include#includeusing namespace std;bool flag[8][8];int dir[8][2]={{1,2},{1,-2},{-1,2},{-1,-2},{2

2013-02-08 13:26:22 303

原创 2013寒假练习 1017:To the Max

地址:http://acm.bit.edu.cn/mod/programming/view.php?id=668最大子矩阵和。其实就是做n*n次最大子段和。。#includeusing namespace std;int a[105][105],sum[105],dp[105];int main(){ int n,i,j,k,ans; while(~scanf("%

2013-02-08 00:13:38 355

原创 2013寒假练习 1020:小白鼠

地址:http://acm.bit.edu.cn/mod/programming/view.php?id=671题目:Description有 n 个瓶子,已知其中有且仅有一个瓶子的饮料有毒。现在我们想知道哪个瓶子的饮料有毒,于是找来一些小白鼠做测试。假设我们有足够多的小白鼠,为了加快测试速度,我们每次可以把来自若干个瓶子的测试样本混在一起,喂给小白鼠。如果小白鼠喝了有毒的

2013-02-07 23:40:48 714

原创 2013寒假练习 1015:Edit Distance

给两个字符串,将其中一个经过编辑后变成另一个所需的最短步数叫做编辑距离。,其中编辑是指:插入、删除、更改。求编辑距离。类似最大公共子串做法的DP,转移方程为dp[i][j]=max{dp[i-1][j-1]+1,dp[i-1][j]+1,dp[i-1][j]+1}(i,j位置两字符不相同)、dp[i][j]=max{dp[i-1][j-1],dp[i-1][j]+1,dp[i-1][j]+1}

2013-02-07 17:17:38 395

原创 2013寒假练习 1027 一个人的旅行 1028 Constructing Roads 1032 Trees Made to Order

地址:http://acm.bit.edu.cn/mod/programming/view.php?id=678地址:http://acm.bit.edu.cn/mod/programming/view.php?id=679地址:http://acm.bit.edu.cn/mod/programming/view.php?id=683三道记忆犹新的课程原题,一道最短路,一道最小生成树,

2013-02-06 18:17:50 323

原创 2013寒假练习 1014:Big Event in BIT

地址:http://acm.bit.edu.cn/mod/programming/view.php?id=665题意:有N种东西,每种东西有价值和数量。要把所有东西分成尽量平均的两份。一眼看出是价值和重量相等的多重背包。。背包容量是总价值/2。。久违的1Y#includeint v[55],a[55],dp[255555];int main(){ int n,i,j,k

2013-02-06 18:03:04 408

原创 2013寒假练习 1018:没有上司的聚会

地址:http://acm.bit.edu.cn/mod/programming/view.php?a=504树形DP好题。终于独立做出一道题。。题意:给出一棵树的节点的权值,取一个节点集满足没有节点有父子关系,求这个节点集总权值的最大值。由于当前节点是否取影响其父亲的DP取值,故DP时要分取和不取两种情况。状态转移方程还是比较好想的,可以参见代码。然后就是具体处理,我是用父亲表示

2013-02-06 17:20:13 905 2

原创 2013寒假练习 1016:滑雪

地址:http://acm.bit.edu.cn/mod/programming/view.php?id=667经典DP好题。给出一个二维数组,求一个最长的下降路径。其中路径的合法性是指可以往上下左右走。用dp[a][b]表示从map[a][b]开始能走出的最长下降路径的长度,那么dp[a][b]=max{dp[X][Y]+1}其中XY位于AB的上下左右,并且有map[A][B]>map[X]

2013-02-04 17:28:19 359

原创 2013寒假练习 1009:Number Sequence

地址:http://acm.bit.edu.cn/mod/programming/view.php?id=660水题。练c语言用=w=。#include#includeusing namespace std;int main(){ int t,n,i; scanf("%d",&t); while(t--) { int now=0,zen=1; //no

2013-02-04 14:35:20 379

原创 2013寒假练习 1013:Bone Collector

地址:http://acm.bit.edu.cn/mod/programming/view.php?id=66401背包~WA了一次因为输入的两行写反了。。反了。。了。。今次用的是一维数组写法。#includeusing namespace std;int v[1005],r[1005],dp[1005];int main(){ int t,n,b,i,j; s

2013-02-04 01:18:24 326

原创 2013寒假练习 1012:导弹防御问题

地址http://acm.bit.edu.cn/mod/programming/view.php?id=663经典DP题。先求一个最大不上升子序列的长度没问题。至于第二问一共需要几个导弹。。居然是求最大上升子序列的长度,就等于至少需要几个导弹。。没想到。究其原因:设该序列最大上升子序列长度为L,并且该子序列为A1,A2,...,AL.那么一、至少要用L枚导弹,因为A1,A2...AL没有任

2013-02-03 18:41:36 370

原创 2013寒假练习 1010:Maximum Sum

地址:http://acm.bit.edu.cn/mod/programming/view.php?a=496最大子序列。。DP入门题。。可以直接在原数组上一遍输入一边跑一边更新最大值=w=WA了一次因为没注意序列长度必需至少为1#includeusing namespace std;int a[50005];int main(){ int t,n,max; sca

2013-02-02 14:37:08 362

原创 2013寒假练习 1008:Putting Apples

地址:http://acm.bit.edu.cn/mod/programming/view.php?a=494DP好题。将n个苹果分入k的盘子,盘子可以空着,问不同的方法总数(1,2,2和2,1,2算一种)建立dp[a][b],表示将a个苹果分入b个盘子的方法总数。初始条件为dp[a][0](0我们将dp[a][b]的这些方法分成两种。一种是含0的,即有盘子没放苹果的情况。这一部分情况

2013-02-01 23:22:02 429

空空如也

空空如也

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

TA关注的人

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