18屆「科大訊飛杯」賽後補題(HL)

2021-10-05 05:21:42 字數 2078 閱讀 8914

水題,比拼手速的題目,可惜我粗心還wa了三次,腦子轉的也不夠快,下次我應該改一改我一做出來就迫不及待提交的毛病,再看看,再冷靜的試一試樣例

下面的題目按照補題順序,難度大概也是從難到易

解決的方法是dfs,說實話我是一點都沒想到,輕視了這道題,以為是一道大模擬,還在根據1,2,0的餘數情況分開討論,饒了2個小時

還是太菜了(哭)

要注意的點是:

#include

using

namespace std;

string s;

int a[10]

,ans[10]

;bool

dfs(

int x,

int k,

int m)

for(

int i=

9;i>=

1;i--)}

return0;

}int l=

min(a[x]

,k),r=

max(l-2,

0);//cout<<"l,r:"(int i=l;i>=r;i--

) ans[x]=0

;return0;

}int

main()

for(

int j=

0;jlength()

;j++)if

(!dfs(

9,k,0)

)else

} cout<}

首先二分完成天數,left=0,right=(sum+1)*7

接著 建網路流圖,兩個超級源點s,t,s向n個資源建邊,flow是每個資源的需求量,每個資源再向可以獲得該資源的星期(1-7)建邊,flow是inf,最後是星期1-7向t建邊

跑dinic就行

#include

#include

#include

#include

using

namespace std;

const

int inf =

0x3f3f3f3f

, maxn =

2e5+

7,maxm=

2e5+7;

int c[maxn]

,sum,level[maxn]

,head[maxn]

,cnt_edg=

1,n,k;

struct e edge[

2*maxm]

;vector<

int> e[maxn]

;// 邊集

void

add_edge

(int u,

int v,

int flow)

; head[u]

=cnt_edg;

edge[

++cnt_edg]

=(e)

; head[v]

=cnt_edg;

}int

bfs(

int s,

int t)

}return level[t];}

intdfs

(int u,

int t,

int flow)}if

(ret==

0) level[u]=0

;return ret;

}int

dinic

(int s,

int t)

return ret;

}void

init()

bool

check

(int d)

}int m;

for(

int i=

1;i<=

7;i++

)return

dinic

(s,t)

==sum;

}int

main()

}int l=

0,r=

(sum+1)

*7;while

(lelse

} cout<}

科大訊飛杯第18屆友誼賽 「組隊比賽」

題目描述 compute,cubercsl,supersodasea,ybmj 準備組隊參加 科大訊飛 贊助的 crossfire 比賽。科大訊飛股份 成立於1999年,是亞太地區知名的智慧型語音和人工智慧上市企業。自成立以來,長期從事語音及語言 自然語言理解 機器學習推理及自主學習等核心技術研究並...

科大訊飛杯題目

蛇形矩陣 include main for i 0 i include main else break if i 10 i 10 10 i 100 10 10 s 10 printf d n i no9 資料序列 15分 問題描述 乙個正整數有可能可以被表示為n n 2 個連續正整數之和,如 15 ...

科大訊飛 智慧型課堂

昨天有幸參加了科大訊飛在中國蚌埠開展的 第三屆全國智慧型課堂觀摩研討會 剛才看到這個問題就試著來回答一下,因為本人並非訊飛員工,回答難免有疏漏之處,僅作參考。那麼昨天參加會議所帶給我的最大感受便是訊飛現在做的真是不錯,它也確實做到了讓資訊科技服務於教學,整個課堂帶給我們的體驗也相當震撼,真是科技改變...