码迷,mamicode.com
首页 > 其他好文 > 详细

AOJ 0033 Ball 题解 《挑战程序设计竞赛》

时间:2017-02-04 16:27:05      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:.net   size   二进制   http   bool   namespace   turn   方法   tor   

题目:Aizu - 0033 

思路:二进制枚举,用了昨天学到的2^N以及与运算方法枚举。

 1 #include <iostream>
 2 #include <vector>
 3 #include <algorithm>
 4 
 5 using namespace std;
 6 
 7 int n;
 8 int ball[10]; 
 9 vector<int> l;
10 vector<int> r;
11 
12 bool solve() {
13     bool res = false;
14     for (int i = 0; i < 1024; i++) {
15         for (int j = 0; j < 10; j++) {
16             if (i & (1 << j)) {
17                 l.push_back(ball[j]);
18             }
19             else {
20                 r.push_back(ball[j]);
21             }
22         }
23         int lLen = l.size();
24         int rLen = r.size();
25         bool lOK = true;
26         bool rOK = true;        
27         for (int j = 0; j < lLen - 1; j++) {
28             if (l.at(j) > l.at(j + 1)) {
29                 lOK = false;
30                 break;
31             }
32         }
33         for (int j = 0; j < rLen - 1; j++) {
34             if (r.at(j) > r.at(j + 1)) {
35                 rOK = false;
36                 break;
37             }
38         }
39         if (lOK && rOK) {
40             res = true;
41             break;
42         }
43         l.clear();
44         r.clear();        
45     }
46     return res;
47 }
48 
49 int main() {
50     cin >> n;
51     for (int i = 0; i < n; i++) {
52         for (int j = 0; j < 10; j++) {
53             cin >> ball[j];
54         }        
55         if (solve()) {
56             cout << "YES" << endl;
57         } 
58         else {
59             cout << "NO" << endl;
60         }
61     }
62     return 0;
63 }

 

AOJ 0033 Ball 题解 《挑战程序设计竞赛》

标签:.net   size   二进制   http   bool   namespace   turn   方法   tor   

原文地址:http://www.cnblogs.com/carolunar/p/6365110.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!