题解 P4613 [COCI2017-2018#5] Olivander

Posted seashellbaylor

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了题解 P4613 [COCI2017-2018#5] Olivander相关的知识,希望对你有一定的参考价值。

话说这道题,作为一个哈迷,是不能错过的

我很惊讶本蒟蒻竟然看得懂题面

好了,闲话少说,这道题,虽说是入门难度,但凭着良心说,它还是一道普及 - 的吧

看到标签,“高性能”,大脑的第一反应是快读

是不是 如雷贯耳

是不是 久仰大名

是不是仔细想想,咦?快读到底是干嘛的? 尴尬

本蒟蒻查了一下,快读就是快速读入 (从字面上来理解)

咳咳,emm…… 快读的原理就是将一个整数转化为先输入一个字符,再将其转化为整数。大家应该都知道,字符 0 的 ASCII 码是 48 ,那么,所有字符数字对应的整数是否就应该转化为它的 ACSII 码减去48 ( 即字符 ‘0‘ ) 呢?(从本义上来理解)

显然是的。

那么,具体应该怎么实现呢?

int read()//快读
    int r=0,f=1;//r为计数器,f为标志,看是正数还是负数
    char c=getchar();//先入c
    while((c<‘0‘||c>‘9‘)&&c!=‘-‘)
        c=getchar();//为别的符号时直接读入,不管它是什么
    if(c==‘-‘)//如果读入了负号,标记置-1,为后来做铺垫
        f=-1,c=getchar();
    while(c<=‘9‘&&c>=‘0‘)//正式读入数字
        r=r*10+c-‘0‘,c=getchar();//r开始增加,转化为多位数
    return r*f;//若f=1则为正数,f=-1为负数

是不是很容易理解?

还有一个知识点,就是

排序!!!

所谓排序,就是将数组按规定顺序 (从小到大或从大到小,以及其他) 排列

如果你的第一个下标为0,则排序为这样的:( 在函数库里规定为从小到大 )

sort(a,a+n);//n为元素个数

若为1,则是:

sort(a+1,a+1+n);

这里补充一下如果你要按从大到小排序应该怎样做:

//先定义自函数
int cmp(int a,int b)
    return a>b;

//再排序
sort(a+1,a+1+n,cmp);

好了,本题的知识点都讲完了。 应该是我太蒟才没发现其他知识点

下面放出完整代码:( 我没开O2也没事? 应该没事,本人亲测)

#include<cstdio>
#include<algorithm>//不要在意头文件
#define maxn 101//定义maxn的值,即a与b数组的元素最多多少个
using namespace std;//本蒟蒻总会写这个
int n,a[maxn],b[maxn],i;
int read()//快读万岁
    int r=0,f=1;
    char c=getchar();
    while((c<‘0‘||c>‘9‘)&&c!=‘-‘)
        c=getchar();
    if(c==‘-‘)
        f=-1,c=getchar();
    while(c<=‘9‘&&c>=‘0‘)
        r=r*10+c-‘0‘,c=getchar();
    return r*f;

int main()
    n=read();//在用read函数时读入方法,get一下
    for(i=1;i<=n;i++)
        a[i]=read();//同上
    for(i=1;i<=n;i++)
        b[i]=read();//同上
    sort(a+1,a+1+n);//排序 ( 我的第一个下标是1,所以这样排序 )
    sort(b+1,b+1+n);//这里也是
    for(i=1;i<=n;i++)
        if(a[i]>b[i])//如果魔杖放不下
            printf("NE");//不满足题意直接拜拜,输出"NE"
            return 0;
        
    
    printf("DA");//检查完再输出"DA"
    return 0;

OI 加油!洛谷冲鸭!

以上是关于题解 P4613 [COCI2017-2018#5] Olivander的主要内容,如果未能解决你的问题,请参考以下文章

COCI 2017-2018#7 - Go

COCI 20152016 1st round 题解(官方)

coci2018 题解

[COCI2017-2018#6] Alkemija

题解-COCI-2015Norma

P4443 [COCI2017-2018#3] Dojave(线段树)