摘要:
1、题目类型:模拟题。2、解题思路:(1)将输入转换为Map[][],Loc[], Mov[]数组,分别表示在矩形中有哪些robot、robot的位置及当前运动方向、所需要完成的行动;(2)模拟输出各种情况。3、注意事项:N、W、S、E这种顺时针的旋转顺序;对于求余数处理是否注意出现负数的情况;robot移动过程中,crashes robot和crashes wall 同时判断,crashes r... 阅读全文
摘要:
1、题目类型:BFS,位运算。2、解题思路:(1)将输入转换为int 16位整数;(2)BFS,中止条件为data==0 || data==65535;(3)输出BFS层数。3、注意事项:类似POJ 2965。4、实现方法:[代码] 阅读全文
摘要:
1、题目类型:BFS,位运算。2、解题思路:(1)将输入转换为int 16位整数;(2)BFS,中止条件为data==0;(3)输出BFS层数,并记录每层改变的位置。3、注意事项:BFS中用STL的queue做队列,提交TLE。4、实现方法:[代码] 阅读全文
摘要:
1、题目类型:枚举,哈希表。2、解题思路:(1)建立输入点集Arr[],并插入Hash表;(2)枚举所有线段利用Hash表寻找是否存在另外两点使其构成正方形;3、注意事项:已知两点(a1,a2)和(b1,b2),有点(a1+(a2-b2), a2-(a1-b1))和点(b1+(a2-b2), b2-(a1-b1))可以构成一个正方形。4、实现方法:[代码] 阅读全文
摘要:
1、题目类型:凸包。2、解题思路:(1)建立点集map[][];(2)Graham法求解凸包,中间对于斜率的排序用的是STL的sort();(3)求解凸包边长的和加上以L为周长的园的周长。3、注意事项:凸包处理过程中,Graham(),用于记录的结构体数组的开始与结束。4、实现方法:[代码] 阅读全文
摘要:
1、题目类型:凸包。2、解题思路:(1)建立点集map[][],为了避免负数用ADD=10000进行的处理;(2)Graham法求解凸包,中间对于斜率的排序用的是STL的sort();(3)求解凸包中点间的最大距离。3、注意事项:凸包处理过程中,考虑是一条直线上面的情况,即使在一条直线不是一个凸包。4、实现方法:[代码] 阅读全文
摘要:
1、题目类型:计算几何,最小生成树。2、解题思路:(1)获得所有点路径长度的矩阵map[][];(2)利用Prim算法求解最小生成树。3、注意事项:数学操作,中间值全部用double保存。4、实现方法:[代码] 阅读全文
摘要:
1、题目类型:计算几何。2、解题思路:(1)建立点结构体Node;(2)给四条边上的点赋值(3)利用四个点坐标确定交点坐标的GetPoint()获得点集Point[][];(4)利用多边形面积求解方法GetArea()获得面积集合Area[][];(5)取面积集合的最大面积。3、注意事项:计算几何模板的套用,如求解面积的方法模板需要控制参数点的顺时针或者逆时针顺序;求交点中,用到直线公式注意其K为... 阅读全文
摘要:
1、题目类型:组合数学。2、解题思路:模拟后发现题意为组合数学的简单题。3、注意事项:求排列组合函数C()的定义,C()中 (n-m)<m?(n-m):m 将大大提高运算效率。4、实现方法:[代码] 阅读全文
摘要:
1、题目类型:组合数学、数论。2、解题思路:题意,给出两个数a和b,求出[a,b]之间,有多少个数为round number。round number的定义:其二进制数中0的数量大于或等于1。3、注意事项:右移过程,在匹配1成功时注意怎样取组合数,以及组合数结束的条件。4、实现方法:[代码]//计算组合m组中的n组__int64 C(int m,int n){ __int64 r=1; int h... 阅读全文
摘要:
1、解题思路:数论,打表素数,大数表示,大数除法。2、注意事项:利用1000进制除法,如果用100、10000进制将会超时。3、实现方法:(C++)[代码]4、程序实现:(Java)[代码] 阅读全文
摘要:
1、解题思路:数论,大数处理。2、注意事项:A可以唯一分解成p1^a1*p2^a2*...pi^ai...*pn^an;公式:(A*B)%C=((A%C)*(B%C))%C;中间值全部用__int64表示;利用位运算如:n&1,判断n的奇偶性。3、实现方法:[代码] 阅读全文
摘要:
1、解题思路:数论,打表,分层筛选。2、注意事项:分层筛选中,摒弃的条件判断;首次1A。3、实现方法:[代码] 阅读全文