Jzoj4832 高维宇宙
2017-10-29 19:04
260 查看
我们注意到有ai>1,所以,ai+aj为质数当且仅当两者奇偶性不同
我们可以以此将这个图变成一个二分图跑匈牙利算法即可
(这个题n只有40害得我想了半天状压dp和折半搜索,坑。。。)
#pragma GCC optimize("O3") #pragma G++ optimize("O3") #include<vector> #include<stdio.h> #include<string.h> #include<algorithm> #define N 100 using namespace std; vector<int> s ; bool vis[100]; int ans=0,n,f[100],v[100],pr[3000]; bool match(int x){ for(int i=0;i<s[x].size();++i) if(!vis[s[x][i]]){ vis[s[x][i]]=1; if(!f[s[x][i]] || match(f[s[x][i]])){ f[s[x][i]]=x; return 1; } } return 0; } int main(){ freopen("prime.in","r",stdin); freopen("prime.out","w",stdout); for(int i=2;i<=3000;++i) if(!pr[i]) for(int j=i+i;j<=3000;j+=i) pr[j]=1; scanf("%d",&n); for(int i=1;i<=n;++i) scanf("%d",v+i); for(int i=1;i<=n;++i) for(int j=1;j<=n;++j) if(!pr[v[i]+v[j]]) s[i].push_back(j); for(int i=1;i<=n;++i){ memset(vis,0,sizeof vis); if((v[i]&1)&&match(i)) ans++; } printf("%d\n",ans); }
相关文章推荐
- [JZOJ 4832]高维宇宙
- 【JZOJ4832】【NOIP2016提高A组集训第3场10.31】高维宇宙
- 【jzoj4832】【高维宇宙】【网络流】【二分图匹配】
- ★深入探讨高维宇宙【二】
- NOIPTGA组T2 高维宇宙
- ★深入探讨高维宇宙【二】
- 【JZOJ5051】平行宇宙 题解
- 【NOIP2016提高A组集训第3场10.31】高维宇宙
- 高维宇宙 ssl 2552 最大匹配
- {题解}[jzoj5051]【GDOI2017模拟一试4.11】平行宇宙
- 2016年提高组模拟试题(20161105)高维宇宙
- 【NOIP2016提高A组集训第3场10.31】高维宇宙
- 高维宇宙 【NOIP2016提高A组集训第3场10.31】
- jzoj5051 【GDOI2017模拟一试4.11】平行宇宙 [贪心,并查集]
- ★深入探讨高维宇宙【二】
- JZOJ 4816 【NOIP2016提高A组五校联考4】label
- JZOJ 4807 【NOIP2016提高A组五校联考3】破解
- JZOJ【4817】. 【NOIP2016提高A组五校联考4】square
- 【JZOJ4820】【NOIP2016提高A组模拟10.15】最大化
- 【JZOJ2224】【NOI2006】最大获利