题解

分析

因为只有奇数和偶数配对才有可能得出质数,

暴力求出每一对\(a_i+a_j\)为质数,将其中的奇数想偶数连一条边。

二分图匹配,匈牙利算法。

#include <cmath>
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <queue>
const int maxlongint=2147483647;
const int mo=1000000007;
const int N=45;
using namespace std;
int n,a[N],pt[N*N],used[N*N],b[N][N],ans;
int find(int x)
{
if(used[x]) return 0;
used[x]=1;
for(int i=1;i<=b[x][0];i++)
{
if(pt[b[x][i]]==0 || find(pt[b[x][i]]))
{
pt[b[x][i]]=x;
return 1;
}
}
return 0;
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(i!=j)
{
bool q=true;
for(int k=2;k<=sqrt(a[i]+a[j])+1 && q;k++)
{
if((a[i]+a[j])%k==0) q=false;
}
if(q) b[i][++b[i][0]]=j;
}
for(int i=1;i<=n;i++)
if(a[i]%2)
{
memset(used,0,sizeof(used));
ans+=find(i);
}
cout<<ans<<endl;
}

最新文章

  1. android studio 代理配置
  2. 《深入理解Spark:核心思想与源码分析》一书正式出版上市
  3. 关闭log4j 输出 DEBUG org.apache.commons.beanutils.*
  4. 水灾(sliker.cpp/c/pas) 1000MS 64MB
  5. 【linux】Cache和Buffer的区别
  6. 关于Spring中AOP的理解
  7. 网站被百度和google封了,怎么办?
  8. xpages的comboBox能够手动输入
  9. sql编程 &amp;&amp; 存储过程
  10. JDBC连接池(三)DBCP连接池
  11. 计算机17-1,2作业D
  12. flask保存 文件到本地
  13. poi读取excel内容工具类
  14. excel之导出
  15. Images之Dockerfile中的命令2
  16. A*与IDA*
  17. Android7.0新特性,及Android N适配
  18. DSOFramer 控件修改成功
  19. linux: cmake(未完,待更新)
  20. C#获取当前程序集的完整路径

热门文章

  1. 前端,后端,UI,UE,UX,区别到底在哪里?
  2. 微信小程序 解析html格式内容
  3. CentOS7之root密码破解
  4. multiplication_puzzle(区间dp)
  5. homestead安装swoole扩展
  6. “laravel.log” could not be opened: failed to open stream
  7. C - 卿学姐与诡异村庄(并查集+One face meng bi)
  8. 数据库中的round()
  9. 微信小程序与内嵌webview之间来回跳转的几点总结,以及二维码的使用
  10. G1 垃圾收集器之对象分配过程