上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 182 下一页
摘要: 题意:驴和老虎,在一个矩阵的两个格子里,有各自的起始方向。两者以相同的速度向前移动,前方不能走时驴总是向右,老虎总是向左。他们不能超出矩阵边界也不能走自己走过的格子(但可以走对方走过的格子)。如果不能前进时转向后仍不能前进则永久停止运动,问两者是否相遇(同时出现在同一个格子里,同时出现在格子的边界上不算),若相遇给出相遇坐标。分析:模拟即可,每次将两者按其规则移动,并判断两者是否在同一个格子里。注意:起始点在同一个格子里也算相遇。转向不算时间,因为题里说二者速度始终相同。本来应该用面向对象的方式,但是比赛时不敢轻举妄动……#include #include using namespace st 阅读全文
posted @ 2013-09-16 17:31 undefined2024 阅读(682) 评论(0) 推荐(0)
摘要: 题意:给出若干个没有公共面积的多边形,几个多边形可能属于同一个国家,要求给这个地图染色,同一个国家用相同的颜色,相邻国家不能用相同颜色。问最少需要多少种颜色。分析:计算几何+搜索。先判断哪些多边形是相邻的(这里只有一个公共点的不算相邻)。对于两个多边形,两两比较他们所有的边,看是否有重合部分。建好图后,枚举颜色数量(也可二分查找),并判断这些颜色是否可行。判断过程用搜索。搜索的方法是,n个点,第一层确定第一个点的颜色,第二层确定第二个点的颜色,以此类推,每次要向下递归前先判断当前染色是否产生冲突。而不是向二分图染色那样染搜相邻的点。#include #include #include #inc 阅读全文
posted @ 2013-09-13 21:09 undefined2024 阅读(274) 评论(0) 推荐(0)
摘要: 同2318在其基础上,输入需要排序,输出稍复杂#include #include #include #include #include using namespace std;#define maxn 5005struct Elem{ int cnt; //point count int num; //box num bool operator 0) { elem[elem_num].cnt = i; elem[elem_num].num = box_cnt[i]; ... 阅读全文
posted @ 2013-09-08 00:26 undefined2024 阅读(168) 评论(0) 推荐(0)
摘要: prim,把每个墙看成一个节点,从起点用prim求最小生成树,直到覆盖到终点为止,输出最小生成树中的最大边#include #include #include #include #include using namespace std;#define MAX_WALL_NUM 1005#define INF 0x3f3f3f3fstruct Wall{ int s, e, pos; bool h; //direction: is horizental}wall[MAX_WALL_NUM];int wall_num;double graph[MAX_WALL_NUM][... 阅读全文
posted @ 2013-08-31 16:52 undefined2024 阅读(252) 评论(0) 推荐(0)
摘要: 题意:两个素数P,Q。N=P*Q; T=(P-1)*(Q-1); (E*D)mod T = 1; (0 (E*D) = 1 + k*T E*(D*g) + T*[(-k)*g] = g(g是T和E的最大公约数gcd(T,E))。不过这道题好像不用这么麻烦,因为E和T互质,所以g=1。这样就变成了a*x+b*y=gcd(a,b)的形式了。pollard-rho和Miller-rabin算法参见poj1811解题报告http://www.cnblogs.com/rainydays/archive/2011/09/01/2162049.html扩展欧几里德算法参见poj1061解题报告http:/. 阅读全文
posted @ 2013-08-31 10:20 undefined2024 阅读(342) 评论(0) 推荐(0)
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 182 下一页