Gym - 101670E Forest Picture (CTU Open Contest 2017 模拟)
题目:
https://cn.vjudge.net/problem/1451310/origin
题意&思路:
纯粹模拟。
大体题意是这样的:
1、有人要在一个10-9<=x<=109,10-9<=y<=109,这么大的一张纸上去画图,而我们只需要打印输出最大为0<=x<=100,0<=y<=100范围内的图案就ok了。
2、如果s==0的话就在给出的坐标处画一个“_o_”( ASCII codes 95, 111, 95)的图案,表示a tree stump。
3、如果s>0的话,就在给出的坐标处画一个高度为s的a standing tree,这个standing tree 首先有一个root图案为:“_|_”,(ASCII codes 95, 124, 95),然后有s个“|”表示树干,最后在最高的树干上边的一个单元格中画一个“^” ASCII code 94)。
4、另一个需要注意的地方是,题目中的坐标表示为左下角为(0,0),右上角是(m-1,m-1),需要做一下下标的变换对应到数组中。
代码:
#include <bits/stdc++.h>
#define inf 0x3f3f3f3f
using namespace std;
typedef long long ll;
const int maxn = ;
int mp[maxn][maxn];
int n,m; void Dn(int x,int y,int id){
if(x>= && x<m && y>= && y<m){//必须是在要输出的范围内才能画上图案
mp[x][y] = id;
}
return;
} void print(){
for(int i = ; i<m+; i++){
printf("*");
}
printf("\n");
for(int i = ; i<m; i++){
for(int j = ; j<m; j++){
if(j==)printf("*");
printf("%c",mp[i][j]);
if(j==m-)
printf("*\n");
}
}
for(int i = ; i<m+; i++){
printf("*");
}
printf("\n\n");
} int main(){
while(scanf("%d%d",&m,&n)!=EOF){
for(int i = ; i<m; i++){
for(int j = ; j<m; j++){
mp[i][j] = ;
}
}
int x,y,s;
for(int kk = ; kk<n; kk++){
scanf("%d%d%d",&s,&y,&x);//注意行和列的输入位置
x = m-x-;//由题意的坐标变换到数组中的下标中
if(s==){
Dn(x,y,);//打印'o'
Dn(x,y-,);//打印'_'
Dn(x,y+,);//打印'_'
}
else if(s>){
Dn(x,y,);//打印'|'
Dn(x,y-,);//打印'_'
Dn(x,y+,);//打印'_'
for(int i=; i<=s; i++){
Dn(x-i,y,);//打印'|'
Dn(x-i,y-,);//打印'/'
Dn(x-i,y+,);//打印'\'
}
Dn(x-s-,y,);//打印'^'
}
}
print();
}
return ;
}
Gym - 101670E Forest Picture (CTU Open Contest 2017 模拟)的更多相关文章
- Gym - 101670H Go Northwest!(CTU Open Contest 2017 思维题+map)
题目: Go Northwest! is a game usually played in the park main hall when occasional rainy weather disco ...
- Gym - 101670A Amusement Anticipation(CTU Open Contest 2017 签到题)
题目&题意: 倒着找处于最后位置的等差数列的开头的位置. 例: 1 5 3 4 5 6 3 4 5 6是等差数列,它的开头的位置是3 PS: 读题真的很重要!!!!多组输入,上来就读错了!! ...
- Gym - 101670F Shooting Gallery(CTU Open Contest 2017 区间dp)
题目&题意:(有点难读...) 给出一个数字序列,找出一个区间,当删除这个区间中的两个相同的数字后,只保留这两个数字之间的序列,然后继续删除相同的数字,问最多可以实行多少次删除操作. 例如: ...
- Gym - 101670G Ice cream samples(CTU Open Contest 2017 尺取法)
题目: To encourage visitors active movement among the attractions, a circular path with ice cream stan ...
- Gym - 101670H Dark Ride with Monsters(CTU Open Contest 2017 贪心)
题目: A narrow gauge train drives the visitors through the sequence of chambers in the Dark Ride attra ...
- Gym - 101670C Chessboard Dancing(CTU Open Contest 2017 找规律)
题目:链接 思路: 多画出几个情况就可以找出规律来了 Knight (当大于2的时候只要两种颜色相间出现就可以了) King(当大于等于3的时候,总可以用四种形式来补色,具体如下) Bishop(斜 ...
- Gym - 101670B Pond Cascade(CTU Open Contest 2017 贪心,二分)
题目: The cascade of water slides has been installed in the park recently and it has to be tested. The ...
- Gym - 101670J Punching Power(CTU Open Contest 2017 最大独立集)
题目: The park management finally decided to install some popular boxing machines at various strategic ...
- CTU Open Contest 2017
这场题很水.水题我就懒得贴了. B - Pond Cascade 优先队列维护这个水池需要多少时间 或者 直接扫一遍. #include <cstdio> #include <cst ...
随机推荐
- [RK3288][Android6.0] Display驱动初始化流程小结【转】
本文转载自:http://blog.csdn.net/kris_fei/article/details/52584903 Platform: RK3288OS: Android 6.0Kernel: ...
- 学习Flash Builder编程的准备工作
1. 下载教科书,Essential ActionScript 3.0或者Programming ActionScript 3.0.这将是你的很好的老师.英语不灵的买一本中文版本. 2. 安装Flas ...
- 解决 django 中 mysql gone away 的问题
最近在项目中,我使用 Django Command 模块写了一个脚本,处理从 MQ 发来的消息,并入库.在测试过程中,程序运行良好,但是在程序上线并运行一段时间后,出现了以下错误: Operation ...
- Linux 常规操作指南
1.修改Linux服务器别名 临时修改: vim /etc/hostname 修改别名 永久修改: vim /etc/sysconfig/network 添加 HOSTNAME=别名 重启服务器 ...
- daily_journal_2 神奇的一天
写博客日记的第二天,第一天立的flag开始有点松动啦,继续坚持啊!坚持就是胜利. 今天真是神奇的一天,上午的计划是照常进行的,但是前天淋雨赶上风寒,又吃了新疆室友的大补特产,龙体开始感觉到不适,于是上 ...
- 【NOIP模拟赛】一道挖掉背景的数学题
Title:[Empty] Time Limit:1000 ms Memory Limit:131072 KBytes Description 给定n与p,求\(\left\lfloor x^n\ri ...
- 离散化+BFS HDOJ 4444 Walk
题目传送门 /* 题意:问一个点到另一个点的最少转向次数. 坐标离散化+BFS:因为数据很大,先对坐标离散化后,三维(有方向的)BFS 关键理解坐标离散化,BFS部分可参考HDOJ_1728 */ # ...
- ACM_Hailstone HOTPO
Hailstone HOTPO Time Limit: 2000/1000ms (Java/Others) Problem Description: The hailstone sequence is ...
- 牛客网-3 网易编程题(1拓扑&2二叉树的公共最近祖先&3快排找第K大数)
1. 小明陪小红去看钻石,他们从一堆钻石中随机抽取两颗并比较她们的重量.这些钻石的重量各不相同.在他们们比较了一段时间后,它们看中了两颗钻石g1和g2.现在请你根据之前比较的信息判断这两颗钻石的哪颗更 ...
- 初学spring之入门案列
spring其实是一个很大的开源框架,而我学的就是spring framework,这只是spring其中的一小部分.有疑惑的可以去官网去看看,spring官网我就不提供了.一百度肯定有.和sprin ...