zju 2100 Seeding(dfs暴搜)
来源:互联网 发布:天融信应届生工资 知乎 编辑:程序博客网 时间:2024/05/18 02:45
感觉这题就像是在判断给你的这个图是不是半欧拉图,
判断图G是欧拉图当且仅当G为连通图,且所有点度为偶数。
判断图G是半欧拉图当且仅当G为连通图,且当且仅当2个点度数为奇数。
欧拉图也是半欧拉图。
但是,从里理论上来说,可以做出来,还要用并查集判断是否连接,感觉繁了点,不过,时间应该要比DFS的少,速度要快。
但是由于本来很懒,很懒,所以只是提出建议,可以这样做,自己做了一下,感觉可以,就不做了。
附上DFS代码:
#include<iostream>#include<cstring>using namespace std;#define MAX_N 10char map[MAX_N][MAX_N];bool use[MAX_N][MAX_N],succeed;int n,m,numstones,numseed;void Init(){memset(map,'S',sizeof(map));memset(use,false,sizeof(use));numstones=0;succeed=false;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){cin>>map[i][j];if(map[i][j]=='S')numstones++;}numseed=n*m-numstones;}bool dfs(int x,int y,int k){if(map[x][y]=='S' || use[x][y])return false;use[x][y]=true;if(succeed || k==1 || dfs(x+1,y,k-1)||dfs(x-1,y,k-1)||dfs(x,y+1,k-1)||dfs(x,y-1,k-1)){succeed=true;return true;}use[x][y]=false;return false;}int main(){while(cin>>n>>m && n&& m){Init();dfs(1,1,numseed)?cout<<"YES"<<endl:cout<<"NO"<<endl;}return 0;}
- zju 2100 Seeding(dfs暴搜)
- zoj 2100 Seeding(dfs)
- ZOJ 2100--Seeding【DFS】
- 2100 Seeding【dfs】
- zoj 2100 Seeding 【dfs】
- ZOJ 2100 Seeding(dfs)
- ZOJ 2100 Seeding DFS
- ZOJ 2100 seeding 【DFS】
- ZOJ 2100 Seeding(简单DFS)
- zoj 2100 seeding(dfs)
- Seeding【dfs】
- Seeding 【dfs】
- zoj 2100 Seeding(DFS水水~)
- ZOJ 题目2100 Seeding(DFS)
- Seeding 2900 【DFS】
- Seeding zoj2100 【DFS】
- HDOJ Seeding (DFS)
- zoj 2100Seeding(dfs+回溯)
- IMF android input method 输入法研究
- linux下sqlplus中回退键乱码
- 导入/导出 Excel 的基本方法
- megaminx之旅一:创建一个模块
- 菜鸟之驱动开发1
- zju 2100 Seeding(dfs暴搜)
- 在主机和虚拟机下如何传递文件
- 龙卷风一样
- Android开发实例详解之IMF(Android SDK Sample—SoftKeyboard)
- Android3系列 -4.事件机制及处理方式(附工程文件下载) .
- git使用补丁方式进行软件代码提交
- 推挽电路
- 事务处理
- HDU 1754 i hate it