3275: Number

题目:传送门


题解:

   双倍经验@bzoj3158

  


代码:

 #include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<algorithm>
#define qread(x) x=read()
using namespace std;
const int inf=;
int n,st,ed,sum;
int A[],B[];
struct node
{
int x,y,c,next,other;
}a[];int len,last[];
void ins(int x,int y,int c)
{
int k1,k2;
k1=++len;
a[len].x=x;a[len].y=y;a[len].c=c;
a[len].next=last[x];last[x]=len; k2=++len;
a[len].x=y;a[len].y=x;a[len].c=;
a[len].next=last[y];last[y]=len; a[k1].other=k2;
a[k2].other=k1;
}
int list[],h[],head,tail;
bool bt_h()
{
memset(h,,sizeof(h));h[st]=;
list[]=st;head=;tail=;
while(head!=tail)
{
int x=list[head];
for(int k=last[x];k;k=a[k].next)
{
int y=a[k].y;
if(h[y]== && a[k].c>)
{
h[y]=h[x]+;
list[tail++]=y;
}
}
head++;
}
if(h[ed]>)return true;
return false;
}
int find_flow(int x,int flow)
{
if(x==ed)return flow;
int s=,t;
for(int k=last[x];k;k=a[k].next)
{
int y=a[k].y;
if(h[y]==h[x]+ && a[k].c> && flow>s)
{
s+=t=find_flow(y,min(a[k].c,flow-s));
a[k].c-=t;a[a[k].other].c+=t;
}
}
if(s==)h[x]=;
return s;
}
int gcd(int x,int y) {if(x>y)swap(x,y);if(x==)return y;return gcd(y%x,x);}
bool pd(int x,int y)
{
int t=int(sqrt(double(x*x+y*y)));
if(t*t!=x*x+y*y)return true;
if(gcd(x,y)>)return true;
return false;
}
int main()
{
freopen("number.in","r",stdin);
freopen("number.out","w",stdout);
sum=;
scanf("%d",&n);
len=;memset(last,,sizeof(last));
for(int i=;i<=n;i++){scanf("%d",&B[i]);sum+=B[i];}
st=n+;ed=st+;
for(int i=;i<=n;i++)
{
if(B[i]%==)ins(st,i,B[i]);
else ins(i,ed,B[i]);
}
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)if(i!=j)
if((B[i]%==) && (B[j]%==) && pd(B[i],B[j])==false)
ins(i,j,);
int ans=;
while(bt_h())ans+=find_flow(st,);
printf("%d\n",sum-ans);
return ;
}

最新文章

  1. TPC-H
  2. iOS开发之功能模块--根据需求开发横向的子弹盒View
  3. 理解 Java 的三大特性之多态
  4. ADF_Controller系列3_通过创建ADF Menu作为页面向导(Part1)
  5. JavaScript Patterns 4.3 Returning Functions
  6. Supervisor行为分析和实践
  7. IIS7下swfupload上传大文件出现404错误
  8. js事件模型
  9. thinkphp ajax检测是否数据可用
  10. GDB调试技巧
  11. 打patch p0 p1区别
  12. CSS中cursor的pointer 与 hand-备
  13. AES 加密,C#后台,javascript前台,crypt-js
  14. dataset的使用和图片延时加载的实现
  15. EF Core 2.2 对多个 DbContext 单个数据库的情况进行迁移的示例
  16. [转帖]Tensor是神马?为什么还会Flow?
  17. 25_re模块
  18. log4cpp简单使用及踩到的坑
  19. 洛谷 P2014 选课(树形背包)
  20. sql server 2008 链接到数据库引擎

热门文章

  1. Java之旅--Web.xml解析
  2. php利用反射真正实现多继承(非接口模拟)
  3. dns tunnel C&amp;C
  4. Linux就该这么学 20181008(第十三章BIND)
  5. Python使用functools模块中的partial函数生成偏函数
  6. ROS-opencv-人脸识别-物体追踪-二维码识别
  7. 在ubuntu下安装zookeeper
  8. mybatis的二级缓存的使用
  9. js前台编码,asp.net后台解码 防止前台传值到后台为乱码
  10. 初探MVC路由