摘要: 总结一下poj上的约瑟夫问题。POJ 3517And Then There Was Onehttp://poj.org/problem?id=3517最朴实的约瑟夫问题,网上一搜攻略一大把。最关键是理解f = (f+m)%n的含义 1 #include 2 3 int main() 4 { 5 // freopen("input", "r", stdin); 6 int m, k, n; 7 while(scanf("%d %d %d", &n, &k, &m), n && k &&am 阅读全文
posted @ 2014-01-14 16:26 holiday~ 阅读(133) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1376今天本来看了下循环赛算法,准备在oj上搜下看有木有相关的题,结果发现貌似木有。。所以找出一道以前数算实习课上的水题来做。其实也不是特别水,有些细节还是要注意的。 1 #include 2 #include 3 #include 4 const int MAXN = 60; 5 int r, c, ex, ey, mx[4] = {-1, 0, 1, 0}, my[4] = {0, 1, 0, -1}; 6 bool m[MAXN][MAXN], vis[MAXN][MAXN][4]; 7 struct Node{ 8 i... 阅读全文
posted @ 2014-01-13 00:28 holiday~ 阅读(592) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3714想巩固一下最近点对,于是去网上搜了一道据说类似的题。一看貌似果然类似,给一个点集A,一个点集B,求min(distance(x, y))(x∈A,y∈B)。想了一下,发现只需让同一点集中的点距离无穷大即可。其他同上一篇博文中的HDU1007。 1 #include 2 #include 3 #include 4 using namespace std; 5 const int MAXN = 200010; 6 const double INF = 10000000000000.0; 7 struct Point{ 8 d... 阅读全文
posted @ 2014-01-11 22:45 holiday~ 阅读(162) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1007首先说明题意:一个名为quiot的游戏,类似与在商场玩的用圆环套玩具的游戏,但设计要求保证一次不应套中两个玩具。求计算最大的圆环半径。于是可以建模为平面最近点对的经典分治问题。 1 #include 2 #include 3 #include 4 using namespace std; 5 const int MAXN = 100100; 6 struct Point{ 7 double x, y; 8 }x[MAXN]; 9 int y[MAXN], z[MAXN];10 bool c... 阅读全文
posted @ 2014-01-11 21:19 holiday~ 阅读(169) 评论(0) 推荐(0) 编辑
摘要: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=654数算实习课的题,拿来算是热身了。顺便复习一下匈牙利算法。若用独立集来解,是NPC问题;可以建模为二部图,将每一行每一列被墙隔开,且包含空地的连续区域看作一“块”。显然,一个块中最多放一个机器人,将横向块和纵向块分别编号,最大公共空地(最大匹配)即为最多机器人放置方法。 1 #include 2 #include 3 #include 4 const int MAXN = 5001; 5 int n1, n2, m2[MAXN]; 6 bool b[MAXN][MAX... 阅读全文
posted @ 2014-01-09 21:28 holiday~ 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 在中国一流大学选了计算机专业,且热爱自己的专业。无奈高中没有搞过OI竞赛,深感自己编程能力的不足。为了弥补自己和别人的差距,并锻炼自己的思考能力,从今天开始放假,每日一道OI新题,并把解题报告放到网上。可提前做,不可推后。为此宣言立博,holiday 1.09~2.17 阅读全文
posted @ 2014-01-09 20:25 holiday~ 阅读(117) 评论(0) 推荐(0) 编辑