SDUT 2405 Strange Square(DFS)
题目链接
省赛热身赛C题,当时还不会DFS。。。我是直接暴力枚举了9个点,加上个小剪枝,去判重复的操作很重要。。。我在DFS中开一个数组记录在这一层是否搜过这个数。开始忘加Case , 2Y。
1 #include <stdio.h> 2 #include <string.h> 3 int p[10],o[10],k[10],z; 4 void dfs(int x) 5 { 6 int sum,sum1,i,j,a; 7 int q[10],w; 8 if(x > 9) 9 { 10 sum = k[1] + k[2] + k[3]; 11 sum1 = k[1] + k[4] + k[7]; 12 if(sum == (k[4] + k[5] + k[6])&&sum == (k[7] + k[8] + k[9])) 13 { 14 if(sum1 == k[2]+k[5]+k[8]&&sum1 == k[3]+k[6]+k[9]) 15 z ++; 16 else 17 return; 18 } 19 return ; 20 } 21 if(x > 7) 22 { 23 sum = k[1] + k[2] + k[3]; 24 if(sum != (k[4] + k[5] + k[6])) 25 return ; 26 } 27 if(x == 9) 28 { 29 sum1 = k[1] + k[4] + k[7]; 30 if(sum1 != k[2]+k[5]+k[8]) 31 return ; 32 } 33 j = 1; 34 for(i = 1; i <= 9; i ++) 35 { 36 w = 1; 37 for(a = 1;a <= j-1;a ++) 38 { 39 if(q[a] == p[i]) 40 { 41 w = 0; 42 break; 43 } 44 } 45 if(!o[i]&&w) 46 { 47 q[j] = p[i]; 48 j ++; 49 k[x] = p[i]; 50 o[i] = 1; 51 dfs(x+1); 52 o[i] = 0; 53 } 54 } 55 } 56 int main() 57 { 58 int i,t,num = 0; 59 scanf("%d",&t); 60 while(t--) 61 { 62 z = 0; 63 num ++; 64 memset(o,0,sizeof(o)); 65 memset(k,0,sizeof(k)); 66 for(i = 1; i <= 9; i ++) 67 scanf("%d",&p[i]); 68 dfs(1); 69 printf("Case %d: ",num); 70 printf("%d\n",z); 71 } 72 return 0; 73 }
转载于:https://www.cnblogs.com/naix-x/archive/2012/07/17/2594566.html
SDUT 2405 Strange Square(DFS)相关推荐
- sdut 3361迷宫探索dfs
Problem Description 有一个地下迷宫,它的通道都是直的,而通道所有交叉点(包括通道的端点)上都有一盏灯和一个开关:请问如何从某个起点开始在迷宫中点亮所有的灯并回到起点? Input ...
- HDU-1518 Square dfs+剪枝
该题问给定的棍子能否组成一个正方形.首先我们要判定是否总长度是4的倍数,然后再决定是否存在某条边大于组合边长. 搜索的过程中也是可以进行剪枝了. 首先将边排序,我们可以假定所有的组合边由大小递减的边组 ...
- CodeForces - 962C Make a Square (dfs)
水题 深搜即可 但要注意前导0的问题 #include<stdio.h> #include<stdlib.h> #include<string.h> #includ ...
- 虚幻引擎 4.10 发布信息
版本信息 SHARE: 该版本为虚幻引擎 4 带来数百项更新,包括由 GitHub 上的虚幻引擎开发人员社区提交的 53 项改进!感谢虚幻引擎 4.10 的所有贡献者: Andreas Axelsso ...
- 2362:Square 能否拼接为正方形 . DFS+回溯
///dfs时带返回值 回溯时与不带返回值的不一样,判断终止条件也不太一样 ///判断终止条件及终止条件应该有哪些变化时,只需举一个正确终止时的情况去判断 int visit[99999];int a ...
- 【HDU - 1518】Square (经典的dfs + 剪枝)
题干: Given a set of sticks of various lengths, is it possible to join them end-to-end to form a squar ...
- SDUT 1157-小鼠迷宫问题(BFSamp;DFS)
SDUT 1157-小鼠迷宫问题(BFS&DFS) 小鼠迷宫问题 Time Limit: 1500ms Memory limit: 65536K 有疑问?点这里^_^ 题目描写叙述 小鼠 ...
- sdut 2107 DFS
Problem Description 请定一个无向图,顶点编号从0到n-1,用深度优先搜索(DFS),遍历并输出.遍历时,先遍历节点编号小的. Input 输入第一行为整数n(0 < n &l ...
- SDUT 1265-马停下过河卒(DFS)
马拦过河卒 Time Limit: 3000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描写叙述 棋盘上A点有一个过河卒,须要走到目标B点.卒行走的规则:可以向下. ...
最新文章
- Java中classpath配置
- mariadb编译安装流程
- python到底可以做什么-Python究竟是什么?能干嘛?
- [Java]jdbc[转]
- css样式全大写,用css样式表实现首字大写
- 视频移动侦测VMD的实现
- 网络共享服务器 samba
- OpenSuSE 网络配置
- DEDECMS 另类***
- 虚拟机 安装 linux 分辨率 调整
- LNMP环境下搭建wordpress
- vue.js提示Vue is not a constructor或Vue.createApp is not a function解决方法
- CSAPP实验记录(二)Bomb Lab
- [转]移动IIS7.5默认inetpub目录_se7en3_新浪博客
- cgb2108-day02
- 硬件篇——阻容一阶滤波电路
- 李宏毅language课程Speach Recongition
- 2021美赛B题翻译
- 三角形顺时针和逆时针的判定
- java +Selenium 2 环境搭建