夏夜、

心若平似镜、何题不AC。

2013年8月9日

UVA 10635 Prince and Princess LCS转LIS

摘要: 题意:求最长公共子序列正常的算法O(n^2)不够快,但因为这题数据特殊,数组中的数各不相同,可以转化成求最大上升子序列比如样例中A{1 7 5 4 8 3 9}, B{1 4 3 5 6 2 8 9},将数字重新映射编号map[ai]=i;ai=map[ai];bi=map[bi];变成A{1,2,3,4,5,6,7} B{1,4,6,3,0,0,5,7} 问题便变成了求B的LIS可以在0(nlogn)求出// #pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#in 阅读全文

posted @ 2013-08-09 22:45 BMan、 阅读(177) 评论(0) 推荐(0) 编辑

UVA 1394 And Then There Was One 约瑟夫环数学方法

摘要: 题意:n个人围成环,首先第m个人出列,然后从下一个开始,数到第k个就出列。。。问最后剩下的是谁?为了方便,我们采用0~n-1的编号方式先考虑当题意没有m的时候,就是说从第一个人开始,第k个人出列。那么第一个出列的就是编号k-1的人,此时我们把剩下的人重新编号k->0k+1->1k+2->2........k-2->n-2假设新编号为x的人是最终剩下来的,那他在原来的编号是多少?就是(x+k)%n所以我们只要一直重复这个过程便能求得最开始那个人的编号,因为这个人最终的编号是0(只剩他一个人)0->(0+k)%2->((0+k)%2+k)%3->..... 阅读全文

posted @ 2013-08-09 22:22 BMan、 阅读(385) 评论(0) 推荐(0) 编辑

导航