FirstStep(洛谷P3654题题解,Java语言描述)
生活随笔
收集整理的這篇文章主要介紹了
FirstStep(洛谷P3654题题解,Java语言描述)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目要求
題目鏈接
分析
題意簡(jiǎn)單的說(shuō)就是找連續(xù)的 “.” 。
必須是水平連續(xù)或是垂直連續(xù)。
當(dāng)然是開(kāi)一個(gè)暴力的搜索算法啦!
從開(kāi)始搜到最后,每次只搜右向和下向,避免重復(fù)搜索,注意防止越界。
但是!!!當(dāng)連續(xù)值為1的時(shí)候,直接找一下一共幾個(gè)點(diǎn)就行了,否則就會(huì)重復(fù)一倍。
AC代碼(Java語(yǔ)言描述)
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;public class Main {public static void main(String[] args) throws IOException {int result = 0;BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));String[] line1 = reader.readLine().split("\\s+");int n = Integer.parseInt(line1[0]), m = Integer.parseInt(line1[1]), k = Integer.parseInt(line1[2]);char[][] graph = new char[n][m];for (int i = 0; i < n; i++) {char[] read_temp = reader.readLine().toCharArray();for (int j = 0; j < m; j++) {graph[i][j] = read_temp[j];}}reader.close();if (k == 1) {for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {if (graph[i][j] == '.') {result++;}}}System.out.println(result);return;}boolean flag = false;for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {for (int p = 0; p < k; p++) {if (i+p >= n) {flag = true;break;} else if (graph[i+p][j] != '.') {flag = true;}}if (flag) {flag = false;} else {result++;}for (int p = 0; p < k; p++) {if (j+p >= m) {flag = true;break;} else if (graph[i][j+p] != '.') {flag = true;}}if (flag) {flag = false;} else {result++;}}}System.out.println(result);} }總結(jié)
以上是生活随笔為你收集整理的FirstStep(洛谷P3654题题解,Java语言描述)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【Java】灵活使用自定义注解和反射
- 下一篇: 又是毕业季I 【O(1)数论】(洛谷P1