博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj3275: Number
阅读量:5217 次
发布时间:2019-06-14

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

Description

有N个正整数,需要从中选出一些数,使这些数的和最大。

若两个数a,b同时满足以下条件,则a,b不能同时被选
1:存在正整数C,使a*a+b*b=c*c
2:gcd(a,b)=1

Input

第一行一个正整数n,表示数的个数。
第二行n个正整数a1,a2,?an。
 
 

Output

最大的和。
 

Sample Input

5
3 4 5 6 7

Sample Output

22

HINT

 

n<=3000。

 

Source

 
题解:
二元组建图 :  
先将求最大值改为负的最小费用
选了一个数x看成造成-x的费用,同时选了不能同时选的点对看成inf的费用
然后发现K值是负的,那么这个图有没有二分图性质呢
答案显然是有的(不然有这题干什么)
若存在正整数a,b,c,满足a
2+b
2=c
2,且a,b互质,那么a和b的奇偶性不同
证明:正整数显然表示成4k,4k+1,4k+2,4k+3中的一种
而 (4k)
mod 4 = 0
(4k+1)
2 mod 4 = 1
(4k+2)
2 mod 4 = 0
(4k+3)
2 mod 4 = 1
 
显然 (amod 4)+(b2 mod 4)=(cmod 4) 
1. c如果为 4k 或 4k+2,只有amod 4和bmod 4都是0才有可能满足上式,但这不满足a,b互质的要求(显然a和b此时都是偶数)
2. c如果为 4k+1 或 4k+3,amod 4和bmod 4不能同为0或1,此时a,b的奇偶性不同
所以只有可能在一对奇偶不同的数才由可能建边,所以这个图有二分图性质
code:
1 #include
2 #include
3 #include
4 #include
5 #include
6 #define maxn 3005 7 #define maxm 6000000 8 #define inf 1061109567 9 using namespace std;10 char ch;11 bool ok;12 void read(int &x){13 for (ok=0,ch=getchar();!isdigit(ch);ch=getchar()) if (ch=='-') ok=1;14 for (x=0;isdigit(ch);x=x*10+ch-'0',ch=getchar());15 if (ok) x=-x;16 }17 int n,a[maxn],sum;18 struct flow{19 int s,t,tot,now[maxn],son[maxm],pre[maxm],val[maxm];20 int dis[maxn],head,tail,list[maxn];21 bool bo[maxn];22 void init(){s=0,t=n+1,tot=1,memset(now,0,sizeof(now));}23 void put(int a,int b,int c){pre[++tot]=now[a],now[a]=tot,son[tot]=b,val[tot]=c;}24 void add(int a,int b,int c){put(a,b,c),put(b,a,0);}25 bool bfs(){26 memset(bo,0,sizeof(bo));27 head=0,tail=1,list[1]=s,dis[s]=0,bo[s]=1;28 while (head

 

转载于:https://www.cnblogs.com/chenyushuo/p/5146285.html

你可能感兴趣的文章
Swift - 异步加载各网站的favicon图标,并在单元格中显示
查看>>
Java编程思想总结笔记Chapter 5
查看>>
[LeetCode]662. Maximum Width of Binary Tree判断树的宽度
查看>>
WinForm聊天室
查看>>
【Python学习笔记】1.基础知识
查看>>
梦断代码阅读笔记02
查看>>
selenium学习中遇到的问题
查看>>
大数据学习之一——了解简单概念
查看>>
Linux升级内核教程(CentOS7)
查看>>
Lintcode: Partition Array
查看>>
分享适合个人站长的5类型网站
查看>>
类别的三个作用
查看>>
【SICP练习】85 练习2.57
查看>>
runC爆严重安全漏洞,主机可被攻击!使用容器的快打补丁
查看>>
Maximum Product Subarray
查看>>
solr相关配置翻译
查看>>
通过beego快速创建一个Restful风格API项目及API文档自动化(转)
查看>>
解决DataSnap支持的Tcp长连接数受限的两种方法
查看>>
Synchronous/Asynchronous:任务的同步异步,以及asynchronous callback异步回调
查看>>
ASP.NET MVC5 高级编程-学习日记-第二章 控制器
查看>>