题解 CF948A 【Protect Sheep】

简介: 题目链接 额。。这道题亮点在:$you$ $do$ $not$ $need$ $to$ $minimize$ $their$ $number.$所以说嘛。。。直接判断狼的四周有没有紧挨着的羊,没有的话,就直接空地全填狗输出。

题目链接

额。。这道题亮点在:

$you$ $do$ $not$ $need$ $to$ $minimize$ $their$ $number.$

所以说嘛。。。

直接判断狼的四周有没有紧挨着的羊,没有的话,就直接空地全填狗输出。
有的话就无解。之后就没了。。。很暴力。。。

不过如果你问怎么做才能保证狗最少的话。。。。

貌似是网络流。
反正我不会。

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
char map[510][510];
int r,c;
int main()
{
    scanf("%d%d",&r,&c);
    for(int i=1;i<=r;i++)
      for(int j=1;j<=c;j++)
      cin>>map[i][j];//输入

    for(int i=1;i<=r;i++)
      for(int j=1;j<=c;j++)
      {
          if(map[i][j]=='S')
          {
              if(map[i-1][j]=='W'||map[i][j-1]=='W'||map[i+1][j]=='W'||map[i][j+1]=='W')//判断
            {
                printf("No");
                return 0;
            }
        }
      }
      printf("Yes\n");
    for(int i=1;i<=r;i++,puts(""))
      for(int j=1;j<=c;j++)
      {
          if(map[i][j]=='.') printf("D");//如果是空地,则全变成狗。
        else printf("%c",map[i][j]);//输出。
      }
      return 0;//程序拜拜。
    
}
/*
6 6
..S...
..S.W.
.S....
..W...
...W..
......

DDSDDD
DDSDWD
DSDDDD
DDWDDD
DDDWDD

1 2
SW


*/

 



相关文章
LeetCode 67. Add Binary
给定两个二进制字符串,返回它们的总和(也是二进制字符串)。 输入字符串都是非空的,只包含字符1或0。
75 0
LeetCode 67. Add Binary
|
vr&ar
CF482B. Interesting Array(线段树)
CF482B. Interesting Array(线段树)
63 1
|
人工智能 BI
CF1169C. Increasing by Modulo(二分)
CF1169C. Increasing by Modulo(二分)
131 0
CF1454 E. Number of Simple Paths (基环树 拓扑排序)
CF1454 E. Number of Simple Paths (基环树 拓扑排序)
92 0
|
存储
Leetcode-Medium 2. Add Two Numbers
Leetcode-Medium 2. Add Two Numbers
66 0
题解 CF950B 【Intercepted Message】
题目链接 先吐槽一番:本宝宝好久没写过题解了。。。首先我们想一个贪心策咯。就是我们预处理出前缀和,然后一边扫过去,记录一个l1,l2和一个n1,n2。分别表示我们现在第一个数组切到l1,上一次切是在n1处。
982 0