7-6 贪心算法(田忌赛马)
分数 10
全屏浏览题目
切换布局
作者 李曲
单位 浙江工业大学
年轻的统治者Mirko宣布自己为矮人之王, 听到这个消息,Slavko感到受到了威胁,并很快宣布自己为精灵之王! 由于这片土地上只有一个国王,他们决定一劳永逸地解决权力问题。
Slavko将和王国的N个最强的精灵一起,用数字1到N标记,去参观Mirko的城堡。在城堡大厅里,迎接他们的将是N个最强的矮人,他们围坐成一圈,按顺时针方向用从1到N的数字标记。
Mirko一进入城堡,就给Slavko的每个精灵一个数字Ai——这是它要对抗的矮人的标签。
不幸的是,他没有确保每个精灵都有一个独特的对手,很快就爆发了一场可怕的战斗。
他们决定用下列方法解决这个问题:
- Slavko会按照他选择的顺序,将他的精灵们一个接一个地送到大厅。下一个精灵只有在前一个找到座位后才能进入大厅。
- 标记为k的精灵将首先接近标记为Ak的矮人。如果矮人旁边没有精灵,他将坐在那里。否则,他将继续行走,从一个矮人到另一个矮人,顺时针,直到他发现一个无人认领的矮人
现在由N对精灵和矮人组成的掰手腕比赛中,强壮的一方总是获胜。
Slavko为这次活动做了充分的准备。他研究了所有的战士,确定了每个人的力量。现在他想把精灵们派到大厅,在他们都坐下之后,他们将为他带来最多的胜利。
帮助他并计算出精灵在决斗中所能取得的最高胜利数!
输入格式:
输入第一行为整数N(1≤N≤5⋅105)
第二行输入包含N个整数Ai(1≤Ai≤N),是Mirko选择的对手。
第三行输入包含N个整数Pi(1≤Pi≤109),即矮人的力量。
第四行输入包含N个整数Vi(1≤Vi≤109),精灵的强项。
所有输入的力量都是相互不同的。
输出格式:
第一行也是唯一一行必须包含精灵所能取得的最大胜利数。
得分:
在占总分40的测试用例中,Mirko将选择标记为1 (Ai=1每个i从1到N)都是精灵决斗中的对手
输入样例1:
3
2 3 3
4 1 10
2 7 3
输出样例1:
2
输入样例2:
4
3 1 3 3
5 8 7 10
4 1 2 6
输出样例2:
1
输入样例3:
3
1 2 3
8 4 3
9 2 6
输出样例3:
2