uva 11542 異或方程組

2021-07-10 02:36:23 字數 774 閱讀 2773

#include#include#include#include#include#includeusing namespace std;

const int maxn = 500 + 10;

const int maxp = 100;

int vis[maxn];

int prime[maxp];

int gen_primes(int n)

typedef int matrix[maxn][maxn];

// m個方程,n個變數

int rank(matrix a, int m, int n)

if(a[r][j])

j++;

} return i;

}matrix a;

int main()

}int r = rank(a, maxp+1, n); // 只用到了前maxp+1個素數

cout << (1ll << (n-r))-1 << endl; // 空集不是解,所以要減1

} return 0;

}

書上的**:

題意:給出n個正整數,從中選出1個或者多個,使得選出來的整數乘積是完全平方數,一共有多少種選法。

思路:用01向量表示乙個數,再用n個01向量來表示我們的選擇,因為完全平方數要求素因子的次數一定要是偶數的,所以我們可以統計的將奇數當作1,偶數當作0,那麼就是一組可以變換成oxr的方程組,最後的結果有自由變數f個,答案是2^f-1,f求解就是求n-方程組的秩

異或方程組?

坑比異或方程組?一開始看到有個人的高斯消元法用異或寫的,而且極其簡短,於是當時就想果然是大牛,怎麼厲害的寫法我肯定懂不了。沒想到晚上看相關習題的時候才發現有這個異或方程組.這就很不清真了。博主說他理解了兩天,可能我看的淺,也沒覺得特別難。感覺大概可以用這樣幾個點來描述異或方程組 1.首先,這種方程組...

poj 1830 異或方程組

題意 有n個相同的開關,每個開關都與某些開關有著聯絡,每當你開啟或者關閉某個開關的時候,其他的與此開關相關聯的開關也會相應地發生變化,即這些相聯絡的開關的狀態如果原來為開就變為關,如果為關就變為開。你的目標是經過若干次開關操作後使得最後n個開關達到乙個特定的狀態。對於任意乙個開關,最多只能進行一次開...

POJ1830 開關問題(異或方程組)

本作品採用知識共享署名 相同方式共享 4.0 國際許可協議進行許可。有n個相同的開關,每個開關都與某些開關有著聯絡,每當你開啟或者關閉某個開關的時候,其他的與此開關相關聯的開關也會相應地發生變化,即這些相聯絡的開關的狀態如果原來為開就變為關,如果為關就變為開。你的目標是經過若干次開關操作後使得最後n...