摘要:
Solution emmm……差分约束裸题。注意收入额有正有负,所以不要像我一样自作聪明连0边。。。 还有,多组数据不清空,OI爆零见祖宗。。。 Code #include<bits/stdc++.h> using namespace std; const int N=105,M=1005; inl 阅读全文
摘要:
Solution 由于上一题才做了一道二分图最大匹配的裸题,所以看到这一题就感觉很像二分图最大匹配。 显然白点不用管,因为不可能有任何贡献。但是行列交换咋整?正向思考受阻,别慌,这题只是判定性问题,我们反向思考。 假设已经有了一个主对角线都为黑点的矩阵,我们忽略掉矩阵中除主对角线上黑点以外的点,考虑 阅读全文
摘要:
Solution 裸的二分图最大匹配,不用多说。 《论不认真读题的后果》。。。注意一但匹配失败就要break。。。 Code #include<bits/stdc++.h> using namespace std; const int N=1005; inline int read(){ int x 阅读全文
摘要:
Solution 开始以为是贪心,想了1h想不出来正确的贪心策略。无奈看题解,发现是个很水的DP!!! 这告诉我思路一错是多么恐怖。。。 代码挺巧妙的,要滚动数组优化及记每层的maxl值。 Code #include<bits/stdc++.h> using namespace std; const 阅读全文
摘要:
Solution 有点意思的思维题。 首先考虑到一个满足b是中位数的子序列中大于b和小于b的数字的个数一定是相等的。 设b在排列中的位置为p,可以对于每一个在p左边的位置i求出序列[i,p-1]中小于b的个数和大于b的个数,记为cnt1和cnt2;同理对于每一个在p右边的位置j求出序列[p+1,j] 阅读全文
摘要:
Solution 水题。二进制拆分即可。 Code #include<bits/stdc++.h> using namespace std; int m,ans; int main(){ cin>>m; int s=1; while(m>=s){ ++ans; m-=s; s<<=1; } if(m 阅读全文