可以发现每四个数一组(档一个就会转到其余3个),一共有n*n/4组,最后的答案一定是每组有一个1.那我们就可以按字典序顺序来循环每一个位置,直接算出未填的方案数,从而来决定这一位是否填1。

#include <cstdio>
#include <cstring>
using namespace std;
#define ll long long
#define inf 0x3f3f3f3f
#define N 12
inline ll read(){ll x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();return x*f;
}
int n,bel[N][N],tot=0,cnt[N*N>>2];
ll k;
bool ans[N][N],f[N*N>>2];
int main(){
//  freopen("elevator.in","r",stdin);n=read();k=read();for(int i=1;i<=n;++i)for(int j=1;j<=n;++j){if(bel[i][j]) continue;bel[i][j]=++tot;bel[j][n-i+1]=tot;bel[n-j+1][i]=tot;bel[n-i+1][n-j+1]=tot;}for(int i=1;i<=tot;++i) cnt[i]=4;for(int i=1;i<=n;++i)for(int j=1;j<=n;++j){if(f[bel[i][j]]) continue;if(cnt[bel[i][j]]==1){ans[i][j]=1,f[bel[i][j]]=1;continue;}ll res=1;cnt[bel[i][j]]--;for(int ii=1;ii<=tot;++ii) res*=cnt[ii];if(k>res) k-=res,ans[i][j]=1,f[bel[i][j]]=1,cnt[bel[i][j]]=1;}for(int i=1;i<=n;++i){for(int j=1;j<=n;++j) printf("%d",ans[i][j]);puts("");}return 0;
}

bzoj3056 升降梯口(组合数学+模拟)相关推荐

  1. 实验(三):单片机I/O口实验-模拟开关灯

    一.实验目的与任务 实验目的: 1.掌握单片机I/O口输入输出使用: 2.掌握单片机I/O口位操作的编程. 任务: 1.根据要求编写程序,并写出原理性注释: 2.  检查程序运行的结果,分析一下是否正 ...

  2. IO口软件模拟IIC

    一.IIC时序 IIC(Inter-Integrated Circuit, 内部集成电路)总线是飞利浦公司开发的两线式串行总线,用于短距离传输,常用语微控制器及其外围设备.它是由数据线SDA和时钟线S ...

  3. 一种基于IO口的模拟串口(LOG)实现方法

    一.使用背景 当MCU的串口不够用时,可以通过IO模拟的方式将任意一个具有输出功能的管脚配置为串口输出,从而方便开发和调试. 二.实现原理 通过IO口模拟串口发送波形,配置对应的波特率等信息,然后映射 ...

  4. 3056: 升降梯口

    题目链接 题目大意:-- 题解:-- 我的收获:emmmmmm~~~

  5. 单片机IO口模拟串口程序(发送+接收

    单片机IO口模拟串口程序(发送+接收)[转] qcmc 发表于 - 2011-6-23 0:42:00 前一阵一直在做单片机的程序,由于串口不够,需要用IO口来模拟出一个串口.经过若干曲折并参考了一些 ...

  6. 串口发送程序linux,单片机IO口模拟串口程序(发送+接收

    前一阵一直在做单片机的程序,由于串口不够,需要用IO口来模拟出一个串口.经过若干曲折并参考了一些现有的资料,基本上完成了.现在将完整的测试程序,以及其中一些需要总结的部分贴出来. 程序硬件平台:11. ...

  7. 【51单片机STC89C52】IO口模拟PWM控制SG90舵机

    一.PWM PWM ,英文名 Pulse Width Modulation ,是脉冲宽度调制缩写,它是通过对一系列脉冲的宽度进 行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字编 ...

  8. MCU模拟UART口

    群里交流,有人问用IO口怎么模拟UART,19年做过一个项目,其中就有这个功能,测试后, 效果还可以,做下记录吧,希望能够对大家有所帮助. 一.设计思路 由于我的项目需要模拟UART能够同时实现RX和 ...

  9. 芯圣SQ013单片机IO口模拟串口 延时法

    因为懒,许久未来更新,不过学习还是没有停止.今天我们介绍用芯圣SQ013模拟串口. 串口通讯概述 我们常用的串口通讯协议 为1个起始位+8个数据位+1位结束位.起始位为低电平,结束位高电平.一般我们常 ...

最新文章

  1. redis java驱动_Redis学习笔记之二 :在Java项目中使用Redis
  2. Android Jetpack组件之数据库Room详解(三)
  3. 工作169:vue项目报错[Vue warn]: Property “visible“ must be accessed with “$data.visible“ because properties
  4. libsvm python_LibSVM for Python 使用
  5. Interesting Finds: 2008.01.25
  6. Life is not fair, get used to it.
  7. tree 先序遍历 叶子结点_编程:按先序序列输出二叉树的叶子结点
  8. 用matlab如何画六边形,matlab怎样直接画出六边形
  9. Java开发手册、帮助文档
  10. MySQL连接navicat出现 2059 - authentication plugin ‘caching_sha2_password解决方法
  11. 常用的默认端口号(HTTP\HTTPS\FTP)
  12. matlab 模拟交易,股票量化投资策略模拟交易系统 [2017.01.19 更新]
  13. 用stream流来遍历处理list,筛选出符合条件的list
  14. 神棍节献礼之——POJ1111 Image Perimeters(bfs)
  15. 在3D城市模型中添加不同的纹理
  16. 录音转文字工具,支持6大语音识别引擎识别,非常好用的网赚工具!
  17. <Linux开发>--驱动开发-- 字符设备驱动(3) 过程详细记录
  18. 23-Travel旅游-签证
  19. Git - remove pushed file
  20. Android的USB通信(AOA连接)

热门文章

  1. 营销:通过扭曲价值来创造价值
  2. 《万历十五年》读后感
  3. radmin自动安装
  4. 如何上传文件到IPFS
  5. 2022年样题五全国职业院校网络系统管理-网络部分
  6. 用Python来绘制自己的个人足迹地图,精确到市级别
  7. JAVA程序中怎么看线程的个数_一个文件中有10000个数,用Java实现一个多线程程序将这...
  8. oracle中修改字段类型,字段值不为空
  9. C语言实现3des加解密
  10. 创新能力哪家强?三星Note8 VS. 苹果iPhone X