出题人你tm搞笑呢,冰霜新星翻成冷冻波,而且tm就只能打一只小精灵???巫妖王都想来砍死你

首先要搞出每个巫妖能不能打到每一个小精灵,然后二分时间,就能算出每个巫妖可以打的次数,网络流check即可

但是你要搞出每个巫妖能不能打到每一个小精灵。。。贼jb麻烦,为此搜了N个公式才搞出来,我还是太菜了

#include<bits/stdc++.h>
#define il inline
#define vd void
#define sqr(x) ((x)*(x))
typedef long long ll;
il int gi(){int x=0,f=1;char ch=getchar();while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();}while(isdigit(ch))x=x*10+ch-'0',ch=getchar();return x*f;
}
bool yes[201][201];
int X0[201],Y0[201],R[201],d[201];
int X1[201],Y1[201],X2[201],Y2[201],r2[201];
const int maxn=410,S=401,T=402,maxm=500000;
int fir[maxn],head[maxn],dis[maxm],nxt[maxm],w[maxm],id,dep[maxn];
il vd link(int a,int b,int c){nxt[++id]=fir[a],fir[a]=id,dis[id]=b,w[id]=c;nxt[++id]=fir[b],fir[b]=id,dis[id]=a,w[id]=0;
}
il bool BFS(){static int que[maxn],hd,tl;memset(dep,0,sizeof dep);hd=tl=0;que[tl++]=S;dep[S]=1;while(hd^tl){int x=que[hd++];for(int i=fir[x];i;i=nxt[i])if(w[i]&&!dep[dis[i]])dep[dis[i]]=dep[x]+1,que[tl++]=dis[i];}return dep[T];
}
il int Dinic(int x,int maxflow){if(x==T)return maxflow;int ret=0;for(int&i=head[x];i;i=nxt[i])if(w[i]&&dep[dis[i]]==dep[x]+1){int d=Dinic(dis[i],std::min(w[i],maxflow-ret));w[i]-=d,w[i^1]+=d,ret+=d;if(ret==maxflow)break;}return ret;
}
int main(){
#ifndef ONLINE_JUDGEfreopen("4048.in","r",stdin);freopen("4048.out","w",stdout);
#endifint n=gi(),m=gi(),t=gi();for(int i=1;i<=n;++i)X0[i]=gi(),Y0[i]=gi(),R[i]=gi(),d[i]=gi();for(int i=1;i<=m;++i)X1[i]=gi(),Y1[i]=gi();for(int i=1;i<=t;++i)X2[i]=gi(),Y2[i]=gi(),r2[i]=gi();for(int i=1;i<=n;++i)for(int j=1;j<=m;++j)if(sqr(X0[i]-X1[j])+sqr(Y0[i]-Y1[j])<=R[i]*R[i]){bool flg=1;for(int k=1;k<=t;++k)if(X0[i]==X1[j]){if(abs(X0[i]-X2[k])>r2[k])continue;double yy0=Y0[i],yy1=Y1[j];if(yy0>yy1)std::swap(yy0,yy1);if(yy0<=Y2[k]&&Y2[k]<=yy1){flg=0;break;}}else{double k0=1.0*(Y0[i]-Y1[j])/(X0[i]-X1[j]),b0=Y0[i]-X0[i]*k0;double dist1=fabs(k0*X2[k]-Y2[k]+b0)/sqrt(1+k0*k0);double xx=X2[k]+sin(atan(-1/k)),xx0=X0[i],xx1=X1[j];if(xx0>xx1)std::swap(xx0,xx1);if(dist1<=r2[k]&&xx0<=xx&&xx<=xx1){flg=0;break;}}if(flg)yes[i][j]=1;}for(int i=1;i<=m;++i){for(int j=1;j<=n;++j)if(yes[j][i])goto GG;return puts("-1"),0;GG:;}int l=0,r=20000*m,mid;while(l<r){mid=((l+r)>>1);memset(fir,0,sizeof fir);id=1;for(int i=1;i<=n;++i)link(S,i,mid/d[i]+1);for(int i=1;i<=m;++i)link(i+n,T,1);for(int i=1;i<=n;++i)for(int j=1;j<=m;++j)if(yes[i][j])link(i,j+n,1);int tot=0;while(BFS())memcpy(head,fir,sizeof head),tot+=Dinic(S,1e9);if(tot==m)r=mid;else l=mid+1;}printf("%d\n",l);return 0;
}

转载于:https://www.cnblogs.com/xzz_233/p/9819285.html

P4048 [JSOI2010]冷冻波相关推荐

  1. (计算几何+二分+网络流)P4048 [JSOI2010]冷冻波

    P4048 [JSOI2010]冷冻波 思路: 首先我们可以假设如果有ansansans分钟的话,巫妖可以攻击⌊anst⌋+1\lfloor\cfrac{ans}{t}\rfloor+1⌊tans​⌋ ...

  2. 停课集训 11.29

    今天效率及其低下,超困. 刷了一些网络流题,写成博客了 bzoj1565植物大战僵尸  博客 bzoj1822Frozen Nova 冷冻波 bzoj1834network 网络扩容 bzoj1877 ...

  3. MPB:华中师大谢波组-​​​微生物非标记定量蛋白质组学样品制备方法

    为进一步提高<微生物组实验手册>稿件质量,本项目新增大众评审环节.文章在通过同行评审后,采用公众号推送方式分享全文,任何人均可在线提交修改意见.公众号格式显示略有问题,建议电脑端点击文末阅 ...

  4. join和group by能一块用吗_冷冻一下地球能缓解温室效应吗?| No.171

    本计划将持续一百代人, 尽管, 我们不知道五千年后的夏日, 会是怎样的风景, 但从今天开始, 人类的勇气与坚毅, 将永刻于星空之下, 这一绝望与希望并存, 持续千年的控温之旅, 史称"冷冻地 ...

  5. 2208: [Jsoi2010]连通数(Trajan+bitset)

    2208: [Jsoi2010]连通数 Time Limit: 20 Sec  Memory Limit: 512 MB Submit: 2929  Solved: 1280 [Submit][Sta ...

  6. 离奇而迷人的量子物理学:人类也是一种波

    全文共4028字,预计学习时长11分钟 该图摄于2015年.众所周知,光同时具有波和粒两种属性.而物质粒子也具有波状属性却鲜有人知.即使体型像人类一样巨大的物体也具有波状属性,只不过很难进行度量. & ...

  7. 封城第14日,囤了一波好货

    封城第14天了,今天去小区里小卖部买了一箱啤酒和30个鸡蛋,一共花了110,这下明天开始可以吃菜喝酒了,夜宵也可以荷包蛋自由了.京东上看了一下大概价格在90左右,看来这个小卖部还是挺良心的,现在外面团 ...

  8. java 斐波拉_Java实现斐波那契数列

    斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1.1.2.3.5.8.13.21.--在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n&g ...

  9. 数字图像处理——第七章 小波和多分辨处理

    数字图像处理--第七章 小波和多分辨率处理 文章目录 数字图像处理--第七章 小波和多分辨率处理 写在前面 1 多分辨率处理 1.1 图像金字塔 1.2 多尺度和多分辨率的区别 2 小波 2.1 连续 ...

最新文章

  1. 赔得比赚得多,职场人年终奖都花哪儿了?
  2. 关于网站域名的配置过程
  3. 如何给APK文件签名
  4. Mysql中SQL语句不使用索引的情况
  5. ctc与临时限速服务器信息,基于CTC站场图图形元素设置高速铁路临时限速的方法...
  6. 微服务内部方法调用方式
  7. 71. Simplify Path
  8. 在Android中使用反射到底有多慢?
  9. 一个关于mahout0.5放置位置的错误,,,
  10. Android UI设计中一些不错的示例及第三方控件
  11. u-boot-2012.04.01移植笔记——支持NAND启动
  12. 数字信号处理 实验一 时域采样与频域采样【实验报告】
  13. 如何进行邮件营销,邮件营销群发是否有效?
  14. OkHttp3出现java.io.IOException: Hostname was not verified解决方案
  15. rfm模型python_Python pandas RFM模型应用实例详解
  16. 机器学习分类模型评价指标之混淆矩阵
  17. 探讨关于Flash Player的更多线索(22.12.28更新)
  18. HTML与CSS——CSS字体样式
  19. iOS 即时聊天 音频格式转NSData
  20. 基于asp.net校园足球赛事管理系统-计算机毕业设计

热门文章

  1. 用python连接redis时错误InvalidResponse: Protocol Erro...
  2. Document,Node,Element,HTMLDocument ,HTMLCollection,HTMLElement,NodeList
  3. HTML DOM 方法
  4. django模板导入js,css等外部文件
  5. Mac上安装hadoop
  6. AOP的两种实现方式
  7. C语言入门书籍--C语言程序设计
  8. golang中的aliyunoss
  9. 内核地址空间和用户地址空间
  10. Linux系统进程类型有哪些?进程状态有哪几种?常见的进程有哪些?