BZOJ3158 千钧一发
2016-06-13 14:46
232 查看
同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-8 struct 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 */
相关文章推荐
- WindowManager.LayoutParams.type属性
- bootstrap-datepicker 与bootstrapValidator同时使用时,选择日期后,无法正常触发校验
- 【3】Java并发编程:多线程基本概念
- BI商务智能对于企业的意义
- 找工作 准备
- php session 保存数据库
- 两张图解决java与C#访问权限问题
- Google vr -Android SDK API-com.google.vr.sdk.base--overview
- DirectX9中Pixel Coordinates System的一个怪异特性
- Android-->自定义模版EditText(多用于手机号码,银行卡号等输入)
- SSH 内网端口转发实战
- 解决文件上传插件Uploadify在火狐浏览器下,Session丢失的问题
- C#之 Lambda表达式
- JavaFX和可视化信息抽取
- JVM性能调优监控工具jps、jstack、jstat、jmap、jinfo使用详解
- 用java写一个多线程程序,其中两个对一个变量加1,另两个对一个变量减1
- Android studio中的错误Your project path contains non-ASCII characters
- 关于Tomcat
- 二分图的最大匹配 C++实现
- Hibernate中的即时加载