2012年8月30日
摘要: 思路:i * j + i + j------> (i + 1) * (j + 1) = N+1----> 2 <= i+1 <= sqrt(N+1); (0 < i <= j)CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>usingnamespacestd;intmain(){intT;scanf("%d",&T);while(T--){inti,j;__int64N;intcnt= 阅读全文
posted @ 2012-08-30 21:30 有间博客 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 题意:求一个集合到另一个集合的最小路径。思路1:直接用循环T次Dijkstra算法,从而求得最小值,但是TLE了。后来加一个添加一个新的源点,把起点与源点路径的赋值为0就可以啦。条件:(1)有向图。(2)T次Dijkstra可能会超时。CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>usingnamespacestd;constintSIZE=1010;constintINF=0x3f3f3f3f;intd[SIZE],v[SIZE];intw[SIZE][SIZE];intsave[SIZ 阅读全文
posted @ 2012-08-30 20:22 有间博客 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 无聊写写,注意X,Y,Z都不能为0。CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>usingnamespacestd;intmain(){intn;while(~scanf("%d",&n)){inti,j;intflag=0;for(i=1;i<=100;i++){for(j=1;j<=100;j++){intdif=n-i*i-j*j;doubleans=sqrt(dif);if(ans==0)cont 阅读全文
posted @ 2012-08-30 18:32 有间博客 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 题意:有一个建筑有N层,里面有一架电梯。给你一个起点层数和一个终点层数。在每一层都有一个按钮,按钮上面有一个数字,表示可以上或者下Ki层。然后你可以由起点开始选择上或者下(重复……),当你到达终点为止(或者不可能到达终点为止)。求你需要按按钮的次数,不能到达则输出-1。思路:这道题可以转换为一道最短路题目,对第i层,按钮数字为k[i],则如果满足相加<=N,则把i到i+k[i]的路径长度设为1(巧妙将按钮次数转换为路径长度),同理,相减如果满足>=1,则把i到i-k[i]的路径长度设为1.则最后输出终点的最短路的长度即可。注意:(1)有向图。(2)可走的范围别越界。CODE:#in 阅读全文
posted @ 2012-08-30 16:23 有间博客 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 题意: 给定一个无向图n*n(m),求从出发点1到终点2中符合以下条件的路径数目。 <条件:若该路径上的任意段(A,B):满足B到终点的最短距离比A到终点最短距离要短(即d[A]>d[B])则选择B>思路:Dijkstra+dfs记忆化路径搜索 。CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<limits.h>usingnamespacestd;constintSIZE=1001;constintINF=0x3f3f3f3f;intw[SIZ 阅读全文
posted @ 2012-08-30 15:28 有间博客 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 与杭电1496类似,都是通过hash+枚举做的。CODE:#include<stdlib.h>#include<stdio.h>#include<string.h>usingnamespacestd;constintSIZE=25000000;charhash[SIZE+1];constintN=SIZE/2;intp[100];intcalCube(intx){returnx*x*x;}intmain(){inta1,a2,a3,a4,a5;while(~scanf("%d%d%d%d%d",&a1,&a2,&a 阅读全文
posted @ 2012-08-30 12:10 有间博客 阅读(184) 评论(0) 推荐(0) 编辑
摘要: ACM队员应掌握的知识及POJ 题目推荐(转) 图论 拓扑排序 有向无环图与动态规划的关系 二分图匹配问题 一般图问题与二分图问题的转换思路 最大匹配 有向图的最小路径覆盖 0 / 1矩阵的最小覆盖 完备匹配 最优匹配 稳定婚姻 网络流问题 网络流模型的简单特征和与线性规划的关系 最大流最小割定理 最大流问题 有上下界的最大流问题 循环流 最小费用最大流 / 最大费用最大流 弦图的性质和判定组合数学 解决组合数学问题时常用的思想 逼近 递推 / 动态规划 概率问题 Polya定理计算几何 / 解析几何 计算几何的核心:叉积 / 面积 解析几何的主力:复数 基本形 点 直线,线段 多边形 凸多边 阅读全文
posted @ 2012-08-30 11:30 有间博客 阅读(666) 评论(0) 推荐(1) 编辑
摘要: 康托展开:X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...+a2*1!+a1*0!ai为整数,并且0<=ai<i(1<=i<=n)应用实例:{1,2,3,4,...,n}的排列总共有n!种,将它们从小到大排序,怎样知道其中一种排列是有序序列中的第几个?如 {1,2,3} 按从小到大排列一共6个:123 132 213 231 312 321。想知道321是{1,2,3}中第几个大的数。这样考虑:第一位是3,小于3的数有1、2 。所以有2*2!个。再看小于第二位,小于2的数只有一个就是1 ,所以有1*1!=1 所以小于32的{1,2,3} 阅读全文
posted @ 2012-08-30 11:17 有间博客 阅读(413) 评论(0) 推荐(0) 编辑