[GESP202403 六级] 好斗的牛

GESP编程共123题,本题是整站第1405题,已经有人完成了本题,加油!

题目描述

你有 10^9 个牛棚,从左到右一字排开。你希望把 n 头牛安置到牛棚里。麻烦的是,你的牛很好斗,如果他们附近有其他的牛,他们就会不安分地去挑事。其中,第 i 头牛的攻击范围是 (ai​,bi​),这意味着,如果他的左边 ai​ 个牛棚或者右边 bi​ 个牛棚有其他牛,它就会去挑事。

你想留下一段连续的牛棚,并把其他牛棚都卖掉。请问您最少需要留下多少牛棚,才能保证至少存在一种方案能够把所有的 n 头牛都安置进剩余的牛棚里,且没有牛会挑事?

输入格式

第一行一个正整数 n。
第二行 n 个正整数 a1​,a2​,…an​。
第三行 n 个正整数 b1​,b2​,…bn​。

输出格式

输出一行一个整数表示答案。

输入输出样例

输入 #1

2
1 2
1 2

输出 #1

4

输入 #2

3
1 2 3
3 2 1

输出 #2

7

说明/提示

样例 1 解释

留下第 1、2、3、4 个牛棚,并在第 1、4 两个牛棚分别放下两头牛。

数据规模与约定

别灰心,再试一次!

真题解析

【题目大意】把N头牛排成一排,每头牛都会在一个牛棚里,且每头牛的左手边和右手边都要求有一定数量的空牛棚。问把牛排成一排所需要的最少的牛棚个数。

【考纲知识点】枚举法,全排列

【解题思路】本题目数据范围极小(N<=9),所以可以考虑最为朴素的全排列枚举牛从左到右的排列次序。

对于每个次序,从左到右依次枚举每一对相邻奶牛之间需要的牛棚个数。

第i头奶牛和第i+1头奶牛之间所需要的牛棚个数为max(b[i], a[i+1])。

把这些数加起来,再加上奶牛自身所需要的总牛棚个数N即为答案。

【参考程序】

本站题目仅供学习,GESP版权归CCF所有,如有侵权请联系删除。站长陈老师QQ及微信:208234。