如果n为偶数 左边等于右边 左边为0, 右边选择偶数个1 C(n, 0) + c(n, 2) + ... + C(n, n - 2) = 2^(n - 1) - 1(全选就是左边大于右边) 左边大于右边 固定前i - 1个数相等,第i个数为1 否则 考虑为0或者为1 讨论的过程中只要不重不漏就行了。至于讨论什么对象,哪个方便就讨论哪个
如果n为偶数 左边等于右边 左边为0, 右边选择偶数个1 C(n, 0) + c(n, 2) + ... + C(n, n - 2) = 2^(n - 1) - 1(全选就是左边大于右边) 左边大于右边 固定前i - 1个数相等,第i个数为1 否则 考虑为0或者为1 讨论的过程中只要不重不漏就行了。至于讨论什么对象,哪个方便就讨论哪个
上一篇:C. Make Good
从C向C++13——模板
https://codeforces.com/problemset/problem/1557/C
C. Moamen an
非常巧妙的做法碰到这种题别想着硬来一个一个构造,多往异或性质上想一想对于n>=3的情况对于n>=3的情况对于n>=3的情况首先把[1,n−3]全都选上去,设异或和是y首先把[1,n-3]全都选上去,设异或和是y首先把[1,n−3]全都选上去,设异或和是y现在我们构造了n−3个数,还剩三个数设为a,b,c现在我们构造了n-3个数,还剩三个数设为a,b,c现在我们构造了n−3个数,还剩三个数设为a,b,c由于最后异或和要变成x由于最后异或和要变成x由于最后异或和要变成x也就是y⊕a
举报文章
请选择举报类型
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M