Time limit per test: 1.0 seconds

Memory limit: 256 megabytes

唐纳德是一个数学天才。有一天,他的数学老师决定为难一下他。他跟唐纳德说:「现在我们来玩一个游戏。这个游戏总共 n轮,每一轮我都会给你一个数(第 i 轮给出的数是 ai)。你每次要回答一个数,是我给出的这个数的质因数,并且你说出的数不能重复。」

因为数学老师是刻意为难,所以这个游戏很有可能不可能进行到最后。但是聪明的数学老师早就已经知道这个游戏最多能进行几轮了。现在他把问题抛给了你,想看看你知不知道。

注意,1 不是质数。

Input

输入具有如下形式:

na1 a2 … an

第一行一个整数 n (1≤n≤3 000)。

第二行 n 个整数用空格隔开,a1,a2,…,an (2≤ai≤106)。

Output

输出游戏最多能进行几轮。

Examples

input
3
7 6 3
output
3
input
5
2 2 2 2 2
output
1

题意:

现在有一群数字,按顺序给出,对于每一个数字,回答一个素数因子,这次回答的素数因子下次不能再用,如果没有可以回答的素数因子,游戏结束。问游戏最多进行几轮。

思路:

1,匈牙利二分匹配是可以一个一个的加,满足顺序性。

2,网络流算法具有无序性,所以可以二分加最大流。

注意:

尽量少使用memset。这里代码用了时间戳,即代码里的“fa”。

#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<cstring>
using namespace std;
const int maxn=;
const int maxm=;
int p[maxn],b[],c[maxn],num[maxn],cnt,tot,ans;
int n;
void prime()
{
p[]=;
for(int i=;i<=;i++)
if(!p[i]){
b[++tot]=i;//素数
c[i]=tot;
for(int j=i+i;j<=;j+=i) p[j]=;
}
}
int Laxt[maxn],Next[maxm],To[maxm];
int linker[maxm],vis[maxn];
void add(int u,int v)
{
Next[++cnt]=Laxt[u];
Laxt[u]=cnt;
To[cnt]=v;
}
bool find(int u,int fa)
{ for(int i=Laxt[u];i;i=Next[i]){
int v=To[i];
if(vis[v]==fa) continue;
vis[v]=fa;
if(!linker[v]||find(linker[v],fa)){
linker[v]=u;
return true;
}
}
return false;
}
int main()
{
prime();
int i,j,x;
scanf("%d",&n);
for(i=;i<=n;i++){
scanf("%d",&x);
for(j=;j<=tot;j++){
if(x%b[j]==){
add(i,j);
}
}
if(!find(i,i)) break;
}
printf("%d\n",i-);
return ;
}

D唐纳德和他的数学老师(华师网络赛)(二分匹配,最大流)的更多相关文章

  1. A唐纳德先生和假骰子(华师网络赛)

    Time limit per test: 1.0 seconds Memory limit: 256 megabytes 在进行某些桌游,例如 UNO 或者麻将的时候,常常会需要随机决定从谁开始.骰子 ...

  2. G 唐纳德与子串(easy)(华师网络赛---字符串,后缀数组)(丧心病狂的用后缀自动机A了一发Easy)

    Time limit per test: 1.0 seconds Memory limit: 256 megabytes 子串的定义是在一个字符串中连续出现的一段字符.这里,我们使用 s[l…r] 来 ...

  3. E比昨天更多的棒棒糖(Easy+Hrad)(华师网络赛)(DP||母函数||背包优化)

    Time limit per test: 2.0 seconds Memory limit: 512 megabytes 唐纳德先生的某女性朋友最近与唐纳德先生同居.该女性朋友携带一 baby.该 b ...

  4. C易位构词(华师网络赛)(错排)

    Time limit per test: 2.0 seconds Memory limit: 256 megabytes 易位构词 (anagram),指将一个单词中的字母重新排列,原单词中的每个字母 ...

  5. 20145226夏艺华《网络对抗》第一次实验拓展:shellcode注入+return-to-libc

    20145226夏艺华<网络对抗>第一次实验拓展:shellcode注入+return-to-libc shellcode注入实践 编写shellcode 编写shellcode已经在之前 ...

  6. 保姆级别学生党安装Clion IDE(面向华师同学)

    保姆级别学生党安装Clion IDE(面向华师同学) 界面UI 废话不多说,直接上图 具备功能 UI美观 (下面会介绍) 基础的代码编写能力 大容量的IDE插件 (下面会介绍) 代码补全,以及搭配Ki ...

  7. 时间复杂度---我又要想起初中数学老师的脸了xxxxx

    时间复杂度: 常用的时间复杂度有:常数级,对数级,线性级 线性对数级 平方级,立方级别,多项式级别,指数级别,阶乘级别 这里我们主要探讨对数级,线性级,平方级,指数级---为什么不讨论其他的?别的我也 ...

  8. hihoCoder 1584 Bounce 【数学规律】 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛)

    #1584 : Bounce 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 For Argo, it is very interesting watching a cir ...

  9. 【华为云技术分享】跟唐老师学习云网络 : Kubernetes网络实现

    当今K8s独霸天下之时,咱们站在更高的角度,好好的看看K8s网络是以什么理念构筑的.以及一个容器集群的好保姆,是如何分别照顾 南北流量和东西流量的. 一.简单介绍下Kubernetes 略..容器集群 ...

随机推荐

  1. Pollard-Rho大整数拆分模板

    随机拆分,简直机智. 关于过程可以看http://wenku.baidu.com/link?url=JPlP8watmyGVDdjgiLpcytC0lazh4Leg3s53WIx1_Pp_Y6DJTC ...

  2. visual studio code (vscode)像 sublime text 的 ctrl+d 一样多光标选中

    快捷键是 ctrl+m ,返回上一个选中时ctrl+u. 文件 ==>首选项 ==>键盘快捷键() 里面可以查到,下一个是“将选择添加到下一个查找匹配项”,返回上一个是“cursorund ...

  3. intellij idea pycharm phpstorm webstorm 这些编辑器像 sublime text 一样使用 ctrl d 来操作光标多选。

    在Windows 和 Linux 快捷键是 Alt+J,在 Mac OS X 系统下快捷键是 Ctrl+G . 参考 https://blog.jetbrains.com/phpstorm/2014/ ...

  4. ArcGIS API for js Legend(图例)

    1.说明 有关怎么把ArcGIS API for js部署到IIS上,请参考我上面的写的博客https://www.cnblogs.com/net064/p/10302660.html 2.运行效果 ...

  5. nginx服务器的内核调优

    TCP公有类 net.core.somaxconn = 262144 net.core.netdev_max_backlog = 262144 net.ipv4.ip_local_port_range ...

  6. 6.2.1-FactoryBeanRegistrySupport(未全)

    FactoryBeanRegistrySupport 的关系图: 添加工厂方式创建类FactoryBean的支持

  7. 三款查看class文件结构的工具

    classpy JavaClassViewer jclasslib

  8. java面向对象入门之方法参数的传递

    /* Name : Power by :Stuart Date:2015.4.25 */ class PassOn{ //创建show方法,把i传入,输出i+1的结果 public void show ...

  9. 多图切换jQuery图片滑块插件

    在线演示 本地下载

  10. SpringCloud之Eureka高可用集群环境搭建

    注册中心集群 在微服务中,注册中心非常核心,可以实现服务治理,如果一旦注册出现故障的时候,可能会导致整个微服务无法访问,在这时候就需要对注册中心实现高可用集群模式. Eureka集群相当简单:相互注册 ...