/* 首先考虑从后往前计算lis,显然0的在很多情况下的贡献要大于1 如果遇上0,那么lis++,如果遇上1,那么cnt1++,并且用cnt1更新lis 这样的贪心保证正确,因为从[i,j]这一段的lis必定是前一段0,后一段1这样的构成,当前面多了个0时,显然lis+1 当前面多了个1时当且仅当区间1的个数大于lis,才能让lis+1, 因此当且仅当后缀[i,n]中1的个数大于lis时,对于所有区间[i,j],这个1的作用才等价于1,可以替换 */ #include<bits/stdc++.h…