本文共 980 字,大约阅读时间需要 3 分钟。
额。。这道题亮点在:
$you$ $do$ $not$ $need$ $to$ $minimize$ $their$ $number.$所以说嘛。。。直接判断狼的四周有没有紧挨着的羊,没有的话,就直接空地全填狗输出。有的话就无解。之后就没了。。。很暴力。。。不过如果你问怎么做才能保证狗最少的话。。。。貌似是网络流。反正我不会。#include#include #include 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........DDSDDDDDSDWDDSDDDDDDWDDDDDDWDD1 2SW*/
转载地址:http://nikra.baihongyu.com/