UVALive 7269 Snake Carpet
5 5 5 3 3 5 4 4 3 2 5 4 4 1 2 5 5 5 3 3 6 6 5 4 4 3 2 6 6 5 4 4 1 2 6 6 5 5 5 3 3 6 6 5 4 4 3 2 6 6 5 4 4 1 2 7 6 7 7 7 7 7 7 6 剩下自己领悟规律
#include <bits/stdc++.h>
using namespace std;
const int N = 520;
int a[N][N];
int row, col;
void get(int m){if(m == 1){puts("1 1");puts("1 1");}else if(m == 2) {puts("1 3");puts("1 1\n1 2 1 3");}else if(m == 3){puts("2 3");puts("1 2");puts("1 3 2 3");puts("1 1 2 1 2 2");}else if(m == 4){puts("2 5\n1 4\n1 5 2 5\n1 1 2 1 2 2\n1 2 1 3 2 3 2 4") ;}else if(m == 5){ puts("3 5\n3 4\n1 4 1 5\n2 4 2 5 3 5\n2 2 2 3 3 3 3 2\n3 1 2 1 1 1 1 2 1 3");}
}
bool cmp1(pair<int, int> a, pair<int, int> b) {if(a.second != b.second) return a.second < b.second;if(a.second % 2 == 0){return a.first > b.first;}else{return a.first < b.first;}
}
bool cmp2(pair<int, int> a, pair<int, int> b) {if(a.first != b.first) return a.first > b.first;return a.second < b.second;
}
int main(){int n;a[1][1] = 3; a[2][1] = 3; a[1][2] = 3;a[3][1] = 1;a[2][2] = a[3][2] = 2;a[1][3] = a[1][4] = a[2][3] = a[2][4] = 4;a[3][3] = a[3][4] = a[3][5] = a[2][5] = a[1][5] = 5;while(cin >> n){a[1][1] = 3; a[2][1] = 3; a[1][2] = 3;a[3][1] = 1;a[2][2] = a[3][2] = 2;a[1][3] = a[1][4] = a[2][3] = a[2][4] = 4;a[3][3] = a[3][4] = a[3][5] = a[2][5] = a[1][5] = 5;if(n < 6) get(n);else{row = 3, col = 5;for(int i = 6; i <= n; i++){if(i %2 == 0){for(int j = 1; j <= row; j++){a[j][col+1] = a[j][col+2] = i;}col += 2;}else{for(int j = 1; j <= col; j++) a[row+1][j] = i;row++;swap(a[row-1][col-1], a[row][col]);}}vector<pair<int, int> > ans[550];for(int i = 1; i <= row; i++){for(int j = 1; j <= col; j++) {ans[a[i][j]].push_back(make_pair(i, j));}}printf("%d %d\n", row, col);puts("3 4\n1 4 1 5\n2 4 2 5 3 5\n2 2 2 3 3 3 3 2\n3 1 2 1 1 1 1 2 1 3");for(int i = 6; i <= n; i++) {if(i%2 == 0){sort(ans[i].begin(), ans[i].end(), cmp1);}else{sort(ans[i].begin(), ans[i].end(), cmp2);}}for(int i = 6; i <= n; i++) {for(int j = 0; j < ans[i].size(); j++) {printf("%d %d ", ans[i][j].first, ans[i][j].second);}puts("");}}}return 0;
}
UVALive 7269 Snake Carpet相关推荐
- hihoCoder 1257 Snake Carpet(很简单的构造方法)
2015 ACM / ICPC 北京现场赛 I 题 构造 注意一个小坑,每条蛇的输出是要从头到尾输出的. 还要注意的是,不能开数组去模拟构造过程,然后输出,那样会TLE的. #include < ...
- hiho1257 Snake Carpet
题目链接:http://hihocoder.com/problemset/problem/1257 题目大意:有n条蛇 编号为1-n 每条蛇的长度跟编号相等 奇数编号的蛇必须拐奇数次(除了第一条)偶数 ...
- 实时实例分割的Deep Snake:CVPR2020论文点评
实时实例分割的Deep Snake:CVPR2020论文点评 Deep Snake for Real-Time Instance Segmentation 论文链接:https://arxiv.org ...
- DP UVALive 6506 Padovan Sequence
题目传送门 /*题意:两行数字,相邻列一上一下,或者隔一列两行都可以,从左到右选择数字使和最大DP:状态转移方程:dp[i][j] = max (dp[i][j], dp[1-i][j-1] + a[ ...
- The UVALIVE 7716 二维区间第k小
The UVALIVE 7716 二维区间第k小 /** 题意:给一个n * n的矩阵,有q个查询每次查询r,c,s,k表示已(r,c)为右上角 大小为s的正方形中 第k小的元素n <= 250 ...
- UVALive 8513 lovers 2017 西安区域赛 B 贪心+multiset
UVALive 8513 有2种人,每个人有自己的权值$A_i$ $B_i$ 当$A_i + B_i >=K$时 两个人可以配对 问最多多少人可以配对 解法 : 把$/{ A_i /}$ 排序 ...
- 训练指南 UVALive - 3713 (2-SAT)
layout: post title: 训练指南 UVALive - 3713 (2-SAT) author: "luowentaoaa" catalog: true mathja ...
- 逆序数 UVALive 6508 Permutation Graphs
题目传送门 1 /* 2 题意:给了两行的数字,相同的数字连线,问中间交点的个数 3 逆序数:第一行保存每个数字的位置,第二行保存该数字在第一行的位置,接下来就是对它求逆序数 4 用归并排序或线段树求 ...
- Aladdin and the Flying Carpet (素数打表+正整数的唯一分解定理,找因数对)
题目大意:给两个数a,b,求满足c*d==a且c>=b且d>=b的c,d二元组对数,(c,d)和(d,c)属于同一种情况 题目分析:根据唯一分解定理先将a唯一分解,则a的所有正约数的个数为 ...
- CF198D Cube Snake(三维空间/增量构造)
CF198D Cube Snake n<=50 显然是一个构造题,然后很容易想到增量构造,可以考虑每次保证一层值域连续,然后再增加一个值域连续的层,就会产生两个值域连续的正方体,但是只移动头是不 ...
最新文章
- Intel Realsense D435报错 RuntimeError: MFCreateDeviceSource(_device_attrs, _source) returned: HResult
- win10系统下载 Ghost Win10 RS1 1067 64位纯净3月版
- python--学习笔记6 pandas
- 海信FW3010-5000H千兆防火墙
- MaxCompute - ODPS重装上阵 第一弹 - 善用MaxCompute编译器的错误和警告
- python multiprocessing 得到多进程返回的结果
- google 浏览器使用的一些小技巧
- 云服务器预装什么系统好,云服务器预装什么系统好
- 展望Spring野心-Spring资源定位
- Mac下librdkafka下载安装
- Spring Boot 整合 Thymeleaf 完整 Web 案例
- 【文献翻译】用于5G蜂窝的毫米波移动通信:我看行!
- 再见2020,你好2021
- BAT布局SDN!Barefoot获阿里巴巴和腾讯2400万美元投资
- 奇怪的是珊瑚虫版反而可以
- Steam帝国时代3完全版,每次启动UAC
- mysql导出excel 科学计数法_mysql导出长数字到excel避免显示为科学记数法 解决方法...
- OpenStack的产品化历程
- 322. 零钱兑换 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。 你可以认为每
- laravel mysql超时时间_Laravel数据库MySQL查询需要很长时间