xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 1KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-01-02
  • 語(yǔ)言: C/C++
  • 標(biāo)簽: c++??回溯??

資源簡(jiǎn)介

給定1個(gè)1000行×20列的0-1矩陣,對(duì)于該矩陣的任意1列,其中值為1的元素的數(shù)量不超過(guò)10%。設(shè)有兩個(gè)非空集合A和B,每個(gè)集合由矩陣的若干列組成。集合A和B互斥是指對(duì)于矩陣的任意一行,同時(shí)滿足下列2個(gè)條件:1)若A中有一個(gè)或多個(gè)元素在這一行上的值是1,則B中的元素在這一行全部是0;2)若B中有一個(gè)或多個(gè)元素在這一行上的值是1,則A中的元素在這一行全部是0。請(qǐng)你設(shè)計(jì)一個(gè)算法,找出一對(duì)互斥集合A和B,使得A和B包含的列的總數(shù)最大。

資源截圖

代碼片段和文件信息

#include
#include
#include
#define?N?6
#define?M?5
using?namespace?std;
int?a[N][M]={?
{1?0?0?0?1}
{0?1?0?1?0}
{0?0?1?0?0}
{0?0?1?0?0}
{0?0?1?0?0}
{0?0?0?1?1}?}?;
int?aa[M]bb[M]bestA[M]bestB[M];
bool?b[M][M];
int?an=0bn=0count=0bestan=0bestbn=0;

void?find(int?d)
{
int?ij;
bool?flagaflagb;
flaga=true;flagb=true;//能否加入A或B的標(biāo)志?

if((an+bn>count)&&an&&bn)
{
count=an+bn;
bestan=an;bestbn=bn;
for(int?i=0;i for(int?i=0;i }

if(d>=M)?return;

//都不加?
find(d+1);

//判斷能否加入A
for(j=0;j if((d!=bb[j])&&(!b[bb[j]][d]))?flaga=false;
if(flaga)

評(píng)論

共有 條評(píng)論