日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

jzoj6375-华灵「蝶妄想」【结论题】

發(fā)布時(shí)間:2023/12/3 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jzoj6375-华灵「蝶妄想」【结论题】 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

正題


題目大意

n?mn*mn?m(((或者)))。求一個(gè)方案使得最多的行和列匹配。


解題思路

我們先考慮nnnmmm為奇數(shù),那么顯然奇數(shù)的肯定不必配,那么就只需要考慮行或列即可。

nnnmmm都為偶數(shù)時(shí)

我們發(fā)現(xiàn)在邊邊的行列不可能都匹配上,那就讓他們無私奉獻(xiàn)一下,那么除了這幾行就都可以匹配上
Suchas:Such\ as:Such?as:
匹配數(shù)為n+m?4n+m-4n+m?4

當(dāng)然我們也可以犧牲一般的行(或列)使得最邊邊的列(或行)匹配上,
Suchas:Such\ as:Such?as:
匹配數(shù)為n2+m?1\frac{n}{2}+m-12n?+m?1

判斷一下哪種更優(yōu)即可。


codecodecode

#include<cstdio> #include<cstring> #include<algorithm> using namespace std; int n,m; bool v[5001][5001],sw; int main() {//freopen("butterfly.in","r",stdin); // freopen("butterfly.out","w",stdout);scanf("%d%d",&n,&m);if(m&1){int k=1;for(int i=1;i<=n;i++){k^=1;for(int j=1;j<=m;j++)putchar(k?')':'(');putchar('\n');}}else if(n&1){for(int i=1;i<=n;i++){int k=1;for(int j=1;j<=m;j++){k^=1;putchar(k?')':'(');}putchar('\n');}}else{ if(n>m) sw=1,swap(n,m);if(n+m-4<n/2+m-1){for(int i=1;i<=m;i++)v[1][i]=1,v[n][i]=0;int z=0;for(int i=2;i<n;i++){int k=z;z^=1;for(int j=1;j<=m;j++)v[i][j]=(k^=1);}}else{for(int i=1;i<=m;i++)v[1][i]=1,v[n][i]=0;int z=0;for(int i=2;i<n;i++){int k=z;z^=1;v[i][1]=1;v[i][m]=0; for(int j=2;j<m;j++)v[i][j]=(k^=1);}}if(!sw){for(int i=1;i<=n;i++){for(int j=1;j<=m;j++)putchar(v[i][j]?'(':')');putchar('\n');}}else{for(int i=1;i<=m;i++){for(int j=1;j<=n;j++)putchar(v[j][i]?'(':')');putchar('\n');}}} }

總結(jié)

以上是生活随笔為你收集整理的jzoj6375-华灵「蝶妄想」【结论题】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。