程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> HDU 2819 Swap (行列匹配+輸出解)

HDU 2819 Swap (行列匹配+輸出解)

編輯:C++入門知識

HDU 2819 Swap (行列匹配+輸出解)


題意:能否使對角線上全是1 ,這個簡單直接按行列匹配,難在路徑的輸出,我們知道X,Y左右匹配完了之後,不一定是1–1,2–2,3–3……這樣的匹配。可能是1–3,2–1,3–2,我們要把他們交換成前一種的匹配形式,也就是路徑的答案,再有矩陣的一些關於秩的性質,行變換和列變換是等價的。


#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define lson (rt<<1),L,M
#define rson (rt<<1|1),M+1,R
#define M ((L+R)>>1)
#define cl(a,b) memset(a,b,sizeof(a));
#define LL long long
#define P pair
#define X first
#define Y second
#define pb push_back
#define fread(zcc)  freopen(zcc,r,stdin)
#define fwrite(zcc) freopen(zcc,w,stdout)
using namespace std;
const int maxn=105;
const int inf=999999;

vector G[maxn];
int matching[maxn];
bool vis[maxn];
int Nx;
int dfs(int u){
    int N=G[u].size();
    for(int i=0;i

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved