华东师范大学2018.11月赛【EOJ Monthly 2018.11】

【EOJ Monthly 2018.11】

A. 心与心的距离

Time limit per test: 2.0 seconds

Memory limit: 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 这六个变量。

Input

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

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

Output

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

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

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

Examples

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

Note

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

A题 【脑洞】

动动脑子,很容易构造出:n,0,n,0,0,0,或者:n,0,n^1,1,1,1或者类似的形式

#include<stdio.h>
#include<iostream>
#include<string.h>
#include<queue>
#include<cstdio>
#include<string>
#include<math.h>
#include<algorithm>
#include<map>
#include<set>
#include<stack>
#define mod 998244353
#define INF 0x3f3f3f3f
#define eps 1e-5
#define LL long long
using namespace std;
const int maxn=1e6;
int main(){
    int T;
    scanf("%d",&T);
    int ca=1;
    while(T--){
        LL n;
        scanf("%lld",&n);
        printf("Case #%d: ",ca++);
        printf("%lld 0 %lld 0 0 0\n",n,n);
    }
}

B. 转机折扣

Time limit per test: 2.0 seconds

Memory limit: 512 MB

你女朋友最近又不理你了。这一定是因为你上个月没有去浦东看她。异地恋实在是太辛苦了,浦西到浦东的距离,对于你来说,就像是上海到北京的距离。

曾有诗这样写道:

世上最遥远的距离,不是生与死的距离,不是天各一方,而是我就站在你面前,你却不知道我爱你。

你决定乘坐航班从虹桥飞往浦东,希望能挽回你女朋友的心。

众所周知,虹桥没有直飞浦东的航班,你需要找一个机场转机。虽然你不在乎这个经济成本,但是,幸运的是,为了庆祝双十一,航空公司推出了一个活动,若你从机场 A 乘坐航班飞往机场 B,机场 B 接着飞往机场 C,且机场 B 的字典序在机场 A 和机场 C 之间的,可以享受 9 折优惠。

所有机场的名字长度都是相等的。

一句话题意:给出等长的两个字符串 s 和 t,要求一个与他们等长的字符串字典序比其中一个大,但比另外一个小。

Input

输入两行两个等长的非空字符串 s, t。长度不超过 105,由英文大写字母组成。

输入保证有解。

Output

输出一个与输入的字符串等长的字符串,也由英文大写字母组成。如果有多解,输出任意一解。

Examples

input

SHA
PVG

output

PZI

input

ZSPD
ZSSS

output

ZSQD

Note

据考证,「世上最遥远的距离,不是生与死的距离,不是天各一方,而是我就站在你面前,你却不知道我爱你」这句诗并非如大多数人所言,出自泰戈尔的《飞鸟集》,而极有可能出自香港女作家张小娴的手笔。在《荷包里的单人床》的再版序中,张小娴有详细的说明。

这部小说是我在一九九七年五月完成的。这是一个关于暗恋的故事。女主角苏盈苦苦地暗恋着秦云生。云生虽然最后接受了她,但他心里思念的,他最爱的,始终是一个逝去的情人。苏盈伤心地说:「世上最遥远的距离,不是生与死的距离,不是天各一方,而是我就站在你面前,你却不知道我爱你。」
最遥远的距离,是你心里没有我。
去年,我收到两封电子邮件,那两个女孩子说:「世上最遥远的距离……这一句,原来不是你写的,是印度诗人泰戈尔写的。」我看了觉得很奇怪,明明是我写的,为什么会变成泰戈尔的诗?
今年二月,我去了台湾一趟,这才知道「世上最遥远的距离……」这段文字去年十二月在台湾很流行,一群阳明山医学院的医科生把我的句子延续下去,写了一首很有趣的诗,当在台湾的 BBS 网络上。自此以后,看到这段文字的人愈来愈多;于是有人流传,这其实是出自泰戈尔的《飞鸟集》。
许多广告用了这段文字,电视问答游戏的主持人也问参加者「泰戈尔说,世上最遥远的距离……下一句什么?」一位知名女作家在接受访问时,也叹息:「泰戈尔说,世上最遥远的距离……」她并且把这段文字收到她自己的书里。
别人都以为我是抄泰戈尔,只有我和我的出版社知道我没有抄,这真是世上最遥远的距离。
幸好,后来有一位喜欢我书的台湾读者到图书馆翻查了所有的泰戈尔的书,证实泰戈尔从来没有写过这么一首诗。这位读者在 BBS 网络上替我平反了。
这段文字在台湾忽然闹得热烘烘,引起那么多的共鸣,也许是因为我们或多或少都暗恋过别人,也被人暗恋过吧?
不曾苦苦暗恋过的人,不会理解暗恋的苍凉。总会有人自豪地说:「我从来没有暗恋过别人!」我们太知道了,暗恋是卑微的,我们不敢承认。因此,我也会说,我从来没有暗恋过别人。

以上内容摘自百度百科。

B题【模拟】

把数当成26进制整数,就会发现把小的那个数加1即可,要注意最后是Z的时候,要将当前为变成A,然后将下一位+1

比如说,S,T=S+2,那么答案是S+1,送大家一组样例debug

输入

ABZ

ACB

输出

ACA

这道题和CodeForces - 518A Vitaly and Strings 相似,

#include<stdio.h>
#include<iostream>
#include<string.h>
#include<queue>
#include<cstdio>
#include<string>
#include<math.h>
#include<algorithm>
#include<map>
#include<set>
#include<stack>
#define mod 998244353
#define INF 0x3f3f3f3f
#define eps 1e-5
#define long long LL
using namespace std;
const int maxn=1e6+10;
int main(){
    string s,t;
    cin>>s>>t;
    if(s>t) swap(s,t);
    int len=s.length();
    string m=s;
    bool flag=false;
    for(int i=len-1;i>=0;i--){
       if(m[i]=='Z')
       m[i]='A';
       else{
        m[i]++;
        break;
       }
    }
    cout<<m<<endl;
}

猜你喜欢

转载自blog.csdn.net/qq_40507857/article/details/84167206
今日推荐