假設乙個試題庫中有
n n
道試題。每道試題都標明了所屬類別。同一道題可能有多個類別屬性。現要從題庫中抽取
m' role="presentation">m
m道題組成試卷。並要求試卷包含指定型別的試題。試設計乙個滿足要求的組卷演算法。
對於給定的組卷要求,計算滿足要求的組卷方案。第1
1
行有2' role="presentation">2
2個正整數
k k
和n' role="presentation">nn(
2≤k≤
20,k≤
n≤1000
) (2≤
k≤20,
k≤n≤
1000
)k k
表示題庫中試題型別總數,
n' role="presentation">n
n表示題庫中試題總數。第
2 2
行有k k
個正整數,第
i i
個正整數表示要選出的型別
i i
的題數。這
k' role="presentation">k
k個數相加就是要選出的總題數
m m
。接下來的
n' role="presentation">n
n行給出了題庫中每個試題的型別資訊。每行的第
1 1
個正整數
p p
表明該題可以屬於
p' role="presentation">p
p類,接著的
p p
個數是該題所屬的型別號。第i
' role="presentation">i
i行輸出 「i
「 i:
:
」' role="presentation">」
」後接型別
i i
的題號。如果有多個滿足要求的方案,只要輸出
1' role="presentation">1
1個方案。如果問題無解,則輸出「n
o 「no
solutio
n!」 sol
utio
n!」。
3 15
3 3 4
2 1 2
1 31 3
1 31 3
3 1 2 3
2 2 3
2 1 3
1 21 2
2 1 2
2 1 3
2 1 2
1 13 1 2 3
1: 1 6 8
2: 7 9 10
3: 2 3 4 5
很久沒有做網路流了,寫一道比較裸的題。
#include
using
namespace
std;
int n,k,m,s=0,t=1800,cnt=0,head[2000],sta[2000];
struct edgee[200010];
void add(int u,int v,int w,int tag);
head[u]=cnt++;
}bool bfs()
// if(u==t)break;
}return sta[t];
}int dfs(int u,int a)
return ret;
}int dinic()
int main()
}maxf=dinic();
if(maxfprintf("no solution!");
return
0; }
for(int i=n+1;i<=n+k;i++)
return
0;}
網路流24題 試題庫問題
網路流24題大多需要spj,所以需要乙個有spj的oj,本系列 均在www.oj.swust.edu.cn測試通過 這道題的模型很顯然,源點向每個試卷連線一條容量為1的邊,每個試卷向對應的型別連線一條容量為一的邊,每個型別向匯點連線一條容量為需要數量的邊,跑一邊最大流即可。include inclu...
網路流24題 試題庫問題
傳送門 這個題好像比較水。每個種類向匯點連容量為所需求的數量的邊 然後每個試題向可以選的種類連容量為1的邊 再從源點向每個試題連容量為1的邊,然後dinic 過程中記錄一下轉移的目標節點,然後輸出路徑就好了 判無解不用我說了吧。include include include include incl...
洛谷 試題庫問題 網路流
傳送門 洛谷 試題庫問題 假設乙個試題庫中有n道試題。每道試題都標明了所屬類別。同一道題可能有多個類別屬性。現要從題庫中抽取m 道題組成試卷。並要求試卷包含指定型別的試題。試設計乙個滿足要求的組卷演算法。對於給定的組卷要求,計算滿足要求的組卷方案。第1行有2個正整數k和n 2 k 20,k n 10...