UVALive 6858 Frame (模拟)
Frame
题目链接:
http://acm.hust.edu.cn/vjudge/contest/130303#problem/D
Description
http://7xjob4.com1.z0.glb.clouddn.com/17e6574035df3f9b6d1fc6dfd8b650ac
Input
The input file contains several test cases, each of them as described below.
The first line contains 2 integers — X and Y (3 ≤ X ≤ 10^6, 3 ≤ Y ≤ 10^6). The second line
contains integer N — the number of tile types to be analyzed (1 ≤ N ≤ 1000). Each of following N
lines contains one integer, not exceeding 10^6. We designate with AK the integer on the (k + 2)-th line of the input file.
Output
For each test case, your goal is to print N lines, where the K-th line should contain the word ‘YES’, if it is possible to tile the frame with size X × Y with tiles AK × 1, and the word ‘NO’ otherwise.
Sample Input
```
5 6
2
3
4
```
Sample Output
```
YES
NO
```
Source
2016-HUST-线下组队赛-4
##题意:
在X*Y的矩形的最外圈放若干个 A*1 的小矩形,判断对于给定的A能够恰好完全覆盖.
##题解:
考虑最上面一行的情况,第一块小矩形要么从#(1,1)开始,要么从#(1,2)开始(留出第一格给竖的矩形).
确定第一块的位置后,后面的摆放情况是固定的,所以依次判断一下是否合法即可.
##代码:
``` cpp
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define LL long long
#define maxn 101000
#define inf 0x3f3f3f3f
#define mod 1000000007
#define mid(a,b) ((a+b)>>1)
#define eps 1e-8
#define IN freopen("in.txt","r",stdin);
using namespace std;
int n;
int x,y;
bool solve(int a) {
int last1 = x % a;
if(last1 > 1) return 0;
if(last1 == 1) {
int last2 = y % a;
if(last2 > 1) return 0;
if(last2 == 1) return 1;
if(last2 == 0) return (y-2) % a == 0;
}
if(last1 == 0) {
int last2 = (y-1) % a;
if(last2 > 1) return 0;
if(last2 == 1) return 1;
if(last2 == 0) return (x-2) % a == 0;
}
}
bool solve2(int a) {
int last1 = (x-1) % a;
if(last1 > 1) return 0;
if(last1 == 1) {
int last2 = y % a;
if(last2 > 1) return 0;
if(last2 == 0) return 1;
if(last2 == 1) return x % a == 0;
}
if(last1 == 0) {
int last2 = (y-1) % a;
if(last2 > 1) return 0;
if(last2 == 0) return 1;
if(last2 == 1) return y % a == 0;
}
}
int main()
{
//IN;
while(scanf("%d %d", &x,&y) != EOF)
{
swap(x,y);
int n; scanf("%d", &n);
while(n--) {
int a; scanf("%d", &a);
if(solve(a) || solve2(a)) puts("YES");
else puts("NO");
}
}
return 0;
}
UVALive 6858 Frame (模拟)的更多相关文章
- UVaLive 6858 Frame (水题)
题意:给定一个矩形框架,给定一个小矩形,问你能不能正好拼起来. 析:很简单么,就三种情况,如果是1*1的矩形,或者是1*2的一定可以,然后就是上面和下面正好能是小矩形的整数倍,左右是少一,两个就是整数 ...
- UVALive 4222 Dance 模拟题
Dance 题目连接: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&pag ...
- UVALive 3971 Assemble(模拟 + 二分)
UVALive 3971 题意:有b块钱.想要组装一台电脑,给出n个配件的种类,名字,价格,品质因子.若各种类配件各买一个,总价格<=b,求最差品质配件的最大品质因子. 思路: 求最大的最小值一 ...
- UVALive 6451:Tables(模拟 Grade D)
VJ题目链接 题意:模拟输出表格 思路:模拟……很暴力 代码: #include <cstdio> #include <cstring> #include <cstdli ...
- UVALive 3634 数据结构模拟
这题真是坑啊,题意不明,其实就是往桟里面压入空的set集合,所以之前的询问大小都是只有0,只有add的时候,才会产生新的占空间的集合 用stack和set直接进行模拟 #include <ios ...
- UVALive - 6440(模拟)
题目链接:https://vjudge.net/contest/241341#problem/G 题目大意:输入一个N,n次操作.对于第一种操作增加一个病人,告诉病人的t0,st0,r.第二种操作,在 ...
- UVALive 7327【模拟】
题意: 每次方案一个或多个子序列: 每个子序列要整除m 认为分割不同,子序列边界的不同就是不同: 1246有4个 1246 12 46 124 6 12 4 6 思路: 先从整体考虑,因为取膜适用于加 ...
- UVALive 6833【模拟】
题意: 算从左往右的值,先乘后加的值,数的范围<=9= =,然后根据满足的条件输出字符. 思路: 从左往右就是直接来了,先做乘法就是乘法两边的数字靠向右边那个,且左边那个为0,然后所有值一加就好 ...
- UVALive 6858——分类讨论&&水题
题目 链接 题意:对于一个$n \times m$的矩阵的最外一圈,问是否能用$k \times 1$的方块填满 分析 考虑左右两边的情况,分类讨论,切记考虑所有可能的情形. #include< ...
随机推荐
- Tomcat原理剖析
Tomcat原理学习 理解Tomcat工作原理 Tomcat的概念及启动原理浅析 Tomcat系统架构与设计模式
- java面向对象详细全面介绍
一.面向对象 1.面向过程与面向对象 POP与OOP都是一种思想,面向对象是相对于面向过程而言的.面向过程,强调的是功能行为,以函数为最小单位,考虑怎么做.面向对象,将功能封装进对象,强调具备了功能的 ...
- 在搭建Maven项目时导入elasticsearch架包时遇到的问题
<!-- 使用elasticsearch 需要导入两个包,从网上复制的可能因为有特殊字符报 cvc-complex-type.2.3: Element 'dependency' cannot h ...
- mysql 大数据分页优化
一.mysql大数据量使用limit分页,随着页码的增大,查询效率越低下. 1. 直接用limit start, count分页语句, 也是我程序中用的方法: select * from prod ...
- [LOJ 6253] Yazid 的新生舞会
link $solution:$ 不知道为什么别人的代码能写的非常短,难道就是写差分的好处? 这种题肯定是算每个众数的贡献,考虑通过暴力众数求出个数. 现在考虑众数 $x$ ,则在序列 $a$ 中将等 ...
- nginx启动报错
nginx启动的时候报错 nginx: [emerg] invalid number of arguments in "root" directive in /etc/nginx/ ...
- solr集群搭建(SolrCloud)
SolrCloud(solr 云)是 Solr 提供的分布式搜索方案,当你需要大规模,容错,索引量很大,搜索请求并发很高时可以使用SolrCloud.它是基于 Solr 和Zookeeper的分布式搜 ...
- 【React -- 4/100】 生命周期
生命周期 概述 意义:组件的生命周期有助于理解组件的运行方式,完成更复杂的组件功能.分析组件错误原因等 组件的生命周期: 组件从被创建到挂载到页面中运行,再到组件不在时卸载的过程 生命周期的每个阶段总 ...
- Hive导入导出数据的方法
Hive导入数据的方式 官网文档: LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (p ...
- Python基础2——数据类型的操作
列表操作 列表.字符串.元组的切片总结: num=[1, 2, 3, 4, 5, 6] 1.切片是通过下面来切,下标可以正数,也可以是复数.注意:复数的话,最后一个值的下标为-1,往前面推导就是-1, ...