Problem Description
题目大意:给定一个 n n n维立方体,共有 2 n 2^n 2n个节点。如果在立方体上两个节点相连,那么要求两个点的二进制表示有且仅有一位不同。现在要求你构造一个 2 n 2^n 2n长度的 01 01 01序列,表示每个点的颜色。要求每个点相邻的点中和这个点颜色相同的点的数目不超过 ⌈ n ⌉ \lceil{\sqrt{n}}\rceil ⌈n ⌉个。
首先分析每个点相邻点的情况:
我们可以得出规律,要是得构造的立方体定点分配满足题意,需要使得每个被染为 0 0 0和 0 0 0之间没有边,每个被染为 1 1 1和 1 1 1之间没有边。对应到二进制的表示中去找规律:二进制表示中偶数个 1 1 1的填 0 0 0,奇数个 1 1 1填 1 1 1或者反过来亦可。
按照这个规律,不停的翻转 0 0 0和 1 1 1构造即可。
#include
#define int long long
using namespace std;
const int N = 50000010;
char s[N];
signed main(){
ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
int n = 0; cin >> n;
s[0] = '0';
for(int i = 1; i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?