题目链接

戳我

\(Solution\)

我们首先进行拆点操作,将每个点都拆成\(x\)和\(y\),将满足条件的两个点连起来就好了(记得要将\(x\)连\(y'\)的同时要将\(y\)联向\(x'\))

code

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int read(){
int x=0,f=1;
char c=getchar();
while(c<'0'||c>'9')
f=(c=='-')?-1:1,c=getchar();
while(c>='0'&&c<='9')
x=x*10+c-'0',c=getchar();
return x*f;
}
struct node{
int to,next,v,w;
}a[1000001];
int dis[10001],f[10001],pre[10001],fa[10001],s,t,n,head[10001],cnt,x,y,z,c;
void add(int x,int y,int c,int v){
a[++cnt].to=y;
a[cnt].next=head[x];
a[cnt].v=c;
a[cnt].w=v;
head[x]=cnt;
}
queue < int > q;
int spfa(){
q.push(s);
memset(dis,127,sizeof(dis));
memset(f,0,sizeof(f));
f[s]=1,dis[s]=0;
int inf=dis[s+1];
while(!q.empty()){
int now=q.front();
q.pop();
f[now]=0;
for(int i=head[now];i;i=a[i].next){
int v=a[i].to;
if(dis[v]>dis[now]+a[i].w&&a[i].v){
dis[v]=dis[now]+a[i].w,pre[v]=i,fa[v]=now;
if(!f[v])
f[v]=1,q.push(v);
}
}
}
if(dis[t]!=inf)
return 1;
return 0;
}
int ans1,ans;
void anser(){
while(spfa()){
int minx=2147483647;
for(int i=t;i!=s;i=fa[i])
minx=min(minx,a[pre[i]].v);
ans+=minx,ans1+=dis[t]*minx;
for(int i=t;i!=s;i=fa[i])
a[pre[i]].v-=minx,(pre[i]%2)?a[pre[i]+1].v+=minx:a[pre[i]-1].v+=minx;
}
}
int main(){
int A=read(),B=read();
n=B,s=0,t=B+1;
for(int i=A;i<=B;i++)
add(s,i,1,0),add(i,s,0,0);
for(int i=A+B;i<=B+B;i++)
add(i,t,1,0),add(t,i,0,0);
for(int i=A;i<=B;i++)
for(int j=A;j<i;j++){
int l=i*i-j*j,p=sqrt(l);
if(p*p==l&&__gcd(j,p)==1){
add(i,j+B,1,-i-j),add(j+B,i,0,i+j);
add(j,i+B,1,-i-j),add(i+B,j,0,i+j);
}
}
anser();
printf("%d %d",ans/2,-1*ans1/2);
}

最新文章

  1. Network
  2. ubuntu vps 安装 jdk
  3. 匈牙利算法与KM算法
  4. fcntl函数
  5. Activity生命周期 onCreate onResume onStop onPause (转)
  6. MYSQL select时锁定记录问题
  7. 更靠谱的js判断浏览器及其版本
  8. OpenJDK和Sun/OracleJDK 区别 与联系
  9. 【转】数据库分页Java实现
  10. Unity3D环境GLSL shaders书面 — 固体参数
  11. jquery mobile扁平化设计样式--Jquery mobile Flat UI介绍
  12. GridView等表格模板列绑定数据的方法
  13. PHP7链接MySQL
  14. NBIoT三种部署方式【转】
  15. 把Catalina的字符串格式转化为日期格式
  16. spring boot(七)mybatis多数据源解决方案
  17. elk之elasticsearch安装
  18. jvm运行机制和volatile关键字详解
  19. python下载安装搭建
  20. 使用 Laravel 数据填充生成 中文 测试数据

热门文章

  1. java成神之——文件IO
  2. in not in 和 null , in 判断范围中可以包含null,而not in判断不能包括null
  3. Swift 添加自定义响应事件
  4. 【整理】Android中的gravity和layout_gravity区别
  5. windows 共存多个位数不同的jdk时,eclipse的报错对应措施
  6. java Web JSTL介绍及基本应用
  7. PHP网站
  8. POJ 3169 C - Layout
  9. mysql 纸 mysql_fetch_array OR mysql_fetch_assoc OR mysql_fetch_row
  10. 70个HR面试题