Aizu 0033 Ball(dfs,贪心)
2015-10-18 15:15
239 查看
日文题面...题意:是把一连串的有编号的球往左或者往右边放。问能不能两边都升序。
记录左边和右边最上面的球编号大小,没有就-1,dfs往能放的上面放。
记录左边和右边最上面的球编号大小,没有就-1,dfs往能放的上面放。
#include<bits/stdc++.h> using namespace std; inline int read() { int ret; char c; while(c = getchar(),c<'0'||c>'9'); ret = c-'0'; while(c = getchar(),c>='0'&&c<='9') ret = ret*10 + c-'0'; return ret; } int reads() { int ret; char c; while(c = getchar(),c != '-' && c<'0'||c>'9'); bool Sign = c == '-'; ret = Sign?0:c-'0'; while(c = getchar(),c>='0'&&c<='9') ret = ret*10 + c-'0'; return Sign?-ret:ret; } int a[11]; bool dfs(int i = 0,int lsl = -1,int lsr = -1) { if(i == 10) return true; return ( (!~lsl || a[i] > a[lsl]) && dfs(i+1,i,lsr) )||( (!~lsr || a[i] > a[lsr]) && dfs(i+1,lsl,i) ); } //#define LOCAL int main() { #ifdef LOCAL freopen("in.txt","r",stdin); #endif int T = read(); while(T--){ for(int i = 0; i < 10; i++) a[i] = read(); puts(dfs()?"YES":"NO"); } return 0; }
相关文章推荐
- Aizu 2170 Marked Ancestor(并查集变形)
- POJ 2010 Moo University - Financial Aid(堆维护滑窗kth,二分)
- 正确理解wait()和notify()方法
- NDK链接main(可执行)链接so
- phalapi-进阶篇1(Api,Domain,和Model)
- grails邮件服务
- 20.Climbing Stairs
- HDU 4770 Lights Against Dudely(二进制枚举子集)
- Error:Execution failed for task ':asynctask:packageDebug'
- UVa1326--Jurassic Remains(折半搜索)
- RAID基础知识总结
- iframe与主框架跨域相互访问方法
- Outlook 2013 重新联姻Hotmail ,Exchange ActiveSync牵线搭桥
- Django使用email进行身份验证
- Brain的同步规则
- 解决:打开OleView报错 dllregisterserver in iviewers failed
- C++中智能指针的设计和使用 http://blog.csdn.net/hackbuteer1/article/details/7561235
- 解决os x el capitan proxychains 不能用 (关闭SIP)
- <LeetCode><Easy> 70 Climbing Stairs #斐波那契数列
- mesos-go/examples/zkdetect/main.go 测试