题目链接

首先想到同样例1的构造方式。即不得不填负的格子填\(-h*w\),其余填\(1\)。直接这样能过二三十个点。

只这样不对。比如1 4 1 3,会输出无解(会填[1 1 -3 1])。怎么改呢。对于一个点,它可以覆盖多个\(h*w\)的子矩形,只要对每个子矩形满足负权和,它们的和可以尽量大。

将原方案中的所有正数扩大\(d\)倍,不得不填负的格子只需恰好大于一个子矩形的和。这样多个格子加起来的和就大了。

如1 4 1 3,可以填[1000 1000 -2001 1000]。

//20ms	1792KB
#include <cstdio>
#include <algorithm>
const int N=505; bool A[N][N]; int main()
{
int H,W,h,w; scanf("%d%d%d%d",&H,&W,&h,&w);
if(!(H%h) && !(W%w)) return puts("No"),0;//每个子矩形都是负的,拼一块还是负的(当然不判也行) int r=h,c=w,tot=0;
while(1)
{
while(1)
{
++tot, A[r][c]=1;
if(c+w>W) break;
c+=w;//每次只能加w而不是2w-1!
}
c=w;
if(r+h>H) break;
r+=h;
}
int v=-h*w*1000+999;
if(-1ll*tot*v>=1000*(H*W-tot)) puts("No");
else
{
puts("Yes");
for(int i=1; i<=H; ++i,putchar('\n'))
for(int j=1; j<=W; ++j) printf("%d ",A[i][j]?v:1000);
} return 0;
}

AGC 016C.+/- Rectangle(思路 构造)的更多相关文章

  1. Crane UVA - 1611 思路+构造

    题目:题目链接 思路:思路+构造,假设 i  在pos 位置,那么如果 (pos-i-1)*2+i+1 <= n,那么可以操作一次换过来,如果他们之间元素个数是偶数,那么交换 i - pos,如 ...

  2. AGC 027D.Modulo Matrix(构造 黑白染色)

    题目链接 \(Description\) 给定\(n\),要求构造一个\(n\times n\)的矩阵,矩阵内的元素两两不同,且任意相邻的两个元素\(x,y\),满足\(\max(x,y)\ \mat ...

  3. AGC016C +/- Rectangle(构造)

    题目大意:给定H,W,h,w四个数,求是否满足矩阵的全部数之和和正数,h行w列之和为负数 如果h和w恰好是H,W的约数,则肯定不存在 否则肯定存在 只需要把h,w内每个元素填的足够大,然后小矩形的最后 ...

  4. leetcode array解题思路

    Array *532. K-diff Pairs in an Array 方案一:暴力搜索, N平方的时间复杂度,空间复杂度N 数组长度为10000,使用O(N平方)的解法担心TLE,不建议使用,尽管 ...

  5. 牛客小白月赛2 J 美 【构造】

    链接:https://www.nowcoder.com/acm/contest/86/J来源:牛客网 题目描述 最后,Sεlιнα(Selina) 开始了选美大赛. 一如既往地,Sεlιнα 想最大化 ...

  6. luogu 3709 大爷的字符串题 构造 莫队 区间众数

    题目链接 题目描述 给你一个字符串a,每次询问一段区间的贡献 贡献定义: 每次从这个区间中随机拿出一个字符\(x\),然后把\(x\)从这个区间中删除,你要维护一个集合S 如果\(S\)为空,你\(r ...

  7. AtCoder Grand Contest

    一句话题解 QwQ主要是因为这篇文章写的有点长……有时候要找某一个题可能不是很好找,所以写了这个东西. 具体的题意.题解和代码可以再往下翻._(:з」∠)_ AGC 001 C:枚举中点/中边. D: ...

  8. vue双向数据绑定原理探究(附demo)

    昨天被导师叫去研究了一下vue的双向数据绑定原理...本来以为原理的东西都非常高深,没想到vue的双向绑定真的很好理解啊...自己动手写了一个. 传送门 双向绑定的思想 双向数据绑定的思想就是数据层与 ...

  9. Objective-C 观察者模式--简单介绍和使用

    观察者模式(有时又被称为发布-订阅模式) 在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知. 这通常透过呼叫各观察者所提供的方法来实现.此种模式通常被用来实 ...

随机推荐

  1. Git相关二三事(git reflog 和彩色branch)【转】

    转自:https://www.jianshu.com/p/3622ed542c3b 背景 git太常用了,虽然,用起来不难,但也有很多小技巧的东西... 1. 后悔药 哪天不小心,写完代码,没comm ...

  2. phantomjs 中如何使用xpath

    function getNodeInfo(inputcsvPath) { var htmlnodeInfo = page.evaluate(function () { //_Ltg var XPATH ...

  3. C++:vector的用法详解

    原文地址:http://blog.csdn.net/hancunai0017/article/details/7032383 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于 ...

  4. 为你的VPS进行一些安全设置吧

    安全是一个VPS最基本的必备条件,若您的VPS三天两头被人攻破,那么对于网站来说也没什么意义了,所以,在创建了Web服务器之后,您首先要做的事情就是将您的VPS加固,至少让普通黑客没有办法能够攻破您的 ...

  5. 转载:磁盘目录(1.3.3)《深入理解Nginx》(陶辉)

    原文:https://book.2cto.com/201304/19614.html 要使用Nginx,还需要在Linux文件系统上准备以下目录. (1)Nginx源代码存放目录 该目录用于放置从官网 ...

  6. SpringMVC(4.2):Controller接口控制器详解(2)

    原文出处: 张开涛 4.5.ServletForwardingController 将接收到的请求转发到一个命名的servlet,具体示例如下: package cn.javass.chapter4. ...

  7. 【ES】学习5-全文搜索

    全文搜索两个最重要的方面是:相关性, 分析. 一旦谈论相关性或分析这两个方面的问题时,我们所处的语境是关于查询的而不是过滤. match:单个词查询 GET /my_index/my_type/_se ...

  8. Windows Mysql安装

    一.从https://dev.mysql.com/downloads/windows/installer/5.6.html下载MySQL Installer 二.直接点击默认安装

  9. jquery.Inputmask 插件用法(中文API文档)

      jquery.Inputmask 可以算是input文本输入限制的神器了,内部融合了多种输入限制, 如金额,电话号码,身份证号,网关等..,并且还可以自定义规则. inputmask 据说最早起源 ...

  10. php事务回滚

    <?php $mysqli = new mysqli("127.0.0.1","root","111111","test&q ...