我又双叒叕被包菜辣!

P4613 [COCI2017-2018#5] Olivander

首先,不知道为什么这题无法提交翻译;

所以,我先放个翻译:

哈利波特在与伏地魔的战斗中损坏了他的魔杖。他决定在奥利凡德的魔杖店买一根新的
魔杖。在商店的地板上,他看到了n根魔杖和n个魔杖盒。魔杖的长度分别是,x1,x2,
…,xn,盒子的尺寸是y1,y2,….y.如果x≤y,可以将x长度的魔杖放在y尺寸的盒子中。
哈利想知道他是否能把所有的魔杖都放在盒子里,这样每个盒子里只有一根魔杖。
帮助他解决这个难题。如果可以放入即输出“DA”,否则输出“NE”;

我先讲一下这道题的正解,先把魔杖的长度和盒子的长度按从大到小排序,然后依次对比每个魔杖的长度和盒子的长度,如果Rep(1, n)中存在x[i] > y[i]那么就无法成功装入。先上代码,讲解在后面(如果只是为了抄代码的就不用往后翻了:

#include<bits/stdc++.h>
using namespace std; #define maxn 110//数据很小,空间很大,你想开多大就多大(划掉
int n, x[maxn], y[maxn];//x[i]和y[i]都如题,分别是魔杖的长度和盒子的长度 bool cmp(int a, int b)//排序用的cmp,从大到小。
{
return a > b;
} int main()
{
scanf("%d", &n);//个数
for(int i = 1; i <= n; ++ i)
scanf("%d", &x[i]);//魔杖的长度
for(int i = 1; i <= n; ++ i)
scanf("%d", &y[i]);//盒子的长度
sort(x + 1, x + n + 1, cmp);//从大到小排序,其实也可以从小到大,在后面逆序一下就行了,只有保证有序即可
sort(y + 1, y + n + 1, cmp);//同上
for(int i = 1; i <= n; ++ i)
if(y[i] < x[i])//存在魔杖的长度比盒子的长度要大
{
printf("NE");//输出
return 0;
}
printf("DA");//输出
return 0;
}

然后,开始分析这道题(好水:

我们试想一下,如果存在x[k]比y[k]要大,那么我没会发生什么?

设k前面有只有一个数

x[] : 10 8

y[] : 11 7

很明显在k这一组,y[k]不可能装下x[k],

又因为我们已经排好序了,所以在y[k]后面的一点不可能比y[k]大。

那么只可能是y[k],比如说y[m],前面的来装x[k],如果前面的来装x[k]了;

那么y[m]怎么办?x[k]肯定装不了,继续往前?那第一个怎么办?

所以,证毕。

PS:请看懂再抄

洛谷 题解 P4613 【[COCI2017-2018#5] Olivander】的更多相关文章

  1. 洛谷 题解 P1600 【天天爱跑步】 (NOIP2016)

    必须得说,这是一道难题(尤其对于我这样普及组205分的蒟蒻) 提交结果(NOIP2016 天天爱跑步): OJ名 编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间 Libre ...

  2. 洛谷 题解 UVA572 【油田 Oil Deposits】

    这是我在洛谷上的第一篇题解!!!!!!!! 这个其实很简单的 我是一只卡在了结束条件这里所以一直听取WA声一片,详细解释代码里见 #include<iostream> #include&l ...

  3. 题解 P4613 【[COCI2017-2018#5] Olivander】

    话说这道题,作为一个哈迷,是不能错过的 我很惊讶本蒟蒻竟然看得懂题面 好了,闲话少说,这道题,虽说是入门难度,但凭着良心说,它还是一道普及 - 的吧 看到标签,“高性能”,大脑的第一反应是快读. 是不 ...

  4. 洛谷题解P4314CPU监控--线段树

    题目链接 https://www.luogu.org/problemnew/show/P4314 https://www.lydsy.com/JudgeOnline/problem.php?id=30 ...

  5. 洛谷题解 CF777A 【Shell Game】

    同步题解 题目翻译(可能有童鞋没读懂题面上的翻译) 给你三张牌0,1,2. 最初选一张,然后依次进行n次交换,交换规则为:中间一张和左边的一张,中间一张和右边一张,中间一张和左边一张...... 最后 ...

  6. 洛谷题解 CF807A 【Is it rated?】

    同步题解 题目 好吧,来说说思路: 1.先读入啦~(≧▽≦)/~啦啦啦 2.判断a[i]赛前赛后是否同分数,如果分数不同,则输出,return 0 . 3.如果同分数,则判断a[i]赛前(或赛后)是否 ...

  7. 洛谷题解 P1138 【第k小整数】

    蒟蒻发题解了 说明:此题我用的方法为桶排(我翻了翻有人用了桶排只不过很难看出来,可能有些重复的,这个题只是作为一个专门的桶排来讲解吧) (不会算抄袭吧 ‘QWaWQ’) 简单来说(会的人跳过就行): ...

  8. 【洛谷题解】P2303 [SDOi2012]Longge的问题

    题目传送门:链接. 能自己推出正确的式子的感觉真的很好! 题意简述: 求\(\sum_{i=1}^{n}gcd(i,n)\).\(n\leq 2^{32}\). 题解: 我们开始化简式子: \(\su ...

  9. 洛谷题解 P2865 【[USACO06NOV]路障Roadblocks】

    链接:https://www.luogu.org/problemnew/show/P2865 题目描述 Bessie has moved to a small farm and sometimes e ...

随机推荐

  1. C 总结 | 复习注意点

    1.1 C预处理 常见错误 预处理错误 #include "" 和 <> 使用错误 "No such....." 更改“” 或者<> 或 ...

  2. 创建python的虚拟环境

    为什么需要虚拟环境?如果你现在用Django 1.10.x写了个网站,然后你的领导跟你说,之前有一个旧项目是用Django 0.9开发的,让你来维护,但是Django 1.10不再兼容Django 0 ...

  3. MySQL每个分类的前几条记录

    MySQL 获取所有分类和每个分类的前几条记录 比如有文章表 Article(Id,Category,InsertDate) 现在要用SQL找出每种类型中时间最新的前N个数据组成的集合 SELECT ...

  4. node.js和ionic

    1.安装node.js node -v  检测node文件是否安装成功 node --version  检查node版本号 2.Npm   node package manager 管理工具  管理模 ...

  5. C语言|博客作业05

    这个作业属于哪个课程 C语言程序设计II 这个作业的要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/9825 我在这个课程的 ...

  6. web服务,ftp服务以及共享实现

    在开始服务前一定要确保可以ping通外网,在虚拟机联网但ping 不通外网下 确认vim /etc/sysconfig/network-scripts/ifcfg-ens33 (nmcli conne ...

  7. PostGIS mysql_fdw安装(Linux)

    ##本人在安装过程中,可能因为系统环境因素或是其他原因,参考网上的文章没有一篇是非常顺利的,所以自己总结一下. ##安装过程中非常坎坷,有些地方反复了好几次,弄的有点模糊,但模糊的地方在文中我会指出. ...

  8. 预训练语言模型整理(ELMo/GPT/BERT...)

    目录 简介 预训练任务简介 自回归语言模型 自编码语言模型 预训练模型的简介与对比 ELMo 细节 ELMo的下游使用 GPT/GPT2 GPT 细节 微调 GPT2 优缺点 BERT BERT的预训 ...

  9. MySQL数据每日备份

    1.window下通过命令方式 @echo offset "Ymd=%date:~,4%-%date:~5,2%-%date:~8,2%%time:~0,2%%time:~3,2%" ...

  10. 根据json数据中某一个属性 处理数组重组的方法 (二种)

    需求:根据role 的不同分组 渲染页面 进行后期操作 后台返回数据:   因为后台返回的json数据不是我们想要的 所以就得自己来了~  要啥样整啥样 js: 第一种处理方法 使用方法: 1: th ...