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