#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...