比賽 2019暑假排位(6)

2021-09-26 06:37:11 字數 3939 閱讀 3243

problems from the 2016 acm - icpc asia nha trang regional contest a

bcde

fghi

jkll

zy**y**y-z

**z**ylz

-直接單調佇列即可

#include

#include

#include

#include

#include

#include

#include

#define ll long long

#define inl inline

#define re register

#define maxn 101000

using

namespace std;

int n,m;

int que[maxn]

,ind,a[maxn]

;int l[maxn]

,r[maxn]

;int s[maxn]

;int

main()

ind=

0,que[0]

=n+1

;for

(int i=n;i>=

1;i--

)for

(int i=

1;i<=n;i++

)s[i]

=s[i-1]

+a[i]

;int res=0;

for(

int i=

1;i<=n;i++)if

(a[i]

==m)res=

max(res,s[r[i]-1

]-s[l[i]])

;printf

("%d\n"

,res);}

return0;

}

一開始考慮化成樹形結構做,後來先把詢問排序,預處理高度的字首和,因為對於乙個柱子只有前面第乙個高的會對他造成影響,維護乙個單調佇列掃一遍就可以了

#include

#include

#include

#include

#include

#include

#include

using

namespace std;

typedef

long

long ll;

const

int maxn =

100010

;const

int inf =~0u

>>1u;

//const ll inf = ~0llu >> 1u;

struct qq

bool

operator

<

(const qq &t)

const

}d[maxn]

;int t, n, q;

ll pos[maxn]

, h[maxn]

, now[maxn]

;ll que[maxn]

, res[maxn]

, s[maxn]

;bool vis[maxn]

;int

main()

sort

(d+1

, d+

1+q)

; ll v =

0, ans =0;

ll tp =

0, r =0;

for(

int i =

1; i <= q; i ++

)else

ans++;}

res[d[i]

.id]

= ans -1;

}for

(int i =

1; i <= q; i ++

)printf

("%lld\n"

, res[i]);

}return0;

}

簽到題,最小生成樹處理一下

#include

#include

#include

#include

#include

using

namespace std;

const

int n =

1000010

;int n, m, s, l;

struct edgee[n]

;int fa[n]

;inline

intcmp

(const edge &a,

const edge &b)

inline

intgetf

(int x)

intmain()

for(

int i =

1; i <= m;

++i)

int cnt = n - s -1;

int tot =0;

long

long ans =0;

sort

(e +

1, e + m +

1, cmp)

;for

(int i =

1; i <= m;

++i)

}printf

("%lld\n"

, ans);}

}

把時間離散化,源點向每個時間連容量為len

∗m

len*m

len∗

m的邊,每個任務向匯點連邊,中間能連的邊容量為時間的長度,建圖跑網路流,然後還要輸出方案,很麻煩,題意對輸出方案要求挺模糊的,感覺自己的寫的沒問題,調不出來棄題了

球缺的體積公式:v=π

h2(r

−h3)

v=\pi h^2\left(r-\frac h 3\right)

v=πh2(

r−3h

​)已知v

vv可二分求h

然後二分水深判斷可行即可

#include

#include

#include

#include

#include

#include

#include

#define ll long long

#define inl inline

#define re register

#define maxn 10100

using

namespace std;

const

double esp=

1e-7

;double pi=

acos(-

1);int n;

int w,l,d,v;

struct ball

double

makeh

(double vv)

getv=

makev

((l+r)/2

);return

(l+r)/2

;}}t[1100];

bool

check

(double h)

vvv=

(double

)w*(

double

)l*h-sum;

return vvv>

(double

)v;}

double

work()

return

(ll+r)/2

;}intmain()

printf

("%.8f\n"

,min

(work()

,(double

)d));}

return0;

}

bupt暑假排位賽(2)

這次訓練的題目,兩道水題 卡資料型別,有好多人不能1a,我也在內 還有3道題,不是很容易。a.boj0416丁神去谷歌 一道很水的題,因為我剛開始用了sort,t了一次,後來又忘了是什麼原因re了2次 下面簡單分析一下吧,由於是要求b a的最大值,所以只需要把當前的b a與之前最大的b a比較就行,...

2019暑假集訓

7.8 題解a.類似於保護古蹟的亂搞 b.可持久化線段樹維護塊與塊的連邊 暴力匹配 c.burnside引理好題 補不來.jpg ctsc2014 隨機數 這裡 感覺是一道比較好的題 常見套路又忘了系列 n個點無向連通圖計數 考慮1號點所在聯通塊大小 減掉 然後得到乙個柿子可以分治fft 7.9題解...

2014新生暑假個人排位賽06

時間限制 3000 ms 記憶體限制 65536 kb 小弱的學校很喜歡修路,現在給你一張他學校的地圖,地圖上有n個點和m條雙向邊,每條邊代表一條路,這條路有可能是暢通,也有可能正在修路。大家都知道修路使得交通很不方便。所有小弱很想學校快快的把路修好,使得他能夠很輕鬆的到達主樓915去刷題。但考慮到...