計蒜課複賽 聯想電腦

2022-05-08 21:21:19 字數 2874 閱讀 8043

二分答案 下等:a-x 中等:b-x 上等:c 

1

//#pragma comment(linker, "/stack:1024000000,1024000000")

2 #include 3 #include 4 #include 5 #include 6 #include

7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 #include 15

//#include

16using

namespace

std;

17#define clc(a,b) memset(a,b,sizeof(a))

18#define inf 0x3f3f3f3f

19#define lson l,mid,rt<<1

20#define rson mid+1,r,rt<<1|1

21const

int n = 11000;22

const

int mod = 1e9+7;23

#define ll long long

24#define mi() (l+r)>>1

25double

const pi = acos(-1

);26

27//

inline int r()

30//

while(ch>='0'&&ch<='9') return x*f;

31//}32

33int

a,b,c;

3435

bool b_s(int

x)42

return w<=0;43

}4445int

main()59}

60 cout

62return0;

63 }

view code

菜鳥物流的運輸網路

之前沒有做個網路流建模的題

首先,要經過沒有重複的點,可以拆點來做。我們規定乙個新源點流向mid,容量為2;a,b分別流向最終的匯點流量為1。這樣整體思路就有了。先建立網路流模型,相鄰點,相鄰邊容量為1。除了mid點之間是容量為2。跑一遍ek得到每條邊流量。

最後判斷滿流:流量==容量

1

//#pragma comment(linker, "/stack:1024000000,1024000000")

2 #include 3 #include 4 #include 5 #include 6 #include

7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 #include 15

//#include

16using

namespace

std;

17#define clc(a,b) memset(a,b,sizeof(a))

18#define inf 0x3f3f3f3f

19#define lson l,mid,rt<<1

20#define rson mid+1,r,rt<<1|1

21const

int n = 110

<<2;22

const

int mod = 1e9+7;23

#define ll long long

24#define mi() (l+r)>>1

25double

const pi = acos(-1

);26

27void

fre()

3031

//inline int r()

34//

while(ch>='0'&&ch<='9') return x*f;

35//}36

intn,m;

37int

cap[n][n],flow[n][n];

38int

pre[n];

39bool

vis[n];

40int

head[n];

41int

tot;

42struct

edgee[n];

4546

void add(int u,int

v);48 head[u]=tot++;49}

50void

init()

56void ek(int s,int

t)77}78

}79if(pre[t]==-1)80

break;81

for(int i=t;i!=s;i=pre[i]) 85}

86}87 vectorans;

88void dfs(int u,int

fa)97}98

intmain()

113for(int i=1;i<=n;i++)

117 cap[0][mid]=2

;118 cap[a][2*n+1]=cap[b][2*n+1]=1

;119 ek(0,2*n+1

);120

for(int i=1;i<=n;i++)

125}

126}

127ans.clear();

128 dfs(a,0

);129

for(int i=0;i)

134 cout<

135}

136return0;

137 }

view code

計蒜之道複賽 B D F

b題是乙個簡單的模擬 求一下兩個點中間每過deta的整數點 然後更新一下每個點的最後一次經過就好了 1 include2 define cl a,b memset a,b,sizeof a 3 define debug x cerr x x 4 using namespace std 56 cons...

2017計蒜客複賽簽到題

確實,最近臨近期末,各種事情要多起來了,這估計是這學期最後一次acm的題了。由於時間因素只做了一道簽到題就匆匆走人,不過完美ac簽到題,也算是給這學期的acm畫上了乙個圓滿的句號了吧,開始了自己的部落格生涯,挺好。思路 這題根據題意,很容易想到直接模擬,而資料範圍顯示可以直接開二元陣列強行記錄,而對...

計蒜客 泥塑課

小公尺是乙個幼兒園老師,每學期的泥塑課上,她都會給每個學生發不超過250立方厘公尺的等量橡皮泥,教大家做泥塑。在上課過程中,她發現每個班都恰好有乙個小朋友會去搶另乙個小朋友的橡皮泥,於是她決定,在正式開始做泥塑前,讓大家把手裡的橡皮泥都捏成乙個立方體,並且測量手裡捏好的橡皮泥的長 寬和高。這樣,她就...