博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【BZOJ3158】千钧一发 最小割
阅读量:5118 次
发布时间:2019-06-13

本文共 1783 字,大约阅读时间需要 5 分钟。

【BZOJ3158】千钧一发

Description

Input

第一行一个正整数N。

第二行共包括N个正整数,第 个正整数表示Ai。

第三行共包括N个正整数,第 个正整数表示Bi。

Output

共一行,包括一个正整数,表示在合法的选择条件下,可以获得的能量值总和的最大值。

Sample Input

4
3 4 5 12
9 8 30 9

Sample Output

39

题解:一开始直接把那道题粘了下来交上去,结果发现并不一样~

#include 
#include
#include
#include
#include
#include
using namespace std;int n,cnt,tot,ans,tx,ty;typedef long long ll;queue
q;int A[1010],B[1010];int vx[1010],vy[1010],ex[1010],ey[1010],next[2000000],head[6010],to[2000000],val[2000000],d[6010];int gcd(int a,int b){ return (b==0)?a:gcd(b,a%b);}int dfs(int x,int mf){ if(x==n+1) return mf; int i,k,temp=mf; for(i=head[x];i!=-1;i=next[i]) { if(d[to[i]]==d[x]+1&&val[i]) { k=dfs(to[i],min(temp,val[i])); if(!k) d[to[i]]=0; val[i]-=k,val[i^1]+=k,temp-=k; if(!temp) break; } } return mf-temp;}int bfs(){ int i,u; memset(d,0,sizeof(d)); while(!q.empty()) q.pop(); q.push(0),d[0]=1; while(!q.empty()) { u=q.front(),q.pop(); for(i=head[u];i!=-1;i=next[i]) { if(!d[to[i]]&&val[i]) { d[to[i]]=d[u]+1; if(to[i]==n+1) return 1; q.push(to[i]); } } } return 0;}void add(int a,int b,int c){ to[cnt]=b; val[cnt]=c; next[cnt]=head[a]; head[a]=cnt++;}int main(){ scanf("%d",&n); int i,j,k,k1; memset(head,-1,sizeof(head)); for(i=1;i<=n;i++) scanf("%d",&A[i]); for(i=1;i<=n;i++) scanf("%d",&B[i]),tot+=B[i]; for(i=1;i<=n;i++) { if(A[i]&1) add(0,i,B[i]),add(i,0,0); else add(i,n+1,B[i]),add(n+1,i,0); } for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { if(!(A[i]&1)||(A[j]&1)||gcd(A[i],A[j])>1) continue; ll k=(ll)A[i]*A[i]+(ll)A[j]*A[j]; if(ll(sqrt(k))*ll(sqrt(k))==k) { add(i,j,1<<30); add(j,i,0); } } } while(bfs()) ans+=dfs(0,1<<30); printf("%d",tot-ans); return 0;}

转载于:https://www.cnblogs.com/CQzhangyu/p/6909471.html

你可能感兴趣的文章
VS2010查看源码对应的汇编语言
查看>>
老了也要成长
查看>>
JavaScript访问对象的属性和方法
查看>>
分类器、logistic回归
查看>>
flex布局
查看>>
《Java虚拟机原理图解》4.JVM机器指令集
查看>>
傻瓜方法求集合的全部子集问题(java版)
查看>>
杭电1879继续畅通project
查看>>
pdf怎么转成word?最简单的文件转换方法推荐
查看>>
c/s模式 (C#)下Ftp的多文件上传及其上传进度
查看>>
JS 9*9乘法表 不注意对齐
查看>>
20160327个人日记
查看>>
Django之数据库连表操作
查看>>
关闭Android/iPhone浏览器自动识别数字为电话号码
查看>>
CPU 用户时间 系统时间(转载)
查看>>
Leetcode: Sliding Window Median
查看>>
C++实验2
查看>>
Linux安装Apache报错:Cannot find a valid baseurl for repo: base/7/x86_64解决方案
查看>>
sass03 变量、样式导入
查看>>
node09---中间件
查看>>