BZOJ3158 千钧一发
来源:互联网 发布:爱逛街淘宝网首页 编辑:程序博客网 时间:2024/05/21 08:04
同BZOJ3275
#include<iostream>#include<cstdio>#include<cstdlib>#include<algorithm>#include<iomanip>#include<cmath>#include<cstring>#include<ctime>#include<vector>#include<stack>#include<queue>#include<set>#include<bitset>#include<map>using namespace std;#define MAXN 100010#define MAXM 10000010#define INF 1000000000#define MOD 1000000007#define ll long long #define eps 1e-8struct vec{ ll to; ll fro; ll v;};vec mp[MAXM];ll tai[MAXN],cnt=1;ll s,t;ll d[MAXN];ll q[MAXN],hd,tl;ll ans;ll cur[MAXN];inline void be(ll x,ll y,ll z){ mp[++cnt].to=y; mp[cnt].fro=tai[x]; tai[x]=cnt; mp[cnt].v=z;}inline void bse(ll x,ll y,ll z){ be(x,y,z); be(y,x,0);}bool bfs(){ ll i,x,y; memset(d,0,sizeof(d)); d[s]=1; hd=tl=0; q[tl++]=s; while(hd!=tl){ x=q[hd++]; for(i=tai[x];i;i=mp[i].fro){ y=mp[i].to; if(mp[i].v&&(!d[y])){ d[y]=d[x]+1; q[tl++]=y; } } } return d[t];}ll dfs(ll x,ll mx){ if(x==t){ return mx; } ll i,y,tt; ll re=0; for(i=tai[x];i;i=mp[i].fro){ y=mp[i].to; if(d[y]==d[x]+1&&mp[i].v){ tt=dfs(y,min(mx,mp[i].v)); mp[i].v-=tt; mp[i^1].v+=tt; mx-=tt; re+=tt; if(!mx){ return re; } } } if(!re){ d[x]=0; } return re;}ll n,m;ll a[MAXN],b[MAXN];ll gcd(ll x,ll y){ return !y?x:gcd(y,x%y);}int main(){ ll i,j,x,y,k,xx,yy; scanf("%lld",&n); for(i=1;i<=n;i++){ scanf("%lld",&a[i]); } for(i=1;i<=n;i++){ scanf("%lld",&b[i]); ans+=b[i]*2; } s=n*2+1; t=s+1; for(i=1;i<=n;i++){ bse(s,i,b[i]); bse(n+i,t,b[i]); for(j=1;j<=n;j++){ if(gcd(a[i],a[j])==1&&(ll)(sqrt(a[i]*a[i]+a[j]*a[j]))*(ll)(sqrt(a[i]*a[i]+a[j]*a[j]))==a[i]*a[i]+a[j]*a[j]){ bse(i,n+j,INF); } } } while(bfs()){ ans-=dfs(s,INF); } printf("%lld\n",ans/2); return 0;} /*2 1 2 3 5 */
0 0
- bzoj3158 千钧一发
- BZOJ3158 千钧一发
- bzoj3158 千钧一发
- BZOJ3158: 千钧一发
- BZOJ3158:千钧一发
- 【BZOJ3158】千钧一发 最小割
- BZOJ3158 千钧一发-最小割
- [BZOJ3158]千钧一发(最小割)
- 【BZOJ3158】千钧一发,网络流之最大权闭合子图
- Gattaca-千钧一发
- 3158: 千钧一发
- bzoj 3158: 千钧一发
- 3158: 千钧一发 最小割
- BZOJ P3158 千钧一发
- BZOJ 3158: 千钧一发
- 3158: 千钧一发/3275: Number
- BZOJ 3158: 千钧一发(最小割)
- BZOJ 3158: 千钧一发 网络流
- 【3】Java并发编程:多线程基本概念
- 有用的IT网站
- Android NotificationManager简读
- SVN版本控制与分支设置
- Java使用Socket读写邮件服务器示例
- BZOJ3158 千钧一发
- LInux 进程间通信-FIFO总结
- 常用的数据标准化方法
- 10进制整型转16进制整型?
- IntelliJ IDEA中出现PSI and index do not match的错误的解决办法
- 磁盘调度算法
- 3Sum
- window.returnValue使用方法
- 关于Java类加载双亲委派机制的思考(附一道面试题)