思路: 因为输掉的数字会放到最后面,那么以后肯定不能回到最前面来,所以直接不管。 维护当前胜利数字对应指针,与下一个要比较数字的指针,然后维护胜利数字与胜利回合就好了。如果比较完一轮都没有k,那肯定是最大数字最后获胜。 class Solution {public:int getWinner(vector<int>& arr, int k) {int n = arr.size();int
题意 给定一个 n n n个点 m m m条边的无向图,给每一条边定向,使得存在一个点,1号点和2号点能同时到达,求边定向的方案数。 n ≤ 15 n\le 15 n≤15 题解 暴力做法就是枚举每条边的方向,判断1号点和2号点能走到的点集是否有交集。 发现有交集是不好直接计数的,考虑容斥:总方案数减去无交集的方案数。于是预处理出1号点和2号点分别能到达极大的每个集合的方案数,枚举它们到达