zoukankan      html  css  js  c++  java
  • hdu 4016搜索

    这题看完本来以为是找规律的,可找了半天也没找出啥规律,翻了一下解题报告,说是搜索加剪枝,学了一下,就过了。

    /*
     * hdu4016/win.cpp
     * Created on: 2012-11-9
     * Author    : ben
     */
    #include <cstdio>
    #include <cstdlib>
    #include <cstring>
    #include <cmath>
    #include <ctime>
    #include <iostream>
    #include <algorithm>
    #include <queue>
    #include <set>
    #include <map>
    #include <stack>
    #include <string>
    #include <vector>
    #include <deque>
    #include <list>
    #include <functional>
    #include <numeric>
    #include <cctype>
    using namespace std;
    typedef long long LL;
    const int MAXN = 42;
    const LL MAX = 0x7fffffffffffffffLL;
    int n, k;
    LL data[MAXN], ans, ands[MAXN];
    
    void dfs(int now, int step, LL num) {
        if(num < ans) {
            ans = num;
        }
        if(now == n || step == k) return ;
        if((num & ands[now]) < ans) {
            dfs(now + 1, step + 1, num & data[now]);
            dfs(now + 1, step, num);
        }
    }
    
    int main() {
    #ifndef ONLINE_JUDGE
        freopen("data.in", "r", stdin);
    #endif
        int T;
        scanf("%d", &T);
        for(int t = 1; t <= T; t++) {
            scanf("%d%d", &n, &k);
            for(int i = 0; i < n; i++) {
                scanf("%I64d", &data[i]);
            }
            sort(data, data + n);
            copy(data, data + n, ands);
            ands[n] = MAX;
            for(int i = n - 1; i >= 0; i--) {
                ands[i] &= ands[i + 1];
            }
            ans = data[0];
            dfs(0, 0, MAX);
            printf("Case #%d: %I64d\n", t, ans);
        }
        return 0;
    }
  • 相关阅读:
    fullCalendar改造计划之带农历节气节假日的万年历(转)
    Linked List Cycle
    Remove Nth Node From End of List
    Binary Tree Inorder Traversal
    Unique Binary Search Trees
    Binary Tree Level Order Traversal
    Binary Tree Level Order Traversal II
    Plus One
    Remove Duplicates from Sorted List
    Merge Two Sorted Lists
  • 原文地址:https://www.cnblogs.com/moonbay/p/2762615.html
Copyright © 2011-2022 走看看