注意审题,a是密码,那么a,2a,3a……也是密码,推出t=gcd(n,ak)的倍数也是密码。这个t,可能是a+b=c中的c,也可能是其中的a,b。如果(a,b)是密码,那么存在ax+by=c,而这个方程有解的条件是c%gcd(a,b)==0,c的因子都可以是密码。

已知t是密码,t的因子也是密码,因此我们要找最小的因子。若a是密码,b不是密码,那么gcd(a,b)的因子也不是密码。

#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<math.h>
using namespace std;
const long long N=1e7+10;long long gcd(long long a,long long b){if(b==0)return a;return gcd(b,a%b);
}
long long n,k,a[N]={0},b[N],gcdnk,tmp,j=0;
bool fb[N];//因子bi有没有被约掉
int main(){int bj=0;cin>>n>>k;for(int i=1;i<=k;i++)scanf("%lld",&a[i]);gcdnk=gcd(n,a[k]);// tmp=sqrt(gcdnk);for(int i=1;i<=tmp;i++)//求gcdnk的所有因子数;if(gcdnk%i==0)b[bj++]=i,b[bj++]=gcdnk/i; if(b[bj-1]==b[bj-2])bj--; sort(b,b+bj); for(int i=1;i<k;i++)a[i]=gcd(a[i],gcdnk);long long ans=n;for(int i=1;i<k;i++){//找a[i] 在b[j]中是否出现过。 fb[lower_bound(b,b+bj,a[i])-b]=1;}for(int i=0;i<bj;i++){//去掉f[]=1的数的所有因子if(fb[i])for(int j=0;b[j]<b[i];j++) if(b[i]%b[j]==0)fb[j]=1;}ans=1;for(int i=0;i<bj;i++)if(!fb[i]){ans=b[i]; break;}cout<<n/ans<<endl;
}

洛谷3518strongbox(poi2011)相关推荐

  1. [洛谷P3527] [POI2011]MET-Meteors

    洛谷题目链接:[POI2011]MET-Meteors 题意翻译 Byteotian Interstellar Union有N个成员国.现在它发现了一颗新的星球,这颗星球的轨道被分为M份(第M份和第1 ...

  2. 洛谷 P3521 [POI2011]ROT-Tree Rotations 解题报告

    P3521 [POI2011]ROT-Tree Rotations 题意:递归给出给一棵\(n(1≤n≤200000)\)个叶子的二叉树,可以交换每个点的左右子树,要求前序遍历叶子的逆序对最少. 大体 ...

  3. [洛谷P3521][POI2011]ROT-Tree Rotations

    题目大意:给一棵$n(n\leqslant2\times10^5)$个叶子的二叉树,可以交换每个点的左右子树,要求前序遍历叶子的逆序对最少.输出最少的逆序对个数 题解:线段树合并,对于每个节点求出交换 ...

  4. 洛谷 P3518 [POI2011] SEJ-Strongbox 题解

    思路: 首先先将每个输入的数据与n的最大公约数求出(因为如果a[i]是密码,那么所有a[i]与n最大公约数的倍数也是密码:于是如果a[i]不是密码,那么所有a[i]与n最大公约数的倍数也都不是密码)再 ...

  5. 洛谷-题解 P2672 【推销员】

    独门思路!链表加优先队列! 这题一望,贪心是跑不掉了,但是我贪心并不好,所以想到了一个复杂一些但思路更保稳的做法 思路: 1 因为是离线操作,所以我们可以倒着求,先求x=n的情况,因为那样直接就知道了 ...

  6. 洛谷 P1142 轰炸

    洛谷 P1142 轰炸 题目描述 "我该怎么办?"飞行员klux向你求助. 事实上,klux面对的是一个很简单的问题,但是他实在太菜了. klux要想轰炸某个区域内的一些地方,它们 ...

  7. 洛谷 P1387 最大正方形

    P1387 最大正方形 题目描述 在一个n*m的只包含0和1的矩阵里找出一个不包含0的最大正方形,输出边长. 输入输出格式 输入格式: 输入文件第一行为两个整数n,m(1<=n,m<=10 ...

  8. 洛谷P2763 试题库问题

    题目:https://www.luogu.org/problemnew/show/P2763 题目描述 «问题描述: 假设一个试题库中有n道试题.每道试题都标明了所属类别.同一道题可能有多个类别属性. ...

  9. 动态规划——洛谷_P1057传球游戏

    题目: 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏.游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球, ...

最新文章

  1. 汇编程序设计与计算机体系结构软件工程师教程笔记:内联汇编与宏
  2. Linux:守护进程详解及实现
  3. 线性代数:矩阵乘向量-学习笔记
  4. duilib CPaintManagerUI的WM_PAINT消息
  5. rebase in git
  6. FaceBook ATC 弱网测试工具环境搭建
  7. docfx daylybuild
  8. HTTP权威指南笔记
  9. 世界500强企业名称中英对照
  10. 瑞芯微rv1126/1109软硬件解压缩对比---附:关于内存对齐的那些事
  11. 乐2的android版本,乐视2高通|MIUI10|安卓6.0|最终完美版|极速_最新最全的乐2高通版ROM刷机包下载、刷机...
  12. 计算机域名长啥样,域名是什么 什么样的域名是一个好域名【详解】
  13. 程序员该如何把 Windows 系统打造的跟 Mac 一样牛逼?
  14. 由FlexBox算法强力驱动的Weex布局引擎
  15. 九、系统的软中断导致CPU使用率升高,我该怎么办?
  16. 【专访】润和软件刘洋:同心聚力开拓基于OpenHarmony的国产化科技创新之路
  17. dos命令为java程序赋值_在DOS命令行状态下,如果源程序HelloWorld.java在当前目录下,那么编译该程序的命令是() (5.0分)_学小易找答案...
  18. 每天都在用WiFi,WiFi和无线网络什么关系?了解此篇足矣
  19. 香橙派Zero 2(H616)使用ffmpeg进行音频播放测试
  20. matlab费根鲍曼,matlab 数学实验 迭代 _ 蛛网图(免积分)

热门文章

  1. string 拆分字符串
  2. php获取用户豆瓣电影,用来获取豆瓣网上电影信息的简介
  3. Collider组件与Rigidbody组件杂谈
  4. AutoCAD 2008 简体中文精简版(适合低配置电脑)
  5. Docker学习之路(三)Docker网络详解
  6. 经典名句_万金油_新浪博客
  7. 阿里大文娱——优酷场景化营销
  8. 美业SaaS的创业分享之[定位]:美业SaaS的定位到底是工具还是平台
  9. Linux学习笔记week1
  10. Android 操作系统基础