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去刷題。但考慮到...