ural Two Rounds(分組揹包)

2022-05-23 22:54:08 字數 1267 閱讀 5954

題意:烏拉爾錦標賽分為兩輪,每輪有n道題,總共有2*n道題,但是在這些題中,有些題目有相似性,這樣的題目是不允許放在同一輪裡的,題目要求給出合理的題目分組來。

分析:剛開始想用bfs搜的,在搜的過程中進行染色,但是最後放棄了這個思路,因為這個圖極有可能是不連通的,怎樣確定每個連通分支起始點的顏色才能找到乙個合理的分組來就成為解題的關鍵,但是這個卻沒有乙個準確的規律可循,所以只能用分組揹包。其實就是先進行一遍dfs的深搜,將每個連通分支的點都分為兩種顏色,將每個連通分支作為一組,然後進行dp求解。

**:view code

#include #include 

#include

#include

#include

#include

#include

#include

#include

#include

#define n 103

using

namespace

std ;

vector

p[n] ;

intmp[n][n] , f[n] ;

ints[n] , num1[n] , num2[n] ;

intn , m ;

void

init()

bool dfs( int x , int

id )

f[x] =id ;

if ( id > 0 ) num1[id]++;

else

num2[-id]++;

for ( int i = 0 ; i < p[x].size() ; i++)

return

true;}

intmain()

x = 0

;

for ( i = 1 ; i <= 2 * n ; i++)

}if ( i <= 2 *n )

mp[0][0] = 1

;

for ( i = 0 ; i <= x ; i++)

}if( mp[x][n] == 0

)

else

for ( i = 1 ; i <= 2 * n ; i++)

printf ( "\n

") ;

for ( i = 1 ; i <= 2 * n ; i++)

printf ( "\n

") ;}}

return0;

}

python正則分組 python正則分組的應用

import re text v101 renow.android.2.2.normal.1.alpha.apk?imsi 460029353813976 mobile old version renow.android.2.1.normal.1.alpha channelid 3 m re.sea...

access 分組序號 ACCESS分組查詢

滿意答案 vigorsun86 2013.04.21 採納率 59 等級 12 已幫助 5747人 回答補充 因為不知道利用乙個單錶怎樣區分班級資訊,所以我加了乙個字段 bj,代表班級資訊。修改後的表如下 xh,yw,sx,wy,bj 學號,語文,數學,外語,班級 access中的sql語句 sel...

mysql 隨機分組 Mysql 分組選擇

mysql 分組選擇與group concat 在其他的資料庫中我們遇到分組選擇的問題時,比如在分組中計算前10名的平均分 我們可以使用row number over 比較方便的得到。但是在mysql中,問題就被拋了出來,因為mysql並沒有乙個rownum內建資料元組訪問方式。在這裡我提供三種方式...