HBC20475[ZJOI2008]无序运动MOVEMENT题解

坐在坟头思考人生 算法基础篇 43 0
全网最全C++题库,助您快速提升编程技能!题库丰富多样,涵盖各个领域,让您在练习中不断成长!
PN),点列P的一个子 列[i, j]定义为P中一段连续的子序列(Pi, Pi+1, …Pj), 点列P的一个子列[u, v]被称为点列Q = (Q1, Q2 …Qv-u+1)在P中的一次出现,当且仅当Q经过有限次的平移、旋转、翻转、放缩之后得到Q’满足Q’k = Pu+k-1(k = 1 …

D博士对物理有着深入的研究,经典物理、天体物理、量子物理都有着以他的名字命名的定理。最近D博士着迷于研究粒子运动的无规则性。对圣经深信不疑的他相信,上帝创造的任何事物必然是有序的、有理可循的,而不是无规则的、混沌的。  经过长时间的研究,D博士找到了很多出现相当频繁的轨迹片断,他把这些轨迹片断储存在一 个很大的数据库内。他需要你帮助他写一个程序,对于一个给出的粒子运动轨迹,统计数据库中每个轨迹片断的出现的次数。  为清楚起见,我们定义一个粒子的轨迹为二维平面上的一个点列(P1, P2, … PN)。点列P的一个子 列[i, j]定义为P中一段连续的子序列(Pi, Pi+1, … Pj)。 点列P的一个子列[u, v]被称为点列Q = (Q1, Q2 … Qv-u+1)在P中的一次出现,当且仅当Q经过有限次的平移、旋转、翻转、放缩之后得到Q’满足Q’k = Pu+k-1(k =  1 … u – v + 1)。  对平面X-Y进行四种操作的解释平移设平移向量为(dx, dy),则任意点(x,y)平移后的结果 为(x+dx, y+dy) 旋转设旋转角为t,则任意点(x,y)旋转后的结果为 (x cos t – y sin t, x sin t + y cos t)  翻转任意点(x,y) 翻转后的结果为(x, -y) 放缩设放缩比例为p (p ≠ 0),则任意点(x,y)放缩后的结果为(px,  py)

HBC20475[ZJOI2008]无序运动MOVEMENT题解
-第1张图片-东莞河马信息技术
(图片来源网络,侵删)
成为编程大师,不再是梦想!全网最全C++题库,助您开启编程新篇章。

标签: HBC20475[ZJOI2008]无序运动MOVEMENT题解