高斯消元 AcWing 227 小部件廠

2022-09-21 22:12:10 字數 2203 閱讀 1216

不僅題意不太清楚而且實現過程還有一堆細節的題目。。orz

其實這題就是給你 \(m\) 個同餘方程,然後有 \(n\) 個變數 \(x\)(其中 \(x\in [3, 9]\)),記第 \(i\) 個方程第 \(j\) 個變數 \(x_j\) (其中 \(x\in [3, 9]\))的個數為 \(a_j\),\(b_i\) 為兩個給出的日子的間隔天數,則滿足:

\[\left\

\sum_^n a_ x_ \equiv b_1 \pmod 7

\\ \dots

\\ \sum_^n a_ x_ \equiv b_n \pmod 7

\end\right.

\]看到這個形式,自然是考慮使用高斯消元來解決,如果得到的矩陣的秩為 \(n\)​,當然可以直接得到答案——由於 \(x\) 值域不大,直接對每個變數 \(x\) 進行值的列舉,如果出現了無解情況直接return,若每個變數都有解就輸出解即可。

但是情況沒有這麼簡單,

最簡階梯形矩陣例子:

\[\begin

1 & 0 & 0 & 0 \\

0 & 1 & 0 & 0 \\

0 & 0 & 2 & 3 \\

0 & 0 & 0 & 0 \\

\end

\]

// problem: 小部件廠

// contest: acwing

// url:

// memory limit: 64 mb

// time limit: 1000 ms

// // powered by cp editor (

#pragma gcc optimize(2)

#pragma gcc optimize(3)

#pragma gcc optimize("ofast")

#includeusing namespace std;

#define debug(x) cerr << #x << ": " << (x) << endl

#define rep(i,a,b) for(int i=(a);i<=(b);i++)

#define dwn(i,a,b) for(int i=(a);i>=(b);i--)

#define int long long

inline int read()

while(ch>='0' && ch<='9') s=(s<<3)+(s<<1)+ch-'0',ch=getchar();

return s;

}const int n=330, p=7;

int n, m;

int c[n][n], b[n];

mapmp;

void init()

int get(string a, string b)

int fpow(int x, int p)

int inv(int x)

int get(int x)

int res[n];

void guass()

rep(j,1,m) }

rep(row,n+1,m) if(b[row]) return puts("inconsistent data."), void();

// no fixed sol

rep(pos,1,n) if(!c[pos][pos])

bool ok=false;

rep(val,3,9)

}if(!ok) return puts("inconsistent data."), void();

} return puts("multiple solutions."), void();

} bool ok=true;

rep(i,1,n)

if(!cnt)

if(cnt>1) ok=false;

else res[i]=rec; }

if(!ok) return puts("multiple solutions."), void();

rep(i,1,n) printf("%lld ", res[i]);

puts("");

}void clear()

signed main()

} guass();

clear(); }

return 0;

}

高斯消元 浮點高斯消元

浮點數高斯消元 問題描述 給出乙個線性方程組,有n個方程組,m個未知數。解這個線性方程組。輸入格式 第1行 2個整數n和m,n,m 400,且n不一定等於m 接下來n行,每行m 1個整數,表示乙個方程的m個未知數的係數和常數 輸出格式 如果無解,輸出 no solution 如果有唯一解,輸出m行,...

矩陣消元 高斯消元

安利一波高斯消元的部落格,內容很詳細。看完這個相信你已經理解了大概,高斯消元求線性方程組,在學習線性代數 大學課程 的時候我們都接觸過。原理是先把執行緒組轉換成矩陣,然後把它等價變換成上三角矩陣,這樣從下到上依次可以求出解集。高斯消元模板 模板題 include define n 205 using...

矩陣乘 高斯消元專題小結 高斯消元

i p其它題太水了就不寫了,這裡說一下o和p。我太懶不想寫 op這兩個題是高斯消元求期望的題。對於p題,求從 點到 點的步數期望,先從 點bfs一遍找到所有可以到達的點,對於可達點每個點是乙個變數。因為終點有任意多而起點只有乙個,這裡可以反過來求從任意乙個終點走到起點的期望。於是對於每乙個終點的期望...