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

2015 ACM / ICPC 北京现场赛 I 题

构造

注意一个小坑,每条蛇的输出是要从头到尾输出的。

还要注意的是,不能开数组去模拟构造过程,然后输出,那样会TLE的。

 

#include <cstdio>
#include <cstring>
#include <cmath>
#include <vector>
#include <algorithm>
using namespace std;const int maxn=500+10;
vector<int> G[maxn];
int Find[maxn][3];
int n;
int R1,C1,R2,C2;
int tot;int ans[maxn][maxn];void f()
{Find[2][1]=1; Find[2][2]=2; Find[4][2]=2;for(int i=4;i<=500;i=i+2) {if(i%4==0) Find[i][1]=Find[i-2][1]+2;else Find[i][1]=Find[i-2][1];}for(int i=4;i<=500;i=i+2){if(i%4==2) Find[i][2]=Find[i-2][2]+2;else Find[i][2]=Find[i-2][2];}
}void init()
{//清空for(int i=0;i<=n;i++) G[i].clear();tot=0;//确定左图的大小R1=C1=(n+1)/2;//确定右图的大小if(n%2==1){R2=Find[n-1][1];C2=Find[n-1][2];}else {R2=Find[n][1];C2=Find[n][2];}
}void odd()
{for(int i=1;i<=n;i=i+2){tot++;for(int j=1;j<=tot;j++){G[i].push_back(tot);G[i].push_back(j);ans[tot][j]=i;}for(int j=tot-1;j>=1;j--){G[i].push_back(j);G[i].push_back(tot);ans[j][tot]=i;}}
}void even()
{if(R1==R2){int NowR=1;int NowC=0;for(int i=2;i<=n;i=i+2){//横着画if(i%4==0){for(int j=1;j<=i/2;j++) {G[i].push_back(NowR+1);G[i].push_back(j+C1);ans[NowR+1][j+C1]=i;}for(int j=i/2;j>=1;j--) {G[i].push_back(NowR+2);G[i].push_back(j+C1);ans[NowR+2][j+C1]=i;}NowR=NowR+2;} //竖着画else{for(int j=1;j<=i/2;j++) {G[i].push_back(j);G[i].push_back(NowC+1+C1);ans[j][NowC+1+C1]=i;}for(int j=i/2;j>=1;j--) {G[i].push_back(j);G[i].push_back(NowC+2+C1);ans[j][NowC+2+C1]=i;}NowC=NowC+2;}}}else if(R1==C2){swap(R2,C2);int NowR=R2+1;int NowC=1;for(int i=2;i<=n;i=i+2){//竖着画if(i%4==0){for(int j=R2;j>=R2-i/2+1;j--){G[i].push_back(j);G[i].push_back(NowC+1+C1);ans[j][NowC+1+C1]=i;}for(int j=R2-i/2+1;j<=R2;j++){G[i].push_back(j);G[i].push_back(NowC+2+C1);ans[j][NowC+2+C1]=i;}NowC=NowC+2;}//横着画else {for(int j=1;j<=i/2;j++){G[i].push_back(NowR-1);G[i].push_back(j+C1);ans[NowR-1][j+C1]=i;}for(int j=i/2;j>=1;j--){G[i].push_back(NowR-2);G[i].push_back(j+C1);ans[NowR-2][j+C1]=i;}NowR=NowR-2;}}}
}void print()
{for(int i=1;i<=n;i++){for(int j=0;j<G[i].size();j++){printf("%d",G[i][j]);if(j<G[i].size()-1) printf(" ");else printf("\n");}}
}int main()
{f();while(~scanf("%d",&n)){init();//初始化odd();//左图even();//右图/*for(int i=1;i<=R1;i++){for(int j=1;j<=C1+C2;j++){printf("%5d",ans[i][j]);}printf("\n");}*/printf("%d %d\n",R1,C1+C2);print();//输出
    }return 0;
}

 

转载于:https://www.cnblogs.com/zufezzt/p/4977956.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/286640.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

西北师范大学地理与环境科学学院考研真题汇总(高等数学)持续更新。。。

西北师范大学地理与环境学科学院研究生入学考试的所有专业(地图学与地理信息系统、自然地理学、人文地理学、环境科学、环境工程)的数学均为自主命题,复习参考教材为同济大学第五版。

Java网络编程二:Socket详解

Socket又称套接字&#xff0c;是连接运行在网络上两个程序间的双向通讯的端点。 一、使用Socket进行网络通信的过程 服务端&#xff1a;服务器程序将一个套接字绑定到一个特定的端口&#xff0c;并通过此套接字等待和监听客户端的连接请求。 客户端&#xff1a;客户端程序根据你…

在 .NET 中使用 FixedTimeEquals 应对计时攻击

计时攻击 在计算机安全中&#xff0c;计时攻击&#xff08;Timing attack&#xff09;是旁道攻击 &#xff08;Side-channel attack&#xff09; 的一种&#xff0c;而旁道攻击是根据计算机处理过程发出的信息进行分析&#xff0c;包括耗时&#xff0c;声音&#xff0c;功耗等…

解读大型网站系统架构的演化

解读大型网站系统架构的演化 大型网站的架构是根据业务需求不断完善的&#xff0c;根据不同的业务特征会做特定的设计和考虑&#xff0c;本文只是讲述一个常规大型网站会涉及的一些技术和手段。作者&#xff1a;李平来源&#xff1a;LEE的博客前言 一个成熟的大型网站&#xff…

【ArcGIS风暴】西北地区气象台站年均NDVI与年均气温和降水的相关性分析

在研究植被动态变化与气候的关系时,通常通过计算植被NDVI值与气温和降水的相关系数来描述相关性的大小。如下图所示,计算了西北地区分布的气象台站与气温和降水的相关性并作图可视化。 下面详细说明整个实现过程。 一、计算相关系数 1. 原理分析 通过计算年均N…

python 全解坦克大战 辅助类 附完整代码【雏形】

我正在博客之星评选&#xff0c;欢迎投票给我 会从投票人中抽奖机械键盘书&#xff0c;中了会私聊地址 投票连接是&#xff1a;https://bbs.csdn.net/topics/603955346 投票连接是&#xff1a;https://bbs.csdn.net/topics/603955346 投票连接是&#xff1a;https://bbs.csdn.…

vc++ mfc中拖动效果的实现 借助于CImageList

拖动是界面编程频繁使用的一个效果&#xff0c;在windows系统下可谓大行其道。纵观时下的应用软件几乎各个都支持各种各样拖动的效果&#xff0c;windows7更是把拖动做到了极致。其实说起来拖动的实现也很简单&#xff0c;对于有句柄的对象都可以通过MoveWindow或SetWindowPos实…

有序的Map集合--LinkedHashMap

提出问题&#xff1a; 在写一个dao的时候&#xff0c;我的需求是这个dao是一个万能的&#xff0c;目前的方法只有一个查询出实体类对应的表中所有的数据&#xff0c;通过传入的对象&#xff0c;利用反射获取实体类中的属性名&#xff0c;属性类型&#xff0c;利用字符串拼接获取…

yii 前后台分离及登陆验证

2019独角兽企业重金招聘Python工程师标准>>> 比较合理的做法其实是分成两个框架来布署&#xff1b;然而这样说法也太绝对。 事实上是针对不同系统&#xff0c;应采用不同的方法。如为CMS系统&#xff0c;则不需很复杂的权限管理&#xff0c;但如果有管理员与会员之分…

Kibana

2019独角兽企业重金招聘Python工程师标准>>> Kibana是一个基于浏览器页面的Elasticsearch前端展示工具。Kibana全部使用HTML语言和Javascript编写的&#xff0c;查询语法是基于Lucene的查询语法。允许布尔运算符、通配符和字段筛选。注意关键字要大写 全文搜索 在搜…

电脑QQ能登上,网页打不开的解决办法

打开360卫士&#xff0c;在功能大全里选择网络优化&#xff0c;断网急救箱。 可以看到DNS服务异常、浏览器配置异常&#xff0c;点击立即修复。

个人黑名单 抄袭耻辱墙

抄袭耻辱墙 博主抄袭文原文我爱Python数据挖掘https://blog.csdn.net/weixin_38037405/article/details/125862095https://blog.csdn.net/A757291228/article/details/117464313黄埔数据分析https://blog.csdn.net/weixin_39060517/article/details/118024847https://blog.csdn…

快速掌握 ASP.NET 身份认证框架 Identity(一)

推荐关注「码侠江湖」加星标&#xff0c;时刻不忘江湖事ASP.NET Core 内置了一个强大的身份认证框架 Identity&#xff0c;掌握它可以让我们快速开发高安全的身份认证功能&#xff0c;不仅如此&#xff0c;它还是一个基于数据库的用户管理系统&#xff0c;其中包含了大量的辅助…

浅谈大型web系统架构

动态应用&#xff0c;是相对于网站静态内容而言&#xff0c;是指以c/c、php、Java、perl、.net等服务器端语言开发的网络应用软件&#xff0c;比如论坛、网络相册、交友、BLOG等常见应用。动态应用系统通常与数据库系统、缓存系统、分布式存储系统等密不可分。   大型动态应用…

PHP: 手把手编写自己的 MVC 框架实例教程

1 什么是MVC MVC模式&#xff08;Model-View-Controller&#xff09;是软件工程中的一种软件架构模式&#xff0c;把软件系统分为三个基本部分&#xff1a;模型&#xff08;Model&#xff09;、视图&#xff08;View&#xff09;和控制器&#xff08;Controller&#xff09;。 …

2021年复盘总结发现了C站博主缺少的赚钱之路

一、 我2021年的六大Flag 其实最开始我是不打算年终总结的&#xff0c;因为2021年我的十大Flag都没有完成&#xff0c;我说出来可能你会嘲笑我&#xff0c;所以我打算还是说出来吧。 这六大Flag如下&#xff1a; C站百万粉百篇实战文其他自媒体平台十万粉公众号一万粉财务自…

五大微信小程序开发IDE深度评测

微信小程序已经内测有一段时间了&#xff0c;笔者本着好奇加学习的心态写了几个小demo&#xff0c;虽然在MINA框架上并没有遇到太多的坑&#xff0c;但官方开发工具实在不敢恭维。 api提示不全&#xff0c;要一个个查api啊&#xff0c;写代码超级慢啊 很多必备的快捷键都没有&…

Maui的学习之路(2)--Mac窗体设置

Maui的学习之路今天是我开启Maui学习之路的第二天&#xff0c;我不是很高兴又能水一篇文章&#xff0c;我只能说这文章真好水。话不多说&#xff0c;我们进入正题&#xff0c;昨天解决了Windows下TitleBar以及窗体大小的问题&#xff0c;今天同样的问题&#xff0c;在Mac上又要…

ArcGIS10.8中如何获取线状、面状数据的折点,并计算折点坐标?

如下图所示为面状要素,ArcGIS10.8中如何获取线状和面状数据的折点(起点、终点、中点、端点),并计算折点的坐标(X,Y,Z,M)? 下图所示为线状(Polyline)和面状(Polygon)要素的起点、终点和折点的示意图。

[转]Cordova + Ionic in Visual Studio - 101 Tutorial [Part I]

本文转自&#xff1a;http://binarylies.ghost.io/cordova-ionic-in-visual-studio/ Hi everyone, I thought about lending a hand to all the people that are, as I have been recently, exploring Cordova and all its features for the first time. For the ones still tr…