数格子算面积

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. 「NOI2014」动物园

    link : https://loj.ac/problem/2246 水水KMP #include<bits/stdc++.h> #define ll long long #define ...

  2. 转:关于使用ImageMagick和Tesseract进行简单数字图像识别

    据说Tesseract可是世界排名第三的OCR神器,2010年又更新了3.0版本.Tesseract原先是HP写的,现在Open Source了. 下面介绍怎么用Tesseract配合ImageMag ...

  3. mac 下配置 protobuf golang插件 并使用

    介绍 Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准Protocol Buffers 是一种轻便高效的结构化数据存储格式 可以用 ...

  4. HDU 1698 Just a Hook(线段树区间替换)

    题目地址:pid=1698">HDU 1698 区间替换裸题.相同利用lazy延迟标记数组,这里仅仅是当lazy下放的时候把以下的lazy也所有改成lazy就好了. 代码例如以下: # ...

  5. Django开发微信公众平台

    处理微信发来的信息,实际上就是处理xml的过程.先写xml工具类 # -*- coding:utf-8 -*- from xml.dom import minidom from Web.model.W ...

  6. [转] git clone 远程分支

    git clone只能clone远程库的master分支,无法clone所有分支,解决办法如下: 找一个干净目录,假设是git_work cd git_work git clone http://my ...

  7. FastDFS的配置、部署与API使用解读(5)FastDFS配置详解之Tracker配置(转)

    本文是 tracker.conf 配置文件的详细介绍. 1 基本配置 disable #func:配置是否生效 #valu:true.false disable=false bind_addr #fu ...

  8. UVA 10526 - Intellectual Property (后缀数组)

    UVA 10526 - Intellectual Property 题目链接 题意:给定两个问题,要求找出第二个文本抄袭第一个文本的全部位置和长度,输出前k个,按长度从大到小先排.长度一样的按位置从小 ...

  9. ok6410[002] ubuntu1604系统下搭配ckermit和dnw基于RAM的裸机程序调试环境

    ubuntu1604系统下搭配ckermit和dnw基于RAM的裸机程序调试环境 系统:  ubuntu16.04 裸板: 飞凌公司OK6410开发板 目标:搭建基于ubuntu1604系统和基于RA ...

  10. OpenCV 入门示例之二:播放 AVI 视频

    前言 本文展示一个播放 AVI 视频的程序.( 呵呵是 AVI 视频不是 AV 视频噢! ) 代码示例 // 此头文件包含图像IO函数的声明 #include "highgui.h" ...