高维宇宙 ssl 2552 最大匹配
来源:互联网 发布:表白网站源码2017 编辑:程序博客网 时间:2024/05/16 00:54
题目大意
分析
把原数列a复制到数列b中
然后把两个相加是质数的连在一起,做最大匹配
最后把答案除以2,解决
代码
type arr=record x,y,w:longint; next:longint;end;var a:array[1..10000] of arr; b:array[1..10000] of longint; v:array[1..30000] of boolean; f:array[1..10000000] of longint; st,ls:array[1..30000] of longint; i,j,k:longint; n,m,nm:longint;function find(r:longint):boolean;var i,j,k:longint;begin find:=true; i:=ls[r]; while i<>0 do begin with a[i] do if not v[y] then begin k:=st[y]; st[y]:=r; v[y]:=true; if (k=0) or find(k) then exit; st[y]:=k; end; i:=a[i].next; end; find:=false;end;procedure main;var i,j,k:longint; z:boolean;begin for i:=1 to n do begin fillchar(v,sizeof(v),0); z:=find(i); end;end;begin readln(n); nm:=0; fillchar(a,sizeof(a),false); for i:=2 to trunc(sqrt(1000000)) do if f[i]=0 then for j:=2 to 1000000 div i do f[i*j]:=1; for i:=1 to n do read(b[i]); for i:=1 to n do for j:=1 to n do if f[b[i]+b[j]]=0 then begin nm:=nm+1; with a[nm] do begin x:=i; y:=j+n; next:=ls[x]; ls[x]:=nm; end; end; main; j:=0; for i:=n+1 to n+n do if st[i]<>0 then j:=j+1; write(j div 2);end.
0 0
- 高维宇宙 ssl 2552 最大匹配
- 【jzoj4832】【高维宇宙】【网络流】【二分图匹配】
- Jzoj4832 高维宇宙
- SSL 1344 Knights 最大匹配
- [JZOJ 4832]高维宇宙
- SSL 1331 信与信封 最大匹配
- SSL 1333 地鼠的困境 最大匹配
- SSL 1340 最小路径覆盖 最大匹配
- SSL 1338 最大匹配 人员分配
- SSL P1338 最大匹配之人员分配
- NOIPTGA组T2 高维宇宙
- ★深入探讨高维宇宙【二】
- SSL 1338_最大匹配 人员分配_匹配
- 【JZOJ4832】【NOIP2016提高A组集训第3场10.31】高维宇宙
- 【NOIP2016提高A组集训第3场10.31】高维宇宙
- 高维宇宙 【NOIP2016提高A组集训第3场10.31】
- 2016年提高组模拟试题(20161105)高维宇宙
- 【NOIP2016提高A组集训第3场10.31】高维宇宙
- dataTables插件参数详解
- 怎样判断Array(无序)中是否包含某个值呢?
- android 开发环境配置
- 响应式网页的字体大小呀~~~
- repo +git 代码管理,常用命令的一些总结
- 高维宇宙 ssl 2552 最大匹配
- 在一个千万级的数据库查寻中,如何提高查询效率?
- Android 自定义View (一)
- Java8 lambda的列子
- 方程式_ssl2551_二分图
- Practice [2016.11.05]
- Mysql之删除更新
- 训练神经网络的五大算法
- 嵌入式Linux开发工具之调试器gdb