顺德门户网站建设公司找培训班一般在什么平台
web/
2025/10/1 2:13:43/
文章来源:
顺德门户网站建设公司,找培训班一般在什么平台,招投标网,天眼查公司查询企业查询官网正题 题目大意 n∗mn*mn∗m填(((或者)))。求一个方案使得最多的行和列匹配。 解题思路
我们先考虑nnn或mmm为奇数#xff0c;那么显然奇数的肯定不必配#xff0c;那么就只需要考虑行或列即可。
若nnn和mmm都为偶数时
我们发现在边边的行列不可能都匹配上#xff0c;那就…正题 题目大意
n∗mn*mn∗m填(((或者)))。求一个方案使得最多的行和列匹配。 解题思路
我们先考虑nnn或mmm为奇数那么显然奇数的肯定不必配那么就只需要考虑行或列即可。
若nnn和mmm都为偶数时
我们发现在边边的行列不可能都匹配上那就让他们无私奉献一下那么除了这几行就都可以匹配上 Suchas:Such\ as:Such as: 匹配数为nm−4nm-4nm−4
当然我们也可以牺牲一般的行(或列)使得最边边的列(或行)匹配上 Suchas:Such\ as:Such as: 匹配数为n2m−1\frac{n}{2}m-12nm−1
判断一下哪种更优即可。 codecodecode
#includecstdio
#includecstring
#includealgorithm
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(m1){int k1;for(int i1;in;i){k^1;for(int j1;jm;j)putchar(k?):();putchar(\n);}}else if(n1){for(int i1;in;i){int k1;for(int j1;jm;j){k^1;putchar(k?):();}putchar(\n);}}else{ if(nm) sw1,swap(n,m);if(nm-4n/2m-1){for(int i1;im;i)v[1][i]1,v[n][i]0;int z0;for(int i2;in;i){int kz;z^1;for(int j1;jm;j)v[i][j](k^1);}}else{for(int i1;im;i)v[1][i]1,v[n][i]0;int z0;for(int i2;in;i){int kz;z^1;v[i][1]1;v[i][m]0; for(int j2;jm;j)v[i][j](k^1);}}if(!sw){for(int i1;in;i){for(int j1;jm;j)putchar(v[i][j]?(:));putchar(\n);}}else{for(int i1;im;i){for(int j1;jn;j)putchar(v[j][i]?(:));putchar(\n);}}}
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/84775.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!