首页 > 编程语言 >打卡信奥刷题(221)用C++信奥P1740[普及组/提高] Diamond A&B(1)

打卡信奥刷题(221)用C++信奥P1740[普及组/提高] Diamond A&B(1)

时间:2024-11-12 13:43:44浏览次数:3  
标签:空格 Diamond 信奥 ++ 60 le 教主 菱形 打卡

Diamond A&B(1)

题目背景

由于本题较难,将本题拆做两题,分别为 diamond A 以及 diamond B。本题为 Diamond A。

题目描述

教主上电视了!这个消息绝对是一个爆炸性的新闻。一经传开,大街上瞬间就没人了(都回家看电视去了),商店打烊,工厂停业。大家都把电视机的音量开到最大,教主的声音回响在大街小巷。

小 L 给小 X 慌乱地打开自己家的电视机,发现所有频道都播放的是教主的采访节目(-_-bbb)。只见电视屏幕上的教主笑意吟吟,给大家出了一道难题:

一个边长为 n n n 的大菱形被均匀地划分成了 n × n n\times n n×n 个边长为 1 1 1 的小菱形组成的网格,但是网格中部分边被抹去了,小 L L L 想知道,大菱形内有多少个平行四边形,这些平行四边形内不存在边(平行四边形内是空的)。

教主说,如果谁写出了程序,移动用户请将程序发送到 xxxx,联通用户请将程序发送到 xxxx……如果答对这个题,将有机会参加抽奖,大奖将是教主签名的 Orz 教主 T-Shirt 一件!这个奖品太具有诱惑力了。于是你需要编一个程序完成这么一道题。

输入格式

输入的第一行为一个正整数 n n n,为大菱形的边长。

以下 2 n 2n 2n 行,每行 2 n 2n 2n 个字符,字符为空格, / \verb!/! /, \ \verb!\! \ 中的一个。

前 n n n 行,第 i i i 行中居中有 2 i 2i 2i 个字符,这 2 i 2i 2i 个字符中位置为奇数的字符只可能为 / \verb!/! / 或者空格,位置为偶数的字符只可能为 \ \verb!\! \ 或空格,若为空格表示这样一条边不存在,其余字符均为空格,描述了大菱形的上半部分。

后 n n n 行,第 i i i 行居中有有 2 ( n − i + 1 ) 2(n-i+1) 2(n−i+1) 个字符,与上半部分类似地描述了菱形的下半部分。

输入文件保证大菱形的轮廓上没有边被抹去。

输出格式

第一行一个整数 n n n。

以下 2 × n + 1 2\times n+1 2×n+1 行,改为矩形后各边的输出, 1 1 1 表示有边, 0 0 0 表示无边。

样例 #1

样例输入 #1

4
   /\   
  /\/\  
 /\  /\ 
/  \/  \
\/\/ / /
 \/\  / 
  \ \/  
   \/

样例输出 #1

4
1111
11101
1000
10111
1100
10101
0111
11101
1111

提示

数据范围及约定

  • 对于 20 % 20\% 20% 的数据, n ≤ 10 n \le 10 n≤10;
  • 对于 40 % 40\% 40% 的数据, n ≤ 60 n \le 60 n≤60;
  • 对于 60 % 60\% 60% 的数据, n ≤ 200 n \le 200 n≤200;
  • 对于 100 % 100\% 100% 的数据, n ≤ 888 n \le 888 n≤888。

C++实现

#include<bits/stdc++.h>
using namespace std;
int n,m,o,x,y;
string s[1900];
int main()
{
scanf(“%d”,&n); //cin >> n;
printf(“%d\n”,n); //cout << n << endl;
m = 2 * n + 1;
while(m–) getline(cin,s[++o]);//o++,getline(cin,s[o]);
for(int i = 1;i <= 2 * n + 1;i++)
{
m = n,x = 1 + (i + 1) / 2,y = n - i / 2;
if(i % 2 == 0) m++;
while(m–)
{
if(s[x++][y++] == ’ ') printf(“0”);
else printf(“1”);
}
cout << endl;
}
return 0;
}
在这里插入图片描述

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

标签:空格,Diamond,信奥,++,60,le,教主,菱形,打卡
From: https://blog.csdn.net/rogeliu/article/details/143659840

相关文章

  • 识海社区打卡-3
    CodeforcesRound986(Div.2)赛后补题战况如下:当然打完这场升绿了,虽然我也没想到。b题wa了很多发还是阅读理解的水平不太够,还没又补了一个样例说明我就看明白了不过还是wa了几发,不过确实用了我太长时间,欠训了。比赛时c题我没有去实现,不过看样例猜了一个方法,赛后看答案我才发......
  • 南沙C++信奥赛老师解一本通题 1385:团伙(group)
    ​【题目描述】在某城市里住着n个人,任何两个认识的人不是朋友就是敌人,而且满足:1、我朋友的朋友是我的朋友;2、我敌人的敌人是我的朋友;所有是朋友的人组成一个团伙。告诉你关于这n个人的m条信息,即某两个人是朋友,或者某两个人是敌人,请你编写一个程序,计算出这个城市最多可能有多......
  • 考研打卡(14)
    开局(14)开始时间 2024-11-11 20:21:43结束时间 2024-11-11 22:00:55今天考研数学的资料到了数据结构设一组初始记录关键字序列为(50,40,95,20,15,70,60,45),则以增量d=4的一趟希尔排序结束后前4条记录关键字为_____(中国地质大学2017年)A40,50,20,95B15,40,60,20C15,20,......
  • 考研打卡(13)
    开局(13)开始时间 2024-11-10 21:56:51结束时间 2024-11-10 22:48:52今天去了河北经贸大学回来还打了剧本杀数据结构下列说法错误的事____(中国科学技术大学)A只有在线性表的初始状态为反序的情况下,冒泡排序过程中元素的移动次数才会达到最大值B只有在线性表的初始状......
  • 识海社区打卡-2
    今天打卡一道题,白天太忙了,没时间打卡树状数组,昨天就睡了三小时就去软考了差点没猝死我,回来路上还见识到了哈尔滨公交车的险恶导致下午三点才到校,花了一个小时吃饭洗漱然后就睡觉了,7点起到工位上,看了会昨天cf的题解摆烂了一会就到十点了,得抓紧更新打卡然后接着cf,明天还有早八悲,感觉......
  • 树状数组learning Day1识海社区打卡1st
    鉴于上次省赛的惨烈失败教训,狠狠加训,距离下次沈阳站还有两星期,再次感谢东北大学赐予的外卡机会,你知道的,东北大学一直是我的第二户籍所在地。今天到下星期周末为止估计都会持续更新树状数组和线段树相关的笔记。我的刷题顺序大概会按照[灵神提单](LC-Rating&Training)->codefor......
  • 泷羽sec-星光不负a-学习打卡-信息收集(3)
    天眼查https://www.tianyancha.com/(有经济条件开会员)企查查https://www.qcc.com/(可查询相关人电话和公开招标文件信息)谷歌搜索语法1.intext查找网页中含有某个关键字的网站例如:intext:登录后台2.intitle查找标题中含有某个关键词的网页例如:intitle:登录后台3......
  • python+flask计算机毕业设计好骑行打卡园app系统(程序+开题+论文)
    文件加密系统的设计与实现tp835本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容好骑行打卡园app系统毕业设计相关内容说明一、选题背景随着骑行运动在全球范围内的日益流行,与之相关的数字化服务......
  • 力扣21 打卡17 设计相邻元素求和服务
    思路:该方案通过构建一个字典,将每个元素值映射到其在二维数组中的坐标位置,以便快速查找。adjacentSum方法根据指定元素的坐标,计算其上下左右相邻元素之和;diagonalSum方法则计算该元素的四个对角线相邻元素之和。每个方法通过判断相邻坐标是否在数组边界内,确保不越界访问。......
  • 第一天打卡,udp协议
    今天学了udp协议基础,udp协议是一种无连接的网络协议,提供一种简单的方式来输送数据。发送:要用到的方法封装在InetAddress类中,其中DatagramSocket对象ds相当于快递员身份,不传递参数值的话会随机生成端口,进行输送快递(数据),快递的身份由DatagrampPacket对象充当,把东西打包。其中的......