[CodeChef FEB15]Payton numbers(CUSTPRIM)解题报告

题目

(翻译来自洪华敦)
定义三元组的乘法

def multiply((a1,b1,c1), (a2,b2,c2)):

s = (a1a2 + b1b2 + c1c2) + (a1b2 + b1a2) + (c1 + c2)

t = floor[s/2] + 16(c1 + c2) – c1c2

A = (t – 2(a1b2 + b1a2) – (a1c2 + c1a2) + 33(a1 + a2)+ (b1b2 – a1a2))

B = (t – 5(a1b2 + b1a2) – (c1b2 + b1c2) + 33(b1 + b2)+ (2b1b2 + 4a1a2))

if s is even: return (A-540,B-540,24)

else: return (A-533,B-533,11)

定义zero:若x*任何y=0,则称x是zero

定义单位元,若x*任何y=y,则称x是单位元

定义质数,若x不是zero且不能分解成两个非单位元的乘积,则称x是质数

给定一个三元组,问他是不是质数

题解

CC上有自带的(英文)题解:
还有一篇中文翻译:
翻译有遗漏之处,以原文为准。反正我就是看CC上的英文题解看懂的。
解法简直出(sang)神(xin)入(bing)化(kuang),大家还是去看原文吧……
(没错这真的是一篇解题报告)

代码

发表评论

电子邮件地址不会被公开。 必填项已用*标注