题解 P6161 【[Cnoi2020]高维】
Rubidium_Chloride · · 题解
谔谔谔这题是数学+构造题。
进博客看效果更好呦!
进入正题:
1.题目大义
有一个长为
2.分析
看到样例和SPJ第一问应该就出来了吧……
对于
对于这种情况,本蒟蒻就猜想,是不是对于每一个
3.证明
3.1 先证对于每一个n ,n 维空间中最多n 条不相交路径
……
4.CODE
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll k[69]={1},n;//n<=60,所以要开long long
inline int read(){//快读提高速度
register int x=0;char ch=getchar();
while(ch>='0'&&ch<='9'){x=(x<<3)+(x<<1)+ch-'0';ch=getchar();}
return x;
}
int main(){
n=read();
printf("%lld",n);//由3.证明,直接输出n即可
for(register int i=1;i<=n-1;i++) k[i]=k[i-1]<<1;//预计算2的幂次,为下面压缩2进制数做准备
for(register int i=0;i<=n-1;i++){
printf("\n0");//有特殊的输入要求就按题目说的来,行末无空格
for(register ll j=0,m=0;j<=n-1;j++){
m+=k[(i+j)%n];printf(" %lld",m);//同Line15,千万不能忘了mod n,否则RE
}
}
return 0;
}//皆大欢喜
~END~(祝大家看得开心,有意见可以提出来