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
  1. 3
  2. 7 6 3
output
  1. 3
input
  1. 5
  2. 2 2 2 2 2
output
  1. 1

题意:

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

思路:

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

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

注意:

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

  1. #include<cstdio>
  2. #include<cstdlib>
  3. #include<iostream>
  4. #include<cstring>
  5. using namespace std;
  6. const int maxn=;
  7. const int maxm=;
  8. int p[maxn],b[],c[maxn],num[maxn],cnt,tot,ans;
  9. int n;
  10. void prime()
  11. {
  12. p[]=;
  13. for(int i=;i<=;i++)
  14. if(!p[i]){
  15. b[++tot]=i;//素数
  16. c[i]=tot;
  17. for(int j=i+i;j<=;j+=i) p[j]=;
  18. }
  19. }
  20. int Laxt[maxn],Next[maxm],To[maxm];
  21. int linker[maxm],vis[maxn];
  22. void add(int u,int v)
  23. {
  24. Next[++cnt]=Laxt[u];
  25. Laxt[u]=cnt;
  26. To[cnt]=v;
  27. }
  28. bool find(int u,int fa)
  29. {
  30.  
  31. for(int i=Laxt[u];i;i=Next[i]){
  32. int v=To[i];
  33. if(vis[v]==fa) continue;
  34. vis[v]=fa;
  35. if(!linker[v]||find(linker[v],fa)){
  36. linker[v]=u;
  37. return true;
  38. }
  39. }
  40. return false;
  41. }
  42. int main()
  43. {
  44. prime();
  45. int i,j,x;
  46. scanf("%d",&n);
  47. for(i=;i<=n;i++){
  48. scanf("%d",&x);
  49. for(j=;j<=tot;j++){
  50. if(x%b[j]==){
  51. add(i,j);
  52. }
  53. }
  54. if(!find(i,i)) break;
  55. }
  56. printf("%d\n",i-);
  57. return ;
  58. }

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. java Filter的简单使用

    java web中的过滤器的简单使用.直接上代码.1.web.xml <?xml version="1.0" encoding="UTF-8"?> ...

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

    classpy JavaClassViewer jclasslib

  3. PAT 组合数的和(15)

    给定N个非0的个位数字,用其中任意2个数字都可以组合成1个2位的数字.要求所有可能组合出来的2位数字的和.例如给定2.5.8,则可以组合出:25.28.52.58.82.85,它们的和为330. 输入 ...

  4. Linux使用yum安装rpm包

    1.yum其实管理的也是rpm包,只不过依赖什么的都自己做了2.yum在有的linux版本是收费的,但是CentOS是免费的3.yum一般意义上是需要联网的,即:使用网络yum源 a.yum源配置文件 ...

  5. ABAP制作密码输入框

    [转自 http://blog.csdn.net/saphome/article/details/6956911] 这几天做一个系统维护的程序,需要用户输入用户名和密码登录.可怎样实现输入密码显示星号 ...

  6. MyBaits面试题

    原文地址 Mybatis技术内幕系列博客,从原理和源码角度,介绍了其内部实现细节,无论是写的好与不好,我确实是用心写了,由于并不是介绍如何使用Mybatis的文章,所以,一些参数使用细节略掉了,我们的 ...

  7. mysql 中 all any some 用法

    -- 建表语句 CREATE TABLE score( id INT PRIMARY KEY AUTO_INCREMENT, NAME ), SUBJECT ), score INT); -- 添加数 ...

  8. 用cocos2d-html5做的消除类游戏《英雄爱消除》——概述

    在bbs.html5china.com论坛学习了MV和老马的小熊蘑菇后我也自己模仿他们做了这样子一个游戏,权当技术交流学习,现在附上游戏截图和源码. 游戏截图: 1.系统菜单界面: 2.游戏界面 3. ...

  9. 手机端网页web开发要点

    1.初始化 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" c ...

  10. css判断iphoneX、iphoneXs、iphoneXs Max、iphone XR

    //iphoneX.iphoneXs @media only screen and (device-width: 375px) and (device-height: 812px) and (-web ...