数格子算面积

Time Limit: 1000MS Memory limit: 262144K

题目描述

给你一个多边形(用’\’和’/’表示多边形的边),求多边形的面积。

输入

 第一行两个正整数h 和 w (2 ≤ h, w ≤ 100),h是多边形所在平面的高,w是多边形所在平面的宽,接下来h行,每行w个字符,描述了整个平面的每个单元(每个单元是一个单位面积),字符只会是’\’,’/’和’.’其中之一,’\’,’/’表示多边形的边,’.’表示空白单元。

输出

 输出一个数,输入代表的平面内多边形的单位面积。

示例输入

4 4
/\/\
\../
.\.\
..\/

示例输出

8

提示

 

来源

青岛理工交流赛
 
 
     算法分析:一开始以为此题目不简单,但经过仔细分析后原来是道水题!
                 对于初始的图案,要么是 图形外,要么是图形内! 而我们要计算的是 图形内的面积。
                 (1)如果该行 全是‘.’的图案,说明这行绝对没在图形内。
                 (2)对于当前的这行,从左边是开始找到一个‘/’ 或者‘\’的字符, 说明这是 图形在该行的边。 同理在该行再从 右边往左找到一个‘/’ 或者 ‘\’ 的字符。  说明这是在该行上的右边的边。 只要把每行上的这样的面积累加就是最后的总面积。
                 (3)‘/’ 和‘\’的字符对总面积的贡献是 半个, 而字符‘.’ 对总面积的贡献是 1个。
/\/\   // 对于该行第一字符就是‘/’,说明这是左边,第四个字符‘\’是右边, 该行的面积是:半个+半个+半个+半个
\../ // 该行的面积是:半个+1个+1个+半个
.\.\ // 该行的面积是:0 + 半个+1个+半个
..\/ // 该行的面积是:0 + 0 +半个+半个 (4)最后半个的总数别忘了除2 ! 代码如下:
#include <iostream>
#include <string>
#include <stdio.h>
#include <string.h>
#include <algorithm> using namespace std; char map[200][200]; int main()
{
int n, m;
int i, j, k;
int dd;
int bn, zh, area; while(scanf("%d %d", &n, &m)!=EOF)
{
for(i=0; i<n; i++)
{
scanf("%s", map[i] );
}
bn=0;
zh=0;
area=0;
for(i=0; i<n; i++)
{
j=0;
while(map[i][j]=='.' && j<m )
{
j++;
}
if(j==m-1)
{
continue;
}
dd=m-1;
while(map[i][dd]=='.' && dd>=0 )
{
dd--;
} for(k=j; k<=dd; k++)
{
if(map[i][k]==47 || map[i][k]==92 )
{
bn++;
}
else
{
zh++;
}
}
}
area=bn/2+zh;
cout<<area<<endl;
}
return 0;
}

  

  

青岛理工ACM交流赛 J题 数格子算面积的更多相关文章

  1. 记:青岛理工ACM交流赛筹备工作总结篇

    这几天筹备青岛理工ACM交流赛的过程中遇到了不少问题也涨了不少经验.对非常多事也有了和曾经不一样的看法, ​一直在想事后把这几天的流水帐记一遍,一直没空直到今天考完C++才坐下来開始动笔.将这几天的忙 ...

  2. Sdut 2416 Fruit Ninja II(山东省第三届ACM省赛 J 题)(解析几何)

    Time Limit: 5000MS Memory limit: 65536K 题目描述 Haveyou ever played a popular game named "Fruit Ni ...

  3. 福建工程学院第十四届ACM校赛J题题解

    第六集,想不到你这个浓眉大眼的都叛变革命了 题意: 给你两个只包含01的字符串S和T,问你在允许一次错误的情况下,T是否能成为S的子串 思路: 这个问题的解法挺多,我是用fft匹配的,也比较简单,针对 ...

  4. 青岛理工交流赛 H题 素数间隙

    13110581088注销 素数间隙 Time Limit: 1000MS Memory limit: 262144K 题目描述 Neko猫是一个很喜欢玩数字游戏的会说话的肥猫,经常会想到很多很好玩的 ...

  5. luogu 1327 数列排序 & 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 J题 循环节

    luogu 1327 数列排序 题意 给定一个数列\(\{an\}\),这个数列满足\(ai≠aj(i≠j)\),现在要求你把这个数列从小到大排序,每次允许你交换其中任意一对数,请问最少需要几次交换? ...

  6. ACM交流赛感悟

    A题很水,字符串匹配,提交好几次都没通过,后来老何提醒后,发现题意理解错了,改过来之后,还是没过----------------在敲代码之前,一定要三个人统一一下思路,思路一样的话,开敲: F题是简单 ...

  7. 福建工程学院第十四届ACM校赛M题题解 fwt进阶,手推三进制fwt

    第九集,结束亦是开始 题意: 大致意思就是给你n个3进制的数字,让你计算有多少对数字的哈夫曼距离等于i(0<=i<=2^m) 思路: 这个是一个防ak题,做法是要手推公式的fwt 大概就这 ...

  8. 青岛理工大学第五届ACM交流赛 部分题解

    A:后缀维护si*pi的最小值,查询的时候二分,判断后缀和当前两个部分就行. #include <bits/stdc++.h> using namespace std; typedef l ...

  9. 2013 ACM/ICPC 长沙网络赛J题

    题意:一个数列,给出这个数列中的某些位置的数,给出所有相邻的三个数字的和,数列头和尾处给出相邻两个数字的和.有若干次询问,每次问某一位置的数字的最大值. 分析:设数列为a1-an.首先通过相邻三个数字 ...

随机推荐

  1. HDU 4349 Xiao Ming's Hope 找规律

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4349 Xiao Ming's Hope Time Limit: 2000/1000 MS (Java/ ...

  2. Spring Cloud服务的注册与发现

    Spring Cloud简介: Spring Cloud为开发人员提供了快速构建分布式系统中的一些通用模式(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分 ...

  3. 邁向IT專家成功之路的三十則鐵律 鐵律二十四:IT人歲月增長之道-智慧

    老子曾經在道德經中提到:「以道為本而繁守不失的,可算是長久.身雖死亡而精神不朽的,可算是長壽」.人在世間最悲哀的莫過於老死,但最可貴的則莫過於智慧.只是人的智慧不一定會隨著年齡的增長與歲月的流逝而成長 ...

  4. [Algorithm] Write a Depth First Search Algorithm for Graphs in JavaScript

    Depth first search is a graph search algorithm that starts at one node and uses recursion to travel ...

  5. Git 常用场景操作

    git init      在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个repo,并在当前文件夹下创建一个.git文件夹.   git clone      获取一个u ...

  6. MRP routing设置释疑

    Jeffer9@gmail.com         工艺是指在不同工作中心执行的作业序列         作业的详细信息 Number of cycles 在该工作中心操作几个循环 Number of ...

  7. 华为P7电信4G版刷机包 EMUI2.3 官方B125 第3版 精简 ROOT

    ROM介绍 基于底包至 B125 SP03解包制作 增加自己订制的超美丽EMUI 2.3专用的全局主题 自调刷机脚本,全部权限完美百分百与官方原版相贴合. 加入Root权限并使用SuperSU 2.0 ...

  8. OpenGL 与 GLSL 版本号

    来自:https://github.com/mattdesl/lwjgl-basics/wiki/GLSL-Versions You can use the #version command as t ...

  9. Android开源git40个App源代码

    (JamsMusicPlayer)非常棒的音乐播放器(new)   (F8)日程安排的软件   (Conversations)基于XMPP的应用   (Bitocle)能够在手机上查看自己github ...

  10. 宜信开源微服务任务调度平台(SIA-TASK)

    背景 无论是互联网应用或者企业级应用,都充斥着大量的批处理任务.常常需要一些任务调度系统帮助开发者解决问题.随着微服务化架构的逐步演进,单体架构逐渐演变为分布式.微服务架构.在此的背景下,很多原先的任 ...