关键字:“贪心”、“队列模拟”
题目描述
详情见:
LeetCode-Dota2参议院
分析
- 对于一名参议员来说,当投票时,要禁止对方参议员的权力。
- 当一方参议员全部被禁止后,另一方获胜。
要模拟这个投票过程,问题在于每个参议员如何选择其要禁止的敌对方参议员。那么,如何选择呢?
贪心:选择在自己投票后首先会进行投票的对方参议员。
如何证明这一点呢?
这里先给出几个例子,直观的认识到顺序的重要性。再对该贪心策略的正确性进行直观分析、理论证明。
几个例子
例子 | 结果 |
---|---|
“RD” | R |
“RRDDD” | R |
第一个例子说明,禁止能力的顺序对结果的影响很大,"RD"与"DR"的结果不同。
第二个例子说明,参议员个数更多(超过半数)不一定会赢得最终结果。
分析
就一轮来说,联想:类比于打牌(单升等),假设有同一花色1-13的纸牌,双方分别不放回的抽了数张,如果互相知道彼此的手牌是什么,假设双方分别用 A A A、 B B B表示,对于 A A A,其打出的手牌 c 1 c_1 c1