91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

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

資源簡介

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

資源截圖

代碼片段和文件信息

#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的標志?

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)

評論

共有 條評論