BZOJ 4857 反质数序列
奇数+奇数一定不是质数(1+1除外),偶数+偶数一定不是质数,质数只可能出现在偶数+奇数中
把所有的点排成两列,权值为奇数的点在左边,权值为偶数的在右边
如果左边的点x+右边的点y是质数,我们就连一条x->y的边
最后答案显然是最大独立集=n-最小点覆盖=n-最大匹配数
由于1比较特殊,考虑到最终答案1的出现次数<=1,所以如果有多个1只保留一个即可
#include <bits/stdc++.h>
using namespace std;
struct littlstar{
int to;
int nxt;
int w;
}star[];
int head[],cnt=;
void add(int u,int v,int w)
{
star[++cnt].to=v;
star[cnt].nxt=head[u];
star[cnt].w=w;
head[u]=cnt;
}
int n;
int prime[];
int a[];
void pre()
{
for(register int i=;i<=;i++){
if(prime[i]) continue;
for(register int j=i;j<=/i;j++){
prime[i*j]=;
}
}
}
int dis[];
queue<int> q;
bool bfs()
{
memset(dis,,sizeof(dis));
while(q.size()) q.pop();
q.push();
dis[]=;
while(q.size())
{
int u=q.front();
q.pop();
for(register int i=head[u];i;i=star[i].nxt){
int v=star[i].to;
if(star[i].w&&!dis[v]){
q.push(v);
dis[v]=dis[u]+;
if(v==) return ;
}
}
}
return ;
}
int dinic(int u,int flow)
{
if(u==){
return flow;
}
int rest=flow,k;
for(register int i=head[u];i&&rest;i=star[i].nxt){
int v=star[i].to;
if(star[i].w&&dis[v]==dis[u]+){
k=dinic(v,min(rest,star[i].w));
if(!k) dis[v]=;
star[i].w-=k;
star[i^].w+=k;
rest-=k;
}
}
return flow-rest;
}
int maxflow=;
int b[];
int main ()
{
scanf("%d",&n);
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
}
sort(a+,a++n);
int tmpnum=;
for(int i=;i<=n;i++){
if(i>&&a[i]==){
continue;
}
b[++tmpnum]=a[i];
}
n=tmpnum;
for(int i=;i<=n;i++){
a[i]=b[i];
}
pre();
for(register int i=;i<=n;i++){
for(register int j=;j<=n;j++){
if(i==j) continue;
if(!prime[a[i]+a[j]]&&a[i]%==&&a[j]%==){
add(i,j,);
add(j,i,);
}
}
}
for(register int i=;i<=n;i++){
if(a[i]%==){
add(,i,);
add(i,,); }
else{
add(i,,);
add(,i,);
}
}
int flow=;
while(bfs()){
while(flow=dinic(,)){
maxflow+=flow;
}
}
cout<<n-maxflow;
}
BZOJ 4857 反质数序列的更多相关文章
- bzoj:3085: 反质数加强版SAPGAP
Description 先解释一下SAPGAP=Super AntiPrime, Greatest AntiPrime(真不是网络流),于是你就应该知道本题是一个关于反质数(Antiprime)的问题 ...
- [BZOJ 4857][Jsoi2016]反质数序列
传送门 $ \color{green} {solution : } $ 因为 $ 1 $ 的个数我们最多只能选一个,所以剩下的数如果组成素数那么只有一奇一偶,显然是个二分图模型 #include &l ...
- [BZOJ4857][JSOI2016]反质数序列[最大点独立集]
题意 在长度为 \(n\) 的序列 \(a\) 中选择尽量长的子序列,使得选出子序列中任意两个数的和不为质数. \(n\leq3000\ ,a_i\leq10^5\). 分析 直接按照奇偶性建立二分图 ...
- BZOJ 3085: 反质数加强版SAPGAP (反素数搜索)
题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3085 题意:求n(<=10^100)之内最大的反素数. 思路: 优化2: i ...
- [JSOI2016]反质数序列
我竟然半个小时切了一道JSOI2016,,,,不敢相信. 首先可以发现,如果N个数中1出现的次数<=1的话,我们按不能在一个集合连无向边的话,连出的一定是一个二分图. 接下来我来证明一下: 因为 ...
- [bzoj]1053反质数<暴搜>
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1053 感想:这道题拿到以后还是想去知道一个数的约数个数要怎么求,去网上搜了公式,但是还是没有思 ...
- 【LOJ】#2081. 「JSOI2016」反质数序列
题解 我居然都没反应过来二分图内选集合两两不能有边是最大独立集了 我退役吧 显然连边只能在奇数和偶数之间,然后二分图求最大独立集是节点数-最大匹配数 啊当然还有对于1的话只能留一个1 代码 #incl ...
- BZOJ1053 [HAOI2007]反素数 & BZOJ3085 反质数加强版SAPGAP
BZOJ 1053 Description 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4.如果某个正整数x满足:g(x)>g(i) 0<i<x ,则称x ...
- [BZOJ 3992] [SDOI 2015] 序列统计(DP+原根+NTT)
[BZOJ 3992] [SDOI 2015] 序列统计(DP+原根+NTT) 题面 小C有一个集合S,里面的元素都是小于质数M的非负整数.他用程序编写了一个数列生成器,可以生成一个长度为N的数列,数 ...
随机推荐
- #5 DIV2 A POJ 3321 Apple Tree 摘苹果 构建线段树
Apple Tree Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 25232 Accepted: 7503 Descr ...
- Pod初始化容器之Init Container
Init 容器的介绍 Pod能够具有多个容器,应用运行在容器里面,但是它也可能有一个或多个先于应用容器启动的 Init容器Init 容器与普通的容器非常像,除了如下两点: c Init 容器总是运行 ...
- Struts2笔记(学struts2只需要这一篇文章)
1.如何将struts2框架引入到web项目中 1.把struts2相关jar包引入到项目中 2.把struts2的配置文件直接放到src下面,名字要叫做struts.xml.(运行时配置文 ...
- AtCoder4351 Median of Medians 二分, 树状数组
题目大意 定义一个从小到大的数列的中位数为第 $ \frac{n}{2}+1 $ 项.求一个序列的所有连续子序列的中位数的中位数. $ (n \leqslant 100000)$ 问题分析 由于\(n ...
- R_Studio(学生成绩)对两个班级学生成绩进行集合,重新计算学生综合测评成绩并对学生按综合测评成绩进行排名
对成绩表"11_1_1.csv" "11_2_1.csv"进行集成,并重新计算4门课程的平均分为综合测评,增加“排名”属性,并按排名排序 "11_1_ ...
- @transient 注解 和 transient变量的作用
@transient 和 transient是两码事 1.@transient的作用 @transient是hibernate和Morphia中的注解,hibernate都熟悉,Morphia是通过同 ...
- 自定义ItemDecoration设置分割线
说道ItemDecoration不得不说三个方法: /** * @param c 画布 * @param parent RecyleView * @param state RecyclerView的当 ...
- jsp里面自定义标签常量详解
标签中静态常量: EVAL_BODY_INCLUDE:告诉服务器正文的内容,并把这些内容送入输出流 SKIP_BODY:告诉服务器不要处理正文内容 EVAL_PAGE:让服务器继续执行页面 SKIP_ ...
- 20175215 2018-2019-2 第一周Linux虚拟机环境调试及java程序调试学习总结
一.Linux虚拟机的java环境调试 之前直接在终端中使用export直接配置java的运行环境,导致每次终端被重启的时候都要重新配置java的运行环境,直到看到老师的博客Intellj IDEA ...
- R语言爬取动态网页之环境准备
在R实现pm2.5地图数据展示文章中,使用rvest包实现了静态页面的数据抓取,然而rvest只能抓取静态网页,而诸如ajax异步加载的动态网页结构无能为力.在R语言中,爬取这类网页可以使用RSele ...