心与心的距离

3656. 心与心的距离

描述统计讨论区

单测试点时限: 2.0 秒

内存限制: 512 MB

近在咫尺,远在天边。心与心的距离的量度,往往不如欧氏距离般浅显,而十分令人困扰。

斯蒂芬妮·孔茨在奥利匹亚沃什的长青州立学院教历史和家庭研究学。其代表作《婚姻·历史:爱情如何征服婚姻》中讨论了这一问题。她说:

人类喜欢看爱情故事,但在过去,人们几乎没有活在爱情之中。

这是事实,因为在过去的很长一段时间内,婚姻几乎总是与经济状况、工作、抚养子女相关,而并非依赖于爱情。当前普遍的爱情关系与上世纪 50 年代出现。有人认为,这与电影电视剧等娱乐行业的技术变革和蓬勃发展密切相关;也有人认为,这是因为宗教的衰落,工作不稳定性的不断增强,以及流动人口的增多——更多的人倾向于在城市间奔波,而不是待在同一个地方。

亲密关系已然成为新的宗教。从爱情中,人们获得自我价值的验证与实现,找到自己存在的意义,已经获得他们以前从家庭生活或社区生活中获得的归属感。而且,流行文化始终传达着这样一种信息:人人都会遇到那个命中注定的人,并收获幸福。

回到最初的问题,我们必须意识到,我们生活在一个强调个性 (Individuality),自主 (Autonomy) 和实现个人目标 (Personal Goals) 的时代。这意味着现代情侣往往需要既团结又独立,既有归属感又有自由感。

假设一个个体 b 的个性、自主、个人目标可以用三个非负整数 Ib, Ab, Gb 来衡量;另一个人 g 也用三个非负整数 Ig, Ag, Gg 来衡量。那么我们可以建立一种精妙的数学模型,来衡量他们心与心的距离:

 

distance(b,g)=max{|Ib−Ig|,|Ab−Ag|,|Gb−Gg|}⊕Ib⊕Ig⊕Ab⊕Ag⊕Gb⊕Gg

其中 max{S} 表示 S 中最大的元素, |x| 表示 x 的绝对值,⊕ 表示位异或运算。

有关位异或的解释可见维基。在 C++、Python 语言中,表示为 ^

现给出 distance(b,g),要求还原出 Ib, Ab, Gb, Ig, Ag, Gg 这六个变量。

输入

第一行是一个正整数 T (1≤T≤2 000),表示下面有 T 组数据。

接下来 T 行每行为一个 distance(b,g),这是一个不超过 2 000 的非负整数。

输出

对于每组数据,首先输出 Case #x: 其中 x 是从 1 开始的测试数据编号。

然后输出六个整数,依次为 Ib,Ig,Ab,Ag,Gb,Gg (0≤Ib,Ig,Ab,Ag,Gb,Gg≤106)。

如有多解输出任意一解。如果找不到任意一解,输出 NO

样例

input

3
6
0
4

output

Case #1: 3 1 2 4 3 3
Case #2: 1 2 1 2 1 3
Case #3: 3 2 5 4 3 5

提示

内容来源:The gap that lovers must fill: What exactly is a ‘conventional’ relationship?

 理解题意,有多解,输出任意一解即可。异或:0^1=1, 0^0=0, 1^1=0

由x^y^y=x,得这6个数可取偶数对相同的值,要使任意两个数的最大差值为输入的数n。

例如:n 0 n 0 0 0 或  n+1  1  n+1 1 1 1

 

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int T=sc.nextInt();
		int i=0;
		int [] n=new int[T];
		for(i=0;i<T;i++){
			 n[i]=sc.nextInt();
			//System.out.println(T+" "+i);	
		 }
		for(i=0;T>0;T--){
			System.out.println("Case #"+(i+1)+":"+" "+(n[i]+1)+" "+1+" "+(n[i]+1)+" "+1+" "+1+" "+1);
//System.out.println("Case #"+(i+1)+":"+" "+n[i]+" "+0+" "+n[i]+" "+0+" "+0+" "+0);也可以
			i++;
		}
	}
}

在博客https://blog.csdn.net/qq_40507857/article/details/84167206看到其他的思路还有n,0,n^1,1,1,1

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值