写数学时发现的好题
给出n和l,构造一个数组,数组长度为l,满足数组中的数字在 1-n 之间
贪心的想,直接放n会发生什么。不难发现,最终的答案其实是两两异或之和
放一个n,答案就是1(l-1)n;
放一个n,答案就是2(l-2)n;
其实就是x(l-x)n;
还可以更大吗?
n写成二进制就是1001010……;有很多位是0,都浪费了
那就把这些0变成1,1变成0,变成m,放到其他地方
可以发现,n异或m是 2的x次方-1 = x
特判n等于1的时候
写数学时发现的好题
给出n和l,构造一个数组,数组长度为l,满足数组中的数字在 1-n 之间
贪心的想,直接放n会发生什么。不难发现,最终的答案其实是两两异或之和
放一个n,答案就是1(l-1)n;
放一个n,答案就是2(l-2)n;
其实就是x(l-x)n;
还可以更大吗?
n写成二进制就是1001010……;有很多位是0,都浪费了
那就把这些0变成1,1变成0,变成m,放到其他地方
可以发现,n异或m是 2的x次方-1 = x
特判n等于1的时候
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/852573.html
如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!