[DFS] AOJ 0033 Ball
2015-07-20 21:16
519 查看
AOJ 0033 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0033
题意:(见图)有一个形似央视大楼的筒,从A口可以放球,放进去的球可通过挡板DE使其掉进B裤管或C裤管里,现有带1-10标号的球按给定顺序从A口放入,问是否有一种控制挡板的策略可以使B裤管和C裤管中的球从下往上标号递增。 输入:第一行输入数据组数N。接下来N行为N组具体数据,每组数据中有10个整数,代表球的放入顺序。输出:对于每组数据,若策略存在,输出YES;若不存在,输出NO。
没什么好说的。。基础dfs
题意:(见图)有一个形似央视大楼的筒,从A口可以放球,放进去的球可通过挡板DE使其掉进B裤管或C裤管里,现有带1-10标号的球按给定顺序从A口放入,问是否有一种控制挡板的策略可以使B裤管和C裤管中的球从下往上标号递增。 输入:第一行输入数据组数N。接下来N行为N组具体数据,每组数据中有10个整数,代表球的放入顺序。输出:对于每组数据,若策略存在,输出YES;若不存在,输出NO。
没什么好说的。。基础dfs
#include<iostream> #include<memory.h> using namespace std; int arr[10],used[10]; void DFS(int pre,int cur) { if(cur<10&&arr[pre]<arr[cur]) { used[cur]=1; DFS(cur,cur+1); } else if(cur<10&&arr[pre]>=arr[cur]) DFS(pre,cur+1); } int main() { int T,pre; bool judge; cin>>T; while(T--) { for(int i=0;i<10;i++) cin>>arr[i]; for(int i=0;i<10;i++) { memset(used,0,sizeof(used)); used[i]=1; DFS(i,i+1); judge=false; pre=0; for(int j=0;j<10;j++) if(used[j]==0) if(pre>=arr[j]) { judge=true; break; }else pre=arr[j]; if(!judge) { cout<<"YES"<<endl; break; } } if(judge)cout<<"NO"<<endl; } }
相关文章推荐
- 类和对象、封装和继承
- 奇偶剪枝
- Codeforce219C——贪心——Color Stripe
- POJ 3261 Milk Patterns sa+二分
- 剑指offer-面试题2.实例Singleton模式
- Cookbook编写
- C++中的四种强制类型转换
- 防火墙修改
- IT常用Terms
- ros创建package 总结
- hdu4135 co-prime(容斥原理)
- x86 INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
- 2015072003 - 中国人去日本就医
- Log4net使用
- [LeetCode][Java] Construct Binary Tree from Preorder and Inorder Traversal
- javascript中英文字符长度判断
- 如何添加 actions
- Gcc对头文件与库文件的搜索路径
- MYCNCART博客系统
- MYCNCART博客系统