zoukankan      html  css  js  c++  java
  • UVa 1641

    链接:

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4516

    题意:

    在一个h*w(2≤h,w≤100)的字符矩阵里用“.”、“”和“/”画出一个多边形,计算面积。

    分析:

    这是一道和几何相关的题目,不过不需要高深的几何知识。
    每个格子要么全白,要么全黑,要么半白半黑,只要能准确地判断出来即可。
    字符“”和“/”都是半白半黑,问题在 于“.”到底是全白还是全黑。
    解决方法是从上到下从左到右处理,沿途统计“/”和“”。
    当这两个字符出现偶数次时说明接下来的格子在多边形外;奇数次则说明接下来的格子在多边形内。

    代码:

     1 import java.io.*;
     2 import java.util.*;
     3 
     4 public class Main {
     5     Scanner cin = new Scanner(new BufferedInputStream(System.in));
     6     
     7     void MAIN() {
     8         while(cin.hasNext()) {
     9             int h = cin.nextInt();
    10             int w = cin.nextInt();
    11             int ans = 0, half = 0;
    12             while(h --> 0) {
    13                 char s[] = cin.next().toCharArray();
    14                 for(int i = 0; i < w; i++) {
    15                     if(s[i] == '.') {
    16                         if(half % 2 == 1) ans++;
    17                     } else half++;
    18                 }
    19             }
    20             System.out.println(ans + half/2);
    21         }
    22     }
    23     
    24     public static void main(String args[]) { new Main().MAIN(); }
    25 }
  • 相关阅读:
    hdoj1587
    欧拉定理及其应用
    hdoj1571
    hdoj1050
    POJ推荐50题
    poj2593
    hdoj1286
    hdoj1215七夕节
    我的Linux软件
    ACM题目推荐--《算法艺术与信息学竞赛》(转)
  • 原文地址:https://www.cnblogs.com/hkxy125/p/9631821.html
Copyright © 2011-2022 走看看