洛谷P3164 CQOI2014 和諧矩陣

2022-09-07 20:51:13 字數 1837 閱讀 7961

高斯消元,可以直接消的

1 #include2 #include3 #include4 #include5

#define maxn 45*45

6#define for(i,x,y) for(register int i=x;i<=y;i++)

7using

namespace

std;

8int

x,y;

9int

a[maxn][maxn];

10int c(int x,int y)

11int d[5]=;

12void

init()23}

24 a[c(i,j)][c(x,y)+1]=0;25

}26}27

}28int ans[45][45

];29

void guass(int m,int

n)38

continue;39

}40if(i!=line)swap(a[i],a[line]);

41for(i=1;i<=m;i++)47}

48}49 line++;50}

51 line=1

;52 for(i,1

,x)

58else61}

62}63}

64void

solve()

70 printf("

%d\n

",ans[i][y]);71}

72}73int

main()

74

view code

注意到第一行會決定第二行,第二行會決定第三行,然後處理最後一行,讓它符合即可,這樣方程數目少了乙個平方

1 #include2 #include3 #include4 #include5

#define maxn 45

6#define for(i,x,y) for(register int i=x;i<=y;i++)

7#define ll long long

8using

namespace

std;

9int

x,y;

10ll t[maxn][maxn];

11int a[maxn<<1

][maxn];

12int

ans[maxn][maxn];

13void guass(int n,int

m)22

continue;23

}24if(i!=line)swap(a[i],a[line]);

25for(i=1;i<=n;i++)31}

32}33 line++;34}

35 line=1

;36 for(k,1

,n)41

else44}

45}46void

init()53}

54 ll p;int

k;55 for(j,1

,y)60}61

}62}63

void

solve()

69//

printf("\n");

70//

}71 for(i,2

,x)75

}

76 for(i,1

,x)80 printf("

%d\n

",ans[i][y]);81}

82}83int

main()

84

view code

洛谷P2014 選課

題目描述 在大學裡每個學生,為了達到一定的學分,必須從很多課程裡選擇一些課程來學習,在課程裡有些課程必須在某些課程之前學習,如高等數學總是在其它課程之前學習。現在有n門功課,每門課有個學分,每門課有一門或沒有直接先修課 若課程a是課程b的先修課即只有學完了課程a,才能學習課程b 乙個學生要從這些課程...

洛谷P2014 選課

又是一道樹型dp,不過這次是以點帶權值,因為根是不確定的,我們可以設個虛根 0 因為算是多了一點,所以總點數應該 因為是點帶權值,所以不用dfs邊的數量了,不過有一點虛注意,因為多了乙個點,所以j層迴圈 所選的邊數 下界應該是到2的。include include using namespace s...

洛谷P2014 選課

題目描述 在大學裡每個學生,為了達到一定的學分,必須從很多課程裡選擇一些課程來學習,在課程裡有些課程必須在某些課程之前學習,如高等數學總是在其它課程之前學習。現在有n門功課,每門課有個學分,每門課有一門或沒有直接先修課 若課程a是課程b的先修課即只有學完了課程a,才能學習課程b 乙個學生要從這些課程...