1
double l=1,r=2000;
while(r-l>1e-5){
double mid=(l+r)/2;
if(check(mid))l=mid;
else r=mid;
}
printf("%d\n",r);
lg[1]=0;
for (int i=2;i<=n;i++) lg[i]=lg[i>>1]+1;
void update(int x,int l,int r,long long val)
for(int i=1;i<=m;i++) 看清n和m
for(int i=0;i<=cnt;i++){
for(int j=0;j<=70;j++){
tr[i][j]=0;
}
}
while(!q.empty()){
int now=q.front();
!!vis[now]=0;
q.pop();
for(int i=head[now];i!=-1;i=e[i].nxt){
if(dis[e[i].to]>dis[now]+e[i].w){
dis[e[i].to]=dis[now]+e[i].w;
!!if(!vis[e[i].to]) {
!!if(++cntu[e[i].to]>=n) return false;//
q.push(e[i].to);
vis[e[i].to]=1;
}
}
}
ini jia(int *a,int *b)
{
int lenc=0,x=0;
while (lenc<a[0] || lenc<b[0])
{
a[++lenc]=a[lenc]+b[lenc]+x;
x=a[lenc]/10;
a[lenc]%=10;
}
if (x>0) a[++lenc]=x;
a[0]=lenc;
}
jia(a[j],a[j-1]);
jia(ans,a[j]);
线段树2:即2个标记使它们一定满足,先乘后加
struct Edge{
int to,w,nxt=-1;
}e[N<<1];
void add(int u,int v,int w){
e[++cnt].to=v;
e[cnt].w=w;
e[cnt].nxt=head[u];
head[u]=cnt;
}
https://www.cnblogs.com/acgoto/p/9824723.html
https://www.luogu.com.cn/article/sl0a654e

浙公网安备 33010602011771号