• SRM 621 D2L3: MixingColors, math


    题目:http://community.topcoder.com/stat?

    c=problem_statement&pm=10409&rd=15854


    利用高斯消元求线性空间的基,也就是求矩阵的秩。

    代码:

    #include <algorithm>
    #include <functional>
    #include <numeric>
    #include <utility>
    #include <iostream>
    #include <sstream>
    #include <iomanip>
    
    #include <bitset>
    #include <string>
    #include <vector>
    #include <stack>
    #include <deque>
    #include <queue>
    #include <set>
    #include <map>
    
    #include <cstdio>
    #include <cstdlib>
    #include <cctype>
    #include <cmath>
    #include <cstring>
    #include <ctime>
    #include <climits>
    using namespace std;
    
    #define CHECKTIME() printf("%.2lf
    ", (double)clock() / CLOCKS_PER_SEC)
    typedef pair<int, int> pii;
    typedef long long llong;
    typedef pair<llong, llong> pll;
    #define mkp make_pair
    #define FOREACH(it, X) for(__typeof((X).begin()) it = (X).begin(); it != (X).end(); ++it)
    
    /*************** Program Begin **********************/
    
    class MixingColors {
    public:
    	int minColors(vector <int> colors) {
    		int res = 0;
    		int n = colors.size();
    		bool used[55];
    		memset(used, 0, sizeof(used));
    
    		for (int i = 31; i >= 0; i--) {
    			int pivot = 0;
    			for (int j = 0; j < n; j++) {
    				if (used[j]) {
    					continue;
    				}
    				if ((colors[j] >> i) & 0x1) {
    					if (!pivot) {
    						pivot = colors[j];
    						used[j] = true;
    						++res;
    					} else {
    						colors[j] ^= pivot;
    					}
    				}
    			}
    		}
    
    		return res;
    	}
    };
    
    /************** Program End ************************/
    


  • 相关阅读:
    培训是一种乐趣(3)
    JAVA多线程放号器
    西游记(2)
    Swing事件处理
    西游记
    Swing普通控件
    JAVA语言的BUG?
    Swing高级控件
    JavaBean属性拷贝
    JAVA排序汇总
  • 原文地址:https://www.cnblogs.com/jhcelue/p/6915220.html
Copyright © 2020-2023  润新知