http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0033
题意:
有一个形似央视大楼(Orz)的筒,从A口可以放球,放进去的球可通过挡板DE使其掉进B裤管或C裤管里,现有带1-10标号的球按给定顺序从A口放入,问是否有一种控制挡板的策略可以使B裤管和C裤管中的球从下往上标号递增。
输入:
第一行输入数据组数N。接下来N行为N组具体数据,每组数据中有10个整数,代表球的放入顺序。
输出:
本文URL地址:http://www.bianceng.cn/Programming/sjjg/201410/45523.htm
对于每组数据,若策略存在,输出YES;若不存在,输出NO
思路:用二进制枚举即可。
完整代码:
/*0ms,1008KB*/ #include<cstdio> #include<cstring> int a[15], l[15], r[15], t, i, j, lc, rc, cnt; bool vis[15], flag; bool solve() { for (i = 0; i < 1024; ++i) { memset(l, 0, sizeof(l)); memset(r, 0, sizeof(r)); lc = rc = 0; for (cnt = 0, j = i; cnt < 10; ++cnt, j >>= 1) { if (j & 1) l[lc++] = a[cnt]; else r[rc++] = a[cnt]; } flag = true; for (j = 1; j < lc; ++j) if (l[j] < l[j - 1]) { flag = false; break; } if (flag) for (j = 1; j < rc; ++j) if (r[j - 1] > r[j]) { flag = false; break; } if (flag) return true; } return false; } int main() { scanf("%d", &t); while (t--) { memset(vis, 0, sizeof(vis)); for (i = 0; i < 10; ++i) scanf("%d", &a[i]); puts(solve() ? "YES" : "NO"); } return 0; }
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数据
, for
, memset
, flag
, 输出
枚举description
迪威贵宾会官网dv0033、dvaj 0033女主叫什么、dvaj 0033 磁力、www.pp0033.com、yy0033 2015,以便于您获取更多的相关知识。
时间: 2024-08-30 14:24:15