问题可以这么理解——

构造一个$n+1$行$n$列的01矩阵$A$,满足:

1.第$i$列$n+1$个数的和为$a_{i}$

2.任意两行不完全相同

(对应关系:第$i$行第$j$列为1当且仅当第$i$次操作的集合包含$j$)

不妨将$a_{i}$从大到小排序,即$a_{1}\ge a_{2}\ge ...\ge a_{n}$,此时构造方案:

初始矩阵为0,$\forall 1\le i\le n$将第$i$列从第$i$行开始(包括第$i$行),下面$a_{i}$行填1(若行号大于$n+1$,则从第1行开始)

关于这一策略的正确性,即证明如此构造的矩阵$A$满足之前的两个条件:

对于第1个条件,由于$1\le a_{i}\le n$,显然成立

对于第2个条件,任取$i$和$j$(其中$1\le i<j\le n+1$),来证明第$i$行和第$j$行不完全相同——

取$(i,j]$中最小的$k$,满足$a_{k}+k>n+1$,对$k$分类讨论——

(1)不存在这样的$k$,必然有$a_{j}+j\le n+1$,此时$A_{i,j}=0$而$A_{j,j}=1$

(2)$k=i+1$,此时$A_{i,i+1}=0$而$A_{j,i+1}=1$

(3)不为以上两种情况,那么$a_{k-1}+(k-1)\le n+1$(否则显然取$k-1$)

注意到$a_{k-1}\ge a_{k}$,即$a_{k-1}+(k-1)+1\ge a_{k}+k$,前者$\le n+2$,后者$>n+1$,即两者都为$n+2$,也即$a_{k-1}+(k-1)=n+1$,此时$A_{i,k-1}=0$而$A_{j,k-1}=1$

综上,即得证

 1 #include<bits/stdc++.h>
2 using namespace std;
3 #define N 1005
4 pair<int,int>a[N];
5 int n,ans[N][N];
6 int main(){
7 scanf("%d",&n);
8 for(int i=1;i<=n;i++){
9 scanf("%d",&a[i].first);
10 a[i].first*=-1;
11 a[i].second=i;
12 }
13 sort(a+1,a+n+1);
14 for(int i=1;i<=n;i++){
15 int x=a[i].second;
16 for(int j=i;j<i-a[i].first;j++)
17 if (j<=n+1)ans[j][x]=1;
18 else ans[j-(n+1)][x]=1;
19 }
20 printf("%d\n",n+1);
21 for(int i=1;i<=n+1;i++){
22 for(int j=1;j<=n;j++)printf("%d",ans[i][j]);
23 printf("\n");
24 }
25 }

[cf1261E]Not Same的更多相关文章

随机推荐

  1. python-docx 页面设置

    初识word文档-节-的概念 编辑一篇word文档,往往首先从页面设置开始,从下图可以看出,页面设置常操作的有页边距.纸张方向.纸张大小4个,而在word中是以节(section)来分大的块,每一节的 ...

  2. 11.5.1 LVS-DR 实验

    lvs-server VIP:10.211.55.99 DIP:10.211.55.23 负载均衡器   rs01 RIP:10.211.55.24 后端服务器   rs02 RIP:10.211.5 ...

  3. 从零入门 Serverless | 教你 7 步快速构建 GitLab 持续集成环境

    作者 | 存诚 阿里云弹性计算团队 本文整理自<Serverless 技术公开课>,"Serverless"公众号后台回复"入门",即可获取系列文章 ...

  4. 1. SSTI(模板注入)漏洞(入门篇)

    好久没更新博客了,现在主要在作源码审计相关工作,在工作中也遇到了各种语言导致的一些SSTI,今天就来大概说一下SSTI模板注入这个老生常谈的漏洞 前言 模板引擎 模板引擎(这里特指用于Web开发的模板 ...

  5. 从网络通信的演进过程彻底搞懂Redis高性能通信的原理(全网最详细,建议收藏)

    我们一直说Redis的性能很快,那为什么快?Redis为了达到性能最大化,做了哪些方面的优化呢? 在深度解析Redis的数据结构 这篇文章中,其实从数据结构上分析了Redis性能高的一方面原因. 在目 ...

  6. 重庆邮电大学第十一届ACM程序设计竞赛-网络选拔赛 C题

    1008: 偷袭 时间限制: 1.000 sec 内存限制: 128 MB 武林要以和为贵,张麻子不讲武德来偷袭马老师的亲传弟子. 马老师有n个亲传弟子,每个弟子有一个武力值a[i]. n个弟子中只有 ...

  7. Kubernetes client-go 源码分析 - Reflector

    概述入口 - Reflector.Run()核心 - Reflector.ListAndWatch()Reflector.watchHandler()NewReflector()小结 概述 源码版本: ...

  8. 如何从一台OPC Server访问多个PLC

    项目中遇到如下情况: 1. 整条生产线由多个PLC分别控制,但是所有PLC在同一个局域网内.PLC采用西门子的S7-200 Smart 2. 客户希望在操作工站的电脑(跟PLC在同一个局域网内)上提供 ...

  9. 自定义注解结合切面和spel表达式

    在我们的实际开发中可能存在这么一种情况,当方法参数中的某些条件成立的时候,需要执行一些逻辑处理,比如输出日志.而这些代码可能都是差不多的,那么这个时候就可以结合自定义注解加上切面加上spel表达式进行 ...

  10. 加法运算替代 牛客网 程序员面试金典 C++ Python

    加法运算替代 牛客网 程序员面试金典 题目描述 请编写一个方法,实现整数的乘法.减法和除法运算(这里的除指整除).只允许使用加号. 给定两个正整数int a,int b,同时给定一个int type代 ...