18.03.25 vijos1063迎春舞会之集体舞

背景

HNSDFZ的同学们为了庆祝春节,准备排练一场舞会。

描述

表演者排成n排,构成一个向前的正三角形(在屏幕上,即向下)。而就每个人,他有可能正面朝前(小的向前正三角形)、或向后三角形(小的向后正三角形)。

然而这些人在服装上有明显区别——一部分穿冬季校服,其他的穿夏季校服。

现在给出每个人的着衣情况,请你求穿夏季校服的同学所构成的最大正三角形,输出所含人数。

格式

输入格式

第一排为n。

接下来n排,第i排有2*i-1个有效字符(‘#’或‘-’,分别表示此同学穿冬季校服或穿夏季校服)。输入文件中出现空格,且空格只是为了保持整个三角形的形状。

输出格式

输出人数。

样例1

样例输入1

5
#-##----#
 -----#-
  ---#-
   -#-
    -

样例输出1

9

限制

各个测试点1s

提示

n<=100

 1 #include <iostream>
 2 #include <algorithm>
 3 #include <stdlib.h>
 4 #include <cstdio>
 5 #include <memory.h>
 6
 7 using namespace std;
 8 const int maxn=150;
 9 int f[maxn][maxn];
10 char map[maxn][maxn];
11
12 int main()
13 {
14     int n,max0=0;
15     scanf("%d",&n);
16         for(int i=1;i<=n;i++)
17             for(int j=i;j<i+2*n+1-2*i;j++)
18                 scanf(" %c",&map[i][j]);
19         for(int i=1;i<=2*n-1;i++)
20             if(map[1][i]==‘-‘)
21                 f[1][i]=1,max0=1;
22     for(int i=2;i<=n;i++)
23         for(int j=i;j<=2*(n-i+1)-2+i;j++)
24         {
25             if(map[i][j]==‘-‘&&(i%2==j%2))
26                 f[i][j]=1;
27             if(map[i-1][j-1]==‘-‘&&map[i-1][j+1]==‘-‘&&map[i-1][j]==‘-‘&&f[i][j])
28                 f[i][j]=min(min(f[i-1][j-1]+1,f[i-1][j+1]+1),f[i-2][j]+2);
29             max0=max(f[i][j],max0);
30         }
31     printf("%d\n",max0*max0);
32     return 0;
33 }

哇这个输入……

为了这个wa了很多次……

事实上我现在还没明白这到底咋输入的……

下次再说吧(遁

跟盖房子那道是一样的?

以某点为三角形最下面那个角为基准 由可扩展点更新f[x][y](x,y是最下面那个顶角的行和列)

原文地址:https://www.cnblogs.com/yalphait/p/8647421.html

时间: 2024-10-08 23:02:50

18.03.25 vijos1063迎春舞会之集体舞的相关文章

[dp]vijos1063 迎春舞会之集体舞

题目梗概 一个大的三角形,其中有向下的正三角形和向上的正三角形.求最大的正三角的组成人数(阴影部分不能算入) 思考 这道题目卡了我好长时间,题目和之前做过的最大正方形有异曲同工之妙.只不过这道题目需要额外的处理一下. 首先我们看下向下的正三角如何求? 手动模拟会发现,和最大正方形类似.在i行j列的三角形的大小是受 (i-1,j) (i-1,j+1) (i-1,j-1) 这三个三角形的限制.这个我就不证明了.. 不过需要注意的是只有向下的三角形才能组成正三星形,这个怎么处理呢?每次记录Max值的之

tyvj1192 迎春舞会之集体舞

背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞会. 描述 表演者排成n排,构成一个向前的正三角形(在屏幕上,即向下).而就每个人,他有可能正面朝前(小的向前正三角形).或向后三角形(小的向后正三角形).    然而这些人在服装上有明显区别——一部分穿冬季校服,其他的穿夏季校服.    现在给出每个人的着衣情况,请你求穿夏季校服的同学所构成的最大正三角形,输出所含人数.     输入格式 第一排为n.    接下来n排,第i排有2*i-1个有效字符(‘#’或‘-’,分别表示此同学穿冬季校服

日本IT行业劳动力缺口达22万 在日中国留学生迎来就业好时机 2017/07/18 11:25:09

作者:倪亚敏 来源:日本新华侨报 发布时间:2017/07/18 11:25:09   据日本政府提供的数据,日本2018年应届毕业生的"求人倍率"已经达到了1.78倍.换言之,就是100名大学生里有178个就业岗位可选择,即使所有大学毕业生都进入劳动力市场,也还有78个岗位空缺.劳动力现状是寒冷冬天,而学生们确实迎来了就业春天. 在众多岗位当中,日本的信息技术(IT)领域采用的外国人留学生最多.去年,已经在日本企业就职的留学生当中(除去制造行业),27.3%的毕业生进入了IT行业.根

Docker 18.03私有仓库搭建

我们在使用Docker时 下载镜像一般都是在外网下载并使用.可是当我们没有外网时我们不得不自己搭建私有仓库.流程图:docker 版本[[email protected] ~]# docker versionClient:Version: 18.03.1-ceAPI version: 1.37Go version: go1.9.5Git commit: 9ee9f40Built: Thu Apr 26 07:20:16 2018OS/Arch: linux/amd64Experimental:

UnitSelector.ONDA.18.03.08 1CD+AutoDesSys form.Z pro v8.6.3.1 32&amp;64

Survey CAD System pfCAD agriCAD v4.0.40 农业绘图和设计软件Agricad PC提供农业绘图和设计工作的工具. 它是在CAD环境中开发的,主要功能是: 映射管理边界的验证和控制使用Supertrack进行工作的可视化和打印葡萄园和果园的设计枢轴灌溉设计泥浆扩散作业的管理 SynaptiCAD Product Suite 20.31 电子电路设计自动化软件使用SynaptiCAD工具,您可以开始分析和模拟设计思路,而无需完成整个电路或模型模型. Synapti

【模拟】Vijos P1062 迎春舞会之交谊舞

题目链接: https://vijos.org/p/1062 题目大意: 一群男女站成一排,一男一女配对,女的只找左边第一个空闲的男生,给定前n个女生左边的额男生个数,问前n个女生到男伴之间共有几个男生.(n<=1500 女生左侧男生231内) 题目思路: [模拟] 每个女生只找左边的最靠近的闲置男生,所以每当女生左边的男生数变化的时候就说明队伍里加入了新的男生,而这些男生只会影响右侧的女生. 所以我一开始想到,把男生分成好多群,加入一个女生完把最靠近她的男生群最右的男生配对给这个女生,然后该男

18.03.05 codevs1068 乌龟棋

题目描述 Description 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一 的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点. …… 1 2 3 4 5 ……N 乌龟棋中M张爬行卡片,分成4种不同的类型(M张卡片中不一定包含所有4种类型 的卡片,见样例),每种类型的卡片上分别标有1.2.3.4四个数字之一,表示使用这种卡 片后,乌龟棋子将向前爬行相应的格子数.游戏中,玩家每次需要从所有的爬行

18.03.09 vijos1014旅行商简化版

背景 欧几里德旅行商(Euclidean Traveling Salesman)问题也就是货郎担问题一直是困扰全世界数学家.计算机学家的著名问题.现有的算法都没有办法在确定型机器上在多项式时间内求出最优解,但是有办法在多项式时间内求出一个较优解. 为了简化问题,而且保证能在多项式时间内求出最优解,J.L.Bentley提出了一种叫做bitonic tour的哈密尔顿环游.它的要求是任意两点(a,b)之间的相互到达的代价dist(a,b)=dist(b,a)且任意两点之间可以相互到达,并且环游的路

18.03.14 类和对象作业2

A:Apple 描述 程序填空,使其输出4 5 1 #include <iostream> using namespace std; class Apple { // 在此处补充你的代码 static void PrintTotal() { cout << nTotalNumber << endl; } }; int Apple::nTotalNumber = 0; Apple Fun(const Apple & a) { a.PrintTotal(); ret