【xsy1097】 拼图 构造题
题目大意:请你使用n个图形拼成一个矩形。要求:①这每个图形都由1×1的小正方形组成,而且第i个图形由i个小正方形组成。②除了第1个和第2个图形以外,任意一个图形的所有小正方形,不都在一条直线上。
数据范围:n≤1000
当n为奇数时,我们这么构造:

当n为偶数时,我们n为奇数的基础上,在原矩阵下方加多两排n就好了。
#include<bits/stdc++.h>
#define M 2005
using namespace std; int a[M][M]={}; int main(){
int n,m; scanf("%d",&n); m=(n+)/;
int hh=; if(n%==) hh=,n--;
for(int i=;i<=m;i++) a[n+][i]=a[n+][i]=n+;
for(int x=n,i=;x>m;x--,i++){
int nowx=i+,nowy=i;
for(int j=;j<=x;j++,nowx++){
if(a[nowx][nowy]) nowx--,nowy++;
a[nowx][nowy]=x;
}
}
for(int x=m,i=;x>;x--,i+=){
int nowx=,nowy=i;
for(int j=;j<=x;j++,nowx++){
if(a[nowx][nowy]) nowx--,nowy++;
a[nowx][nowy]=x;
}
x--;
for(int j=;j<=x;j++,nowx++){
if(a[nowx][nowy]) nowx--,nowy++;
a[nowx][nowy]=x;
}
}
printf("%d %d\n",n+(hh*),m);
for(int i=;i<=n+(hh*);i++,printf("\n"))
for(int j=;j<=m;j++) printf("%d ",a[i][j]);
}
【xsy1097】 拼图 构造题的更多相关文章
- cf251.2.C (构造题的技巧)
C. Devu and Partitioning of the Array time limit per test 1 second memory limit per test 256 megabyt ...
- hdu4671 Backup Plan ——构造题
link:http://acm.hdu.edu.cn/showproblem.php?pid=4671 其实是不难的那种构造题,先排第一列,第二列从后往前选. #include <iostrea ...
- Educational Codeforces Round 7 D. Optimal Number Permutation 构造题
D. Optimal Number Permutation 题目连接: http://www.codeforces.com/contest/622/problem/D Description You ...
- Codeforces 482 - Diverse Permutation 构造题
这是一道蛮基础的构造题. - k +(k - 1) -(k - 2) 1 + k , 1 , k , 2, ....... ...
- BZOJ 3097: Hash Killer I【构造题,思维题】
3097: Hash Killer I Time Limit: 5 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 963 Solved: 36 ...
- CF1110E Magic Stones(构造题)
这场CF怎么这么多构造题…… 题目链接:CF原网 洛谷 题目大意:给定两个长度为 $n$ 的序列 $c$ 和 $t$.每次我们可以对 $c_i(2\le i<n)$ 进行一次操作,也就是把 $c ...
- CDOJ 1288 旅游的Final柱 构造题
旅游的Final柱 题目连接: http://acm.uestc.edu.cn/#/problem/show/1288 Description 柱神要去打Final啦~(≧▽≦)/~啦啦啦 柱神来到了 ...
- CodeForces 297C Splitting the Uniqueness (脑补构造题)
题意 Split a unique array into two almost unique arrays. unique arrays指数组各个数均不相同,almost unique arrays指 ...
- HDU 5355 Cake (WA后AC代码,具体解析,构造题)
题目链接:http://acm.hdu.edu.cn/showproblem.php? pid=5355 题面: Cake Time Limit: 2000/1000 MS (Java/Others) ...
随机推荐
- db2中如何获取当前日期前一周的日期
SELECT CURRENT_DATE - (DAYOFWEEK(CURRENT_DATE) - 2 + (ROW_NUMBER() OVER (ORDER BY 1) ) ) DAY AS resu ...
- 理解指令的restrict属性(转)
restrcit属性说明 restrict: EACM中的任意一个之母.它是用来限制指令的声明格式的. E - 元素名称:<my-directive></my-directive&g ...
- returning into 语句
returning into 语句用于执行完语句后返回的值,具体返回执行之前或者之后的结果,多用于在存储过程中 如下所述:delete语句的returning into语句返回的是delete之前的结 ...
- 20155336 2016-2017-2《JAVA程序设计》第六周学习总结
20155336 2016-2017-2<JAVA程序设计>第六周学习总结 教材学习内容总结 第十章 串流(Stream): 数据有来源及目的地,衔接两者的是串流对象.如果要将数据从来源取 ...
- Boost库安装理解
Boost安装的安装,以及在VS2013下的使用 1. 为什么要安装? boost是一个开源库,因为开源库可以跨平台,可以通过在不同的“硬件”平台上.所以需要安装的操作. 安装,然后编译生成“静态链接 ...
- jersey学习笔记
最近一个项目用到了jersey,我只是负责前端.也借此机会好好了解一下REST webservice及一大推名词. http://redhacker.iteye.com/blog/1914105 1. ...
- fully delete project in Eclipse
选择你的项目(test)右击,选择delete——弹出框中勾选删除全部,如下如所示: 正常情况下,这样就能删除干净了,有时候你项目在运行,这时候你点击删除,那就会报下面的错误提示,虽然不会影响你其它项 ...
- 基于注解方式@AspectJ的AOP
启用对@AspectJ的支持 Spring默认不支持@AspectJ风格的切面声明,为了支持需要使用如下配置: <aop:aspectj-autoproxy/> 这样Spring就能发现@ ...
- Quartz.net 起步
安装 Quartz 程序包 使用 nuget 命令行安装 Quartz: Install-Package Quartz 如果使用 JSON 序列化,使用 nuget 安装 Quartz.Seriali ...
- Python学习(一)——数据类型
在大学学过一点python,只学了语法,关于实际应用却没怎么用过.现在用一些python的脚本来模拟webservices,挺好用的.这个语言,还是要好好学习学习了. 目前看着教材来的,这本教材,好像 ...