首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
roof专题
Codeforces 1632 B. Roof Construction —— 简单位运算
This way 题意: 你现在有一个[0,n)的排列,你要构造一个数组a使得数组的值最小,值的运算方法:max(a[i]^a[i+1])(1<=i<n) 题解: 依旧是拓展思维…那么这道题目我们想要使得答案最小,肯定要让相邻两个数的高位尽量相等呀。比如7,3,4三个数,肯定要让4和7放在一起将最高位消掉才行。 那么从最高位的方面去考虑,是否应该将最高位都是1的放在一起?那具体怎么放才能
阅读更多...
Codeforces Round#769(Div.2) B. Roof Construction
题意 给定一个0至n-1的全排列,一个排列的消耗为数字与其相邻的异或,问如何排列能使消耗最小,并给出排列。 题解 我们首先来考虑消耗最小能是多少,异或的特点是相同为0,不同为1,考虑最高位的1,无论如何放置,无法使得最高位1的附近没有最高位为0,比如说 000 ,001,010,011,100,101,110,111 我们将最高位为1的放在最左边,由于不能放最高位为0的,那我们依次从左到右区
阅读更多...