http://acm.hdu.edu.cn/showproblem.php?pid=6313

题意

让你构造一个矩阵使得里面不存在四个顶点都为1的矩形,并且矩阵里面1的个数要>=85000

分析

来自https://blog.csdn.net/qq_37025443/article/details/81221008

先从25*25的构造看起

10000 01000 00100 00010 00001
10000 00100 00001 01000 00010
10000 00010 01000 00001 00100
10000 00001 00010 00100 01000
10000 10000 10000 10000 10000
01000 00100 00010 00001 10000
01000 00010 10000 00100 00001
01000 00001 00100 10000 00010
01000 10000 00001 00010 00100
01000 01000 01000 01000 01000

........

根据上面可以得出规律:

假设行数为x(x=1...25),列数y(y=1....25)

单论一行来说,总共只有5个1,可以分成5组,每组一个1,每一组的1的位置=((前一组1的位置k+x%p)-1)%p+1

那么我们只要知道每一行第一个位置在哪里就可以构造出来了。

这样第i行第一个1的位置其实就是(x-1/p)

那么这样我们就可以构造出来一个满足上述条件的矩阵了。

但是这个25*25的矩阵只能满足n<=25的情况,一旦n>=25

那么就有可能出现重复的矩阵(以这个25*25为单元重复),两个重复的矩阵找对应的4个位置就可以构成一个矩形了

所以我们需要重新找一个质数p,使得p*p>=2000,那么可以很容易得到p=47

#include <cstdio>
#include <cstring> const int MAXN = ;
int mp[MAXN][MAXN]; int main()
{
int n;
int p=;
n=;
for(int i=;i<(n/(p*p)+(n%(p*p)?:));i++)
for(int j=;j<(n/(p*p)+(n%(p*p)?:));j++)
for(int x=;x<=(p*p)&&(i*(p*p)+x)<=n;x++)
//for(int y=1;y<=p*p&&(j*(p*p)+y+(((y/p)*x)%p))<=n;y+=p)
for(int y=;y<p&&(j*(p*p)+y*p+((((x-)/p++(((x-)%p+)*y%p))-)%p+))<=n;y+=)
{
mp[i*(p*p)+x][j*(p*p)+y*p+((((x-)/p++(((x-)%p+)*y%p))-)%p+)]=;
}
printf("%d\n",n);
for(int i=;i<=n;i++)
{
for(int j=;j<=n;j++)
{
/*if(j%p==0) printf("%d ",mp[i][j]);
else */printf("%d",mp[i][j]);
}
printf("\n");
}
return ; }

HDU - 6313 Hack It(构造)的更多相关文章

  1. HDU 6313: Hack it

    Hack It Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  2. HDU 5573 Binary Tree 构造

    Binary Tree 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5573 Description The Old Frog King lives ...

  3. hdu 5015 233 Matrix(构造矩阵)

    http://acm.hdu.edu.cn/showproblem.php?pid=5015 由于是个二维的递推式,当时没有想到能够这样构造矩阵.从列上看,当前这一列都是由前一列递推得到.依据这一点来 ...

  4. HDU 5813 Elegant Construction 构造

    Elegant Construction 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5813 Description Being an ACMer ...

  5. HDU 5710 Digit-Sum (构造)

    题意: 定义S(N) 为数字N每个位上数字的和.在给两个数a,b,求最小的正整数n,使得 a×S(n)=b×S(2n). 官方题解: 这道题目的结果可能非常大,所以我们直接枚举n是要GG的. 首先可以 ...

  6. HDU 5914 Triangle 【构造】 (2016中国大学生程序设计竞赛(长春))

    Triangle Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Su ...

  7. HDU.5385.The path(构造)

    题目链接 最短路构造题三连:这道题,HDU4903,SRM590 Fox And City. \(Description\) 给定一张\(n\)个点\(m\)条边的有向图,每条边的边权在\([1,n] ...

  8. Codeforces.468C.Hack it!(构造)

    题目链接 \(dls\)出的比赛诶...这么妙. \(Description\) 令\(f(x)\)表示整数\(x\)在十进制下各个数位的数字之和.给定\(a\),求两个整数\(l,r\),使得\(\ ...

  9. 2015多校第7场 HDU 5379 Mahjong tree 构造,DFS

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5379 题意:一颗n个节点n-1条边的树,现在要给每个节点标号(1~n),要求:(1)每一层的兄弟节点的 ...

随机推荐

  1. 【ARC072E】Alice in linear land DP

    题目大意 有一个人要去直线上\(lm\)远处的地方,他会依次给他的机器发出\(n\)个指令.第\(i\)个指令为\(d_i\).他的机器收到一个指令\(x\)后,如果向目的地方向前进\(xm\)后比当 ...

  2. 概念数据模型CDM基础

    概念数据模型CDM 概念数据模型是设计数据库不可或缺的一步,是整个数据库设计的关键,CDM的主要作用如下: 1)能够真实地模拟真实世界,是需求分析人员和数据库设计人员沟通的桥梁.2)将系统需求分析得到 ...

  3. 【Gym 100947I】What a Mess

    BUPT 2017 summer training (for 16) #1D 题意 找到n个数里面有多少对具有倍数关系.\(1 ≤ n ≤ 10^4,2 ≤ a_i ≤ 10^6\) 题解 枚举一个数 ...

  4. Nginx 添加 PHP 支持

    背景介绍默认安装的Nginx是无法打开php文件的,需要修改相关配置才能支持php 安装yum -y install epel-release yum -y install nginx yum ins ...

  5. 【题解】 bzoj1135: [POI2009]Lyz (线段树+霍尔定理)

    题面戳我 Solution 二分图是显然的,用二分图匹配显然在这个范围会炸的很惨,我们考虑用霍尔定理. 我们任意选取穿\(l,r\)的号码鞋子的人,那么这些人可以穿的鞋子的范围是\(l,r+d\),这 ...

  6. 转----ui输入测试数据

    jin'tHackChecker黑测工作室 - 专注于软件安全测试技术研究!(www.AutomationQA.com)常用安全测试用例 建立整体的威胁模型,测试溢出漏洞.信息泄漏.错误处理.SQL ...

  7. Docker普通用户不使用sudo提权

    解决方法 sudo groupadd docker 添加Docker用户组 sudo gpasswd -a ${USER} docker 添加你的用户到Docker用户组 reboot 重启系统.也可 ...

  8. [bzoj1717][Milk Patterns 产奶的模式]

    题目链接 思路 先求出后缀数组,并且求出LCP.二分一下长度len.check的时候就是看有没有连续的k个后缀的LCP大于len.也就是判断是不是有连续的k-1个height大于len. 代码 #in ...

  9. TCHAR和CHAR类型的互转,string 转lpcwstr

    https://www.cnblogs.com/yuguangyuan/p/5955959.html 没有定义UNICODE,所以它里面的字符串就是简单用" "就行了,创建工程的时 ...

  10. 第十三篇-通过Button设置文本背景颜色

    MainActivity.java package com.example.aimee.buttontest; import android.annotation.SuppressLint; impo ...