| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 洛谷上的 AtCoder 水(难)题(C++)【第一到五题】 -> 正文阅读 |
|
[数据结构与算法]洛谷上的 AtCoder 水(难)题(C++)【第一到五题】 |
前言:蒟蒻尹:啊啊啊~~要疯啦!? 为了不让我们玩得太high,我们的教练给我们布置了30题的AtCoder经典题当作业,还要写10篇题解。。。 可事实上。。。教练我们还有寒假作业啊 QAQ 555~~ 这次我选了五道题来做讲解,后面会再出五道题; 这次讲解为了方便理解,我把一些题面改得通俗了一点, 好了废话不多说,开始奋斗吧>o< 第一题:おいしいたこ焼きの売り方 - 洛谷题目描述: 高桥烦恼着怎样按顺序卖章鱼烧。因为知道做了的章鱼烧不好吃,所以高桥不想卖那样的章鱼烧,但是只卖刚做好的话,卖的章鱼烧的数量减少了。 另外,高桥君认为,光让客人等的话,客人会逐渐离开的。 于是,他就把在T秒内制作的章鱼烧继续卖下去,就决定调查客人是否能卖掉。 章鱼烧是A1、A2、…、AN秒后开始烤。 客人是B1、B2、…、在BM秒后来。 对于一个客人,卖一个章鱼烧。如果所有的客人都卖章鱼烧的话,请输出yes,如果卖不出去的话,请输出no。 输入输出格式 输入格式: 第一行输入一个?TT?代表章鱼烧的保质期,也就是说章鱼烧放置的超过?t秒就算过期,不能卖了。 第二行输入一个?nn?代表章鱼烧的数量。 第三行输入从?到??的?n个正整数,代表每个章鱼烧做出来的时间。 第四行输入一个?m?代表客人的数量。 第五行输入从???到?的?m?个正整数,表示每个客人来的时间。 输出格式: 如果所有的客人都会卖章鱼烧的话,请输出yes,如果卖不出去的话,请输出no。 另外,请在输出的末尾加入换行。 说明: Sample Explanation 1 -每一个客人都买了一秒前做成的章鱼烧,可以给所有的客人卖章鱼烧。 Sample Explanation 2 -不能卖给最后的客人章鱼烧。 Sample Explanation 3 -高桥君的章鱼烧店很受欢迎。 Sample Explanation 4 -让第三位客人久等了。 输入输出样例: 样例1 输入:
输出:
样例2 输入:
输出:
思路:这道题我们可以暴力枚举。 Code:
第二题:3Match - 洛谷题目描述有?H行 W列的矩阵,每一个矩阵都有一个数字填充。我们需要找出连续的横着?3?个及以上或竖着?3个及以上的,由同一数字构成的长方形,如图: 但是,这有可能会连通。那么,这些连通的只会变成一个。如图: 需要求出长方形的个数(连通的只算一个) 输入格式第一行两个正整数?NN?和?MM。 第二行到第?N + 1N+1?行,每一行?MM?个由?00?到?99?的数,没有空格。 输出格式一个正整数,表示长方形的个数(连通的只算一个) 输入输出样例样例?1 输入:
输出:
如下图,有?3个长方形。 样例?2 输入:
输出:
如下图,由于连通,所以只输出?1个。 思路:这道题用dfs,在做之前不妨用一个数组打上标记。 Code:
?第三题:[ABC132C] Divide the Problems - 洛谷题目描述 高桥在竞争性编程中提出了?NN?个问题,问题编号为?1至?n,问题?i的难度表示为整数(越高难度越大)。 他通过选择整数?k将问题分为两类,如下所示:
整数?KK?有多少种选择可以使?ARC?的问题数和?ABC?的问题数相同? 输入输出样例 样例1 输入:
输出:
样例2 输入:
输出:
思路:这道题很具有迷惑性,第一眼看上去,要用模拟,可是模拟铁T啊,肿么办捏?其实这是一道智商题;常规模拟是过不了的因此要智取。这道题中的N必为偶数,所以我们可以排序,发现在到之间的值都满足使?ARC?的问题数和?ABC?的问题数相同的条件,然后用的权值减去的权值就可以了,是不是非常的睿智捏? Code:
第四题[ABC131D] Megalomania - 洛谷:题目描述 N?个任务,完成一个任务需要?秒,需要在?秒前内完成(可以压线完成,即完成的时间正好是?)。问是否能完成全部任务,如果能,输出?Yes?,否则输出?No?。 样例1: 输入:
输出:
样例2: 输入:
输出:
思路:此题可以开结构体,分为两个元素:需要的时间,和限制的时间; Code:
第五题:[AGC034B] ABC - 洛谷(你没看错,此题就叫ABC)题目描述: 您将得到一个由 A,B 和 C 组成的字符串 s。 Snuke 希望在 s 上执行多次以下操作: 选择一个连续的 s 的子字符串,该字符串是? 找到最大可能的操作数。 样例1: 输入:
输出:
样例2: 输入:
输出:
思路:此题看上去只能暴力,我已开始也是这么做的(此代码特别好懂,我就不写注释了~偷懒):
为了防止TLE我还花20分钟做了优化,保险起见还开了O2,结果。。。 ?我。。。555~~ 于是我们可以从题目入手:操作后将“ABC”变为“BCA”,我们可以发现,操作后"BC"两个字母还是连着的,而光有连续的"BC",两个字母是不够的,我们要提供可操作的“ABC”,主要还是要看“可供”操作的‘A’的个数。于是我们可以利用这些特性,写出一下的代码: Code:
如果还是看不懂的话,大家可以结合一下样例2自行理解一下: ABCACCBABCBCAABCB 循环过程: 后记:这次真的是熬夜在写文章啊,代码写的不好,请多指教Orz~~ Oh,最后,千万别忘了——? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 18:45:23- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |