题目链接:I题

题目大意:给你n个贪吃蛇,要求你去构造一个矩阵,使得编号为k的贪吃蛇长度为k,并且奇数编号贪吃蛇需要经过奇数个转折点,偶数编号贪吃蛇需要经过偶数个转折点,然后所有贪吃蛇刚好占满这个矩阵的所有各自且不能交叉,要求你输出每条贪吃蛇的路径,不是单纯的位置

题目思路:我们先构造出矩阵的大小,发现这样的一个关系:
1:1,11:1,1

1{1}

2:1,22:1,2

1,2,2{1,2,2}

3:2,33:2,3

2,2,3{2,2,3}
2,2,3{2,2,3}

4:2,54:2,5

2,2,3,4,4{2,2,3,4,4}
1,3,3,4,4{1,3,3,4,4}

5:3,55:3,5

1,2,2,3,5{1,2,2,3,5}
4,4,3,3,5{4,4,3,3,5}
4,4,5,5,5{4,4,5,5,5}

6:3,76:3,7

1,2,2,3,5,6,6{1,2,2,3,5,6,6}
4,4,3,3,5,6,6{4,4,3,3,5,6,6}
4,4,5,5,5,6,6{4,4,5,5,5,6,6}

7:4,77:4,7

2,2,3,4,4,5,7{2,2,3,4,4,5,7}
1,3,3,4,4,5,7{1,3,3,4,4,5,7}
6,6,6,5,5,5,7{6,6,6,5,5,5,7}
6,6,6,7,7,7,7{6,6,6,7,7,7,7}

然后我们就可以发现规律了,长宽跟n有关,偶数的情况直接在奇数的情况下构造一个右边2*n/2的矩阵就可以了,拐点刚好两个,奇数的情况我们需要考虑到它的n-3的情况,补上后三个就好了,然后代码递归去写就好了


#include <map>
#include <set>
#include <cmath>
#include <queue>
#include <stack>
#include <vector>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>using namespace std;
typedef long long ll;void fun(int cur){if(cur == 1){printf("1 1\n");return ;}if(cur == 2){printf("1 1\n");printf("1 2 1 3\n");return;}if(cur == 3){printf("2 1\n");printf("1 1 1 2\n");printf("1 3 2 3 2 2\n");return;}int tx = (cur+1)/2;int ty = (cur%2)? tx*2-1:tx*2+1;if(cur % 2 == 0){fun(cur-1);for(int i = 1; i <= cur/2; i ++)printf("%d %d ",i,ty-1);for(int i = cur/2; i >= 1; i--)printf("%d %d ",i,ty);printf("\n");return ;}else{fun(cur-3);for(int i = 1; i <= (cur-2)/2; i++)printf("%d %d ",i,ty-1);for(int i = 1; i <= (cur-2)/2+1; i++)printf("%d %d ",tx-1,ty-i);printf("\n");for(int i = 1; i <= (cur-1)/2; i++)printf("%d %d ",tx-1,i);for(int i = 0; i <= (cur-1)/2-1; i++)printf("%d %d ",tx,(cur-1)/2-i);printf("\n");for(int i = 0; i < cur/2+1; i++)printf("%d %d ",tx,ty-cur/2+i);for(int i = 0; i < cur/2; i++)printf("%d %d ",tx-i-1,ty);printf("\n");return ;}
}int main(){int n;while(~scanf("%d",&n)){printf("%d %d\n",(n+1)/2,(n%2)?(n+1)/2*2-1:(n+1)/2*2+1);fun(n);}return 0;
}

hihocoder 1257 Snake Carpet相关推荐

  1. hihoCoder 1257 Snake Carpet(很简单的构造方法)

    2015 ACM / ICPC 北京现场赛 I 题 构造 注意一个小坑,每条蛇的输出是要从头到尾输出的. 还要注意的是,不能开数组去模拟构造过程,然后输出,那样会TLE的. #include < ...

  2. hiho1257 Snake Carpet

    题目链接:http://hihocoder.com/problemset/problem/1257 题目大意:有n条蛇 编号为1-n 每条蛇的长度跟编号相等 奇数编号的蛇必须拐奇数次(除了第一条)偶数 ...

  3. 实时实例分割的Deep Snake:CVPR2020论文点评

    实时实例分割的Deep Snake:CVPR2020论文点评 Deep Snake for Real-Time Instance Segmentation 论文链接:https://arxiv.org ...

  4. hihoCoder 网络流四·最小路径覆盖

    题面带解释 hihoCoder感觉很好. 网络流的精华就是建图 #include<cstdio> #include<iostream> #include<algorith ...

  5. hihoCoder #1142 : 三分求极值

    #1142 : 三分·三分求极值 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 这一次我们就简单一点了,题目在此: 在直角坐标系中有一条抛物线y=ax^2+bx+c和一 ...

  6. hihocoder 后缀自动机专题

    一.后缀自动机基本概念的理解 1.首先后缀自动机的状态是由子串的endpos来决定的 子串的endpos是指一个子串可以在原字符串的哪些位置进行匹配, endpos构成的不同集合划分成不同的状态 关于 ...

  7. hihoCoder 1051 补提交卡(贪心,枚举)

    #1051 : 补提交卡 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho给自己定了一个宏伟的目标:连续100天每天坚持在hihoCoder上提交一个程序.100天过 ...

  8. hihoCoder week3 KMP算法

    题目链接 https://hihocoder.com/contest/hiho3/problems kmp算法 #include <bits/stdc++.h> using namespa ...

  9. hihoCoder 第136周 优化延迟(二分答案+手写堆)

    题目1 : 优化延迟 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho编写了一个处理数据包的程序.程序的输入是一个包含N个数据包的序列.每个数据包根据其重要程度不同 ...

  10. hihoCoder 1578 Visiting Peking University 【贪心】 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛)...

    #1578 : Visiting Peking University 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 Ming is going to travel for ...

最新文章

  1. strcpy函数的使用
  2. Azure Redis 系列之 Azure Redis部署
  3. 一个显示页码用的helper。。。
  4. leetcode - 368. 最大整除子集
  5. 深度优先搜索——单词接龙(洛谷 P1019)
  6. 两数据库Dblink数据抽取blob
  7. 跨境电商ERP系统有几大功能?
  8. python计算工资编程-免费直播 | 编程小白如何通过学习Python获得超高工资
  9. mqtt安装使用教程。(基于rabbitmq插件,docker部署,k8s部署,python教程)
  10. 基于OpenCV的计算机视觉入门(4)线段和形状的绘制
  11. SIGPIPE 13 和其他信号的对照表
  12. axure树与表格结合_语言开发7:语言迟缓孩子,家庭日常训练,干货满满!【附:表格及图片】...
  13. matlab2017b安装之后点桌面图标黑框闪退
  14. 别以为太简单!创建最好邮件营销内容的13个技巧
  15. PAT 乙级 1068 万绿丛中一点红 (20分)
  16. 浅谈高速公路服务区分布式光伏并网发电
  17. NR RLC Protocol General and Procedure
  18. 为Redmine的项目加上起止时间
  19. element的formatter失效的解决方案
  20. 如何从无到有做一个好关卡?

热门文章

  1. 彩虹php域名授权系统,彩虹云域名授权系统(正版源码+教程)
  2. linux telnet trying,telnet ip port 显示trying一般是什么情况?急。。。
  3. 选择导入过滤器endnote_EndNote 知网的 Import Filter (滤件制作实例) | 科研动力
  4. 皮尔森 统计学相关性分析_统计学之三大相关性系数(pearson、spearman、kendall)...
  5. 计算机设置开机密码时间屏保,电脑屏幕保护密码设置方法
  6. 【考研】数据库知识点总结
  7. java 创建一个类_java创建一个类
  8. python如何读取dbf文件_python2.7读取dbf文件的正确姿势
  9. 如何下载fatjar
  10. 爬虫(29)mongodb(下)