这里提供二分图染色的解法 两个数 i,j(i≤j)i,j(i≤j) 不能被放入同一个栈中,当且仅当存在 k,k>jk,k>j, 且 q[k]<q[i]<q[j]q[k]<q[i]<q[j]。 有了上述性质后,我们只需将所有满足条件的点分到两个栈中去即可。这一步可以转化成图论问题:如果i, j满足条件,则在i和j之间连一条边。然后判断是否是二分图即可。 复杂度是 #include <bits/stdc++.h> using namespace std; #define pb push_back #define mp(aa,bb) make_p...