不知道说些什么

昨天学会了KMP,trie,AC自动机。好兴奋,又可以刷一波题啦。。

还是先把我出的题题解发一下吧,

T 1 圆排列

题目背景

第一题总是不会太难的

题目描述

小学奥数班要召开会议,但是只有一个桌子。小学生们啊,就是不愿意别人说自己矮。于是他们找到了正在上高中的你来帮助他们

有N个学生顺时针围在一圆桌上开会,他们对身高很敏感。 因此决定想使得任意相邻的两人的身高差距最大值最小。 如果答案不唯一,输出字典序最小的排列,指的是身高的排列。

输入输出格式

输入格式:

第一行:一个整数ng, 1 <= ng <= 5. 表示有ng组测试数据。

每组测试数据格式如下:

第一行: 一个整数N, 3 <= N <= 50

第二行, 有个N整数,  第i个整数表示第i个人的身高hi, 1<=hi<=1000。 按顺指针给出N个人的身高, 空格分开。

输出格式:

字典序最小的身高序列,同时满足相邻的两人的身高差距最大值最小。

n行,每行对应一组输入数据。

输入输出样例

输入样例#1:

2
5
1 3 4 5 7
4
1 2 3 4

输出样例#1:

1 3 5 7 4
1 2 4 3

个人觉得是一个很好的贪心,我做这道题的时候,一开始想到二分加贪心验证构造最小字典序。(此方法完全可行)但是仔细想想,直接贪心求最小间隔不就可以吗。具体思路,先将输入排序1 3 4 5 7然后把最小的放在中间       1第二小的往右放            1 3   想象此时l=1,r=3然后把第三小的往左放,为什么这样优呢?因为如果往左放得到的l,r为4,3,否则为1,4,明显前者更优然后把minn求出来之后,贪心求最小字典序即可

#include <bits/stdc++.h>
using namespace std;
  
int a[200];
int b[200];
int main()
{
    int ng;
    scanf("%d",&ng);
    while(ng--){
        int n;
        scanf("%d",&n);
        for(int i=1;i<=n;i++)scanf("%d",&a[i]);
        sort(a+1,a+n+1);
        int l=a[1],r=a[1];
        int minn=0;
        for(int i=2;i<=n;i++){
            if(l>r)minn=max(minn,a[i]-r),r=a[i];
            else minn=max(minn,a[i]-l),l=a[i];
        }
        b[100]=a[1];
        int head=100,tail=100;
        l=r=a[1];
        for(int i=2;i<=n;i++){
            if(a[i+1]-l<=minn)b[++tail]=a[i];
            else b[--head]=a[i],l=a[i];
        }
        for(int i=100;i<=tail;i++)printf("%d ",b[i]);
        for(int i=head;i<100;i++)printf("%d ",b[i]);
        if(ng!=0)printf("\n");
    }
    return 0;
}

T 2

删数

(同bzojCow Lineup

T 3

题目背景

Amphetamine挑战Alphago

但是这种事,他们不屑于干,于是就找到了大名鼎鼎的Farmer John来代替他们

题目描述

这个游戏上在一个无限大的棋盘上, 棋盘上只有一颗棋子(x,y)(0<=x)

棋盘的左下角是(0,0)

Amphetamine每次都是第一个移动棋子,然后Amphetamine与Alphago轮流移动。每一轮可以做以下三种中的一种操作:

1)将棋子从当前位置向左移动任意格;

2)将棋子从当前位置向下移动任意格;

3)将棋子从当前位置向下移动k格再向左移动k格(k为任意正整数,且要满足移动后的棋子仍然在棋盘上)

第一个不能在棋盘上移动的人比赛算输(因为棋子处在(0,0)点)。

共有T个回合(1<=T<=1,000),每次给出一个新起始点的坐标(x,y),确定是谁赢。

输入输出格式

输入格式:

第1行:两个用空格隔开的整数M和N;

第2行:一个整数T;

第3到第T+2行:两个用空格隔开的整数x和y.

输出格式:

第1到T行:包含“Farmer John”或者是“Bessie”,表示谁赢了这轮游戏。

输入输出样例

输入样例#1:

1
1 1

输出样例#1:

Bessie

说明

对于100% 的数据x在int范围内T<=1000

30%的数据 x,y<=1000

60%的数据 x,y<=100000

威佐夫博弈不多说

170B超短代码

#include<ios>
main(){int x,y;scanf("%d");while(scanf("%d%d",&x,&y)==2){if(x>y)x^=y,y^=x,x^=y;printf(x==int(1.618033989*(y-x))?"Alphago\n":"Amphetamine\n");}}

时间: 2024-08-17 12:37:35

不知道说些什么的相关文章

可是,刘琛不知道,如果换个人,第一次喝酒

董玉清心里想着,强烈的征服欲充斥着大脑. “你怎么会将书本放在了老师的办公室啊?”刘琛一时不知道说些什么,胡乱的问道. 董玉清心里想着,强烈的征服欲充斥着大脑. 李洋看着刘琛的背影,刘琛给他的感觉变了,变得捉摸不透.他快要疯了,怎么会,刘琛考试的时候,每一秒都是在汪征的眼底下度过的,没有可能作弊的.还好心不能真的碎掉,不然的话,估计刘琛就真的没救了.两人就这样走着朝着学校走去.” “我也不知道,据说是十五班的学生一个个都疯了一样,没命的学习. “刘琛,你说你是怎么作弊的. “好,放这里吧!” “

调试信息的完成

gdb中-x是为了实现通过文件的初始化gdb GAS(gcc)(AT&T 语法),NASM(Intel 语法) 当boot loader 引导操作系统的时候,机器必须有如下的状态: EAX: 必须包含魔数OX2BADB002,这个值告诉操作系统目前它是由兼容的Multiboot 的boot loader 引导的. EBX: 必须包含boot loader 提供的多重引导信息结构(见3.3 节多重信息引导结构)的32位物理地址. CS: 必须是32 位的读/执行的代码段,偏移是0 以及界限是 0X

创业一年半的失败总结,什么样的团队能够创业成功

继一年前的创业半年的总结之后,创业一年半的“失败”总结也新鲜出炉了.还是一样的配方.还是一样的味道.我除了失望之外,另外多了一些幸灾乐祸的情绪.不是我没心没肺,也不是我没脸没皮.当失望了一次又一次,当被无视了一次又一次,生出一些负面情绪合情合理.更何况我最讨厌的就是“热脸贴冷屁股”,我兴高采烈的提出我的想法和看法,直接被无视掉,或者点点头然后不了了之.我想要做一个成功的游戏,我努力把事情做到最好,但是我也只能把自己分内的事做到最好,因为我只是个客户端程序员,其他的事情我想管但是管不了,我想改变但

儒家新手入门书籍推荐 论语别裁

我是一个喜欢传统文化的理科生,我真诚地向喜欢儒家文化的人们推荐南怀瑾先生的论语别裁. 小的时候,我是极其反感论语的,因为呀,论语一书糊讲乱讲,一听就脑袋疼. 举个例子,学而时习之,不亦说乎?老师告诉我们:这个学完习,经常复习,是一件很高兴的事情.我当时就烦了,学习这么痛苦的事情,学了生活中也不用,还要经常复习,还高兴.什么逻辑呀. 再举个例子,有朋自远方来,不亦乐乎?老师告诉我们:这个,有好朋友从远方而来,是一件多么高兴的事情呀.这个翻译对于我这个喜欢清清静静看书,不善于交谈的人来说,就很不适于

10.19

今天开通了博客,我也不知道说些什么好.作为软件工程大二的学生狗,到现在几乎都认不全在博客里看到的有关技术方面的知识,觉得自己学的看的东西都有很大的局限性. 想要好好的学习技术,在很多时候听人说的都是这个行业工资多少多少,但我觉得还是要看能力.说起来也很好笑,到现在我还没有明确的目标,没有想自己要往哪个方面发展.浪费了很多时间. 回想起来我都不知道我大一一整年在干嘛,忙着选班干部,忙着参加学生会,忙着吃忙着玩.期末成绩不算特别优秀,勉强也是够看.然而这有什么用? 真正学到的东西少的可怜. 我要坚持

出差(八)

昨晚跟同事聊到很晚,话题是关于项目和公司团队建设方面,公司虽小,面临问题还不少,该同事也是站在一个客观的角度提出了一些存在的问题,既然选择就不轻言放弃,让我明确了当前人员管理也是重中之重. 一早室外小鸟也在召开晨会,叽叽喳喳热闹非凡,早起的鸟儿有虫吃,躺在床上还在赖床的我被小鸟的激情感染,起床开工. 今天计划在昨天基础上继续功能的开发,希望完成一个流程,同时熟悉框架.刚坐下没多久,被通知参加客户方的一个会议,涉及到跟我们系统的整合. 8点半的会议,因为人员的原因,9点才缓慢开始. 坐在一旁,听着

为自己加油,不为别人喝彩

还是先不写标题,等写完随笔的时候,标题自然就浮现出来了.学习时间的越发紧迫,需要接受的技术理念,掌握的理论基础,通晓的方法技巧,与日俱增.周末这两天花了比较多的时间来回顾和梳理前面学习的一些知识点,也学习了一些前辈对于这一行业的学习路线的真知灼见.怎么说呢,这两天的回顾,最大的收获就是很大程度上放平了自己最近这段时间以来容易浮躁的心态.通过课堂上老师讲解的3W1H学习方法进行实践,最终的效果与自己以往囫囵吞枣般的学习方式相比可以说是天差地别,个中滋味就不在此详述了. 扯了一段淡,头脑稍稍清醒了些

python 如何在一个for循环中遍历两个列表

是我在看<笨方法学python>过程中发现有一行代码看不懂——“ for sentence in snippet, phrase:”,所以研究了半天,感觉挺有收获的.所以就放在博客上分享给大家了. 直入主题: 为了不耽误大家时间,如果知道以下为两段代码为什么输出不一样的话我觉得您肯定知道我下面要说的是什么了,您就不必花时间再读下去了. 1和2两段代码的区别是print在for循环中,另外一个是不在循环中.输出的结果却截然不同,如果想要弄懂如何遍历两列表,花些时间把下面的几行代码弄懂.我要说的您

从学校走出来总想写点什么

从学校搬出来已经有一周了,今天休息,居然自己一觉起来就是10点钟,颇有在学校的味道,洗漱完毕后出去买菜,然后收拾一下开始自己的午餐,下午基本上就是玩自己的电脑,上网看电影,吃了晚饭后,其实从搬出来的第一天起,自己总想写点什么,打开word文档后却有不知道写些什么,可能是今天太闲了,哪怕是记流水账,还是想在这段适应期中记录下自己的状态. 看着本科线已经出来了,明知道今时不同往日,还是忍不住拿自己四年前的分数和这次的分数线作比较,查成绩,填志愿,新生报到一幕幕再次浮现脑海.其实我很特别,四年的大学时