p2570 [zjoi2010]貪吃的老鼠
在ta的部落格檢視
顯然二分,最大流判定
要滿足兩個條件:
(1) 在任一時刻,乙隻老鼠最多可以吃一塊乳酪;
(2) 在任一時刻,一塊乳酪最多被乙隻老鼠吃。
先按照乳酪的邊界進行離散化, 變成num個塊,就可以知道每個時間有哪些乳酪了
把每個老鼠拆成num個點,
初步:每個老鼠的每個時間的乳酪連線o(len*speed)
首先每個老鼠每個時間段吃的是有限的,顯然保證(1)
但是不能保證(2)
改進:考慮讓每乙個乳酪在時間段只能
證明不會咕了
(總感覺不能一定能滿足存在一種方案使得總共時間不會超出)
卡精度啊,,,,,
inf設太大了
並且為了防止被inf卡,可以直接記錄ret表示流出流量,直接返回ret即可
#include#define reg register int#define il inline
#define fi first
#define se second
#define mk(a,b) make_pair(a,b)
#define numb (ch^'0')
#define pb push_back
#define solid const auto &
#define enter cout<#define pii pair#define double long double
using
namespace
std;
typedef
long
long
ll;template
il void rd(t &x)
template
il void output(t x)
template
il void ot(t x)
template
il void prt(t a,int st,int nd)
namespace
miraclee[
2*(p*n+n+p)];
int hd[p],cnt=1
;int
p[n],st[n],nd[n];
intsp[n];
double mem[2*n];
intnum;
intsum;
void add(int x,int y,double
z)int
d[p];
ints,t;
double dfs(int x,double
flow)
}return flow-res;
}int
q[p],l,r;
bool
bfs()}}
return
false;}
int id(int x,int
y)bool che(double
mid)
sort(mem+1,mem+num+1
); num=unique(mem+1,mem+num+1)-mem-1
; --num;//
warning!!!
s=0,t=id(n,num)+1
;
for(reg i=1;i<=m;++i)
for(reg i=1;i<=n;++i)
}add(s,id(i,j),(
double)sp[i]*i*(mem[j+1]-mem[j]));}}
double flow=0,ret=0
;
while
(bfs())
}if(ret+eps>sum) return
true
;
return
false;}
void
clear()
bool cmp(int x,int
y)int
main()
for(reg i=1;i<=n;++i)
sort(sp+1,sp+n+1
,cmp);
sp[n+1]=0
;
for(reg i=1;i<=n;++i)
double l=0.0,r=1e7+3
;
for(reg i=1;i<=60;++i)
printf(
"%.10lf\n
",l);
}return0;
}}signed main()
/*author: *miracle*
*/
ZJOI2010 貪吃的老鼠
傳送門 to luogu 注意到老鼠的吃麵包時間是實數範圍內的,所以我們大膽地說 x1 x2 x3 xn ts i forall x 1 x 2 x 3 cdots x n le ts i x1 x 2 x 3 xn tsi 第 i ii 個老鼠可以做到,在 t tt 的時間內,將第 j jj 個麵...
ZJOI2010 貪吃的老鼠
點這裡看題目。注意到,這個題目的特點之一是時間是連續的。這意味著我們可以單純地關注數值而不太需要關心具體的時間。比如,乙隻老鼠在長度為 t 的時間段內,想要吃下 x k 的第 k 塊乳酪,則這一點能否做到,完全等價於 sum kx k 是否 le ts 想了好久如何轉化將時間和乳酪互相轉化,沒想到被...
ZJOI2010 數字計數
題目描述 給定兩個正整數a和b,求在 a,b 中的所有整數中,每個數碼 digit 各出現了多少次。輸入格式 輸入檔案中僅包含一行兩個整數a b,含義如上所述。輸出格式 輸出檔案中包含一行10個整數,分別表示0 9在 a,b 現了多少次。輸入輸出樣例 輸入 1 1 99 輸出 1 9 20 20 2...