(new online judge)1322蓝桥杯2017初赛 包子凑数

news2024/11/18 15:28:33

P1322 - [蓝桥杯2017初赛]包子凑数 - New Online Judge 


题目分两步:(1)判断结果是否为INF;(2)如果不是INF,统计数量。考点是“数论gcd+简单DP”。

1. 什么时候答案不是INF

什么时候答案不是INF?也就是说,除了少数一些整数无法组合得到,其他所有的整数都能得到。

首先看2个数a、b的情况,结论是:若gcd(a,b)!=1,则答案不是INF。

以两个数4、5为例,任取x个4和y个5(x,y≥0),它们能组合得到的数是:

4x+5y=c

若把c看成常数,这是一个二元一次方程。

二元一次方程ax+by=c有整数解的定理:设a,b是整数且gcd(a,b)=d,如果d不能整除c,那么方程ax+by=c没有整数解,如果d能整除c,那么存在无穷多个整数解。

显然,如果gcd(a,b)=1,由于1能整除所有整数,此时ax+by能得到所有整数。
在例子4x+5y=c中,因为gcd(4,5)=1,那么不管c是什么整数,都存在整数解x、y ,也就是说答案不是INF。

不过,x、y的解可能是负整数,而本题要求x、y是非负整数。

下面证明:当c很大时,肯定有x、y的非负整数解。

当gcd(a,b)=1时,ax+by=c的通解是:

x=x0+bn
y=y0−an

其中n是任意整数,而x0、y0是一个特解,它显然满足:ax0+by0=c

两式分别乘以a、b,得:

ax=ax0+abn
by=by0−abn

取n是一个正整数,有ax=ax0+abn≥0,即x是非负的。而:

by=c−ax0−abn

当c很大时,by也是非负的,即y是非负的。

以上证明了c很大时,存在x、y的非负整数解。

以上讨论了给定2个数的情况,若给定多个数a、b、e、f…可以推导出结论:gcd(a,b,e,f, . . . )=1时,答案是非INF。

2. 统计

很简单。例如a[0],把它所有的倍数i=a[0]、2*a[0]、3*a[0]、. . . . . .都算一遍。a[1]、a[2]…也一样。

用dp[ i ]=1表示第i个整数被计算出来了,最后统计没有被算过的dp[ i ] 的个数即可。

代码:

#include <bits/stdc++.h>
using namespace std;
int ans,t,dp[100001],a[100001],n;
int main()
{
  cin>>n;
  for(int i = 0; i < n; i++) cin>>a[i];
  t = a[0];
  for(int i = 1; i < n; i++) t = __gcd(t,a[i]);
  if(t != 1)
  {
    cout<<"INF";
    return 0;
  }
  for(int i = 0; i < n; i++)
  {
    dp[a[i]] = 1;
    for(int j = 1; j <= 10000; j++)
      if(dp[j] == 1)
        dp[a[i] + j] = 1;
  }
  for(int i = 1; i <= 10000; i++)
    if(dp[i] == 0)
      ans++;
  cout<<ans;
  return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/11415.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ADSP21489之CCES开发笔记(六)

一、仿真调试CCES代码 1、导入21489的Demo代码 2、修改设计SS4SH存储代码&#xff0c;如红框部分 3、搭配USBi调试&#xff0c;修改如下代码部分 oSSnConfig.bSkipInitialDownload 0; //usbi调试时&#xff0c;设置为0&#xff0c;默认为1 oCommConfig.nSelectSPI SELECT_SP…

英文Essay写作中存在哪些门道?

刚进入英国学校学习的小伙伴&#xff0c;每次放假都要赶Essay。那么什么是Essay呢&#xff1f;Essay怎么写呢&#xff1f;今天我们就来讲讲Essay中的门道。 A little partner who has just entered a British school must catch up with Essay every holiday.So what is Essay?…

入门:树莓派装系统、亮机,无需外接显示器键盘鼠标(保姆级教程)

借鉴了&#xff1a;https://blog.csdn.net/qq_24211837/article/details/120255311 1.官网下载树莓派系统 https://www.raspberrypi.org/software/operating-systems/ 安装后页面还是比较柔和的 2.格式化SD卡 首次入门&#xff0c;还是先学习前辈的方法进行操作 下载格式…

如何自定义代码生成器(下)

4.2 编码 4.2.1 常量类 package freemarker.constant;public class TemplateConstant {//实体类模板public static final String entityTemplate "templates/Entity.ftl";//Mapper模板public static final String mapperTemplate "templates/Mapper.ftl&quo…

k8s教程(12)-pod 全自动调度

文章目录01 引言02 Deployment & RC2.1 功能2.2 举例03 文末01 引言 声明&#xff1a;本文为《Kubernetes权威指南&#xff1a;从Docker到Kubernetes实践全接触&#xff08;第5版&#xff09;》的读书笔记 在前面的博客《k8s教程&#xff08;11&#xff09;-pod调度概述》&…

【2022秋线上作业-第5次-第11-13周】选择题

2-1 下列线索二叉树中&#xff08;用虚线表示线索&#xff09;&#xff0c;符合后序线索树定义的是&#xff1a;B 解析&#xff1a; 后序遍历dbca 所以d前驱为null&#xff0c;d后继为b&#xff0c;c没有孩子&#xff0c;前驱为b&#xff0c;后继为a&#xff0c;a有左右孩子。…

拓扑排序板子练习

目录 一、前言 二、拓扑排序板子 三、题目&#xff1a;拓扑顺序 1、上链接 2、基本思路 3、代码 &#xff08;1&#xff09;C&#xff08;AC&#xff09; &#xff08;2&#xff09;python&#xff08;AC&#xff09; 四、题目&#xff1a;可达性统计 1、上链接 2、…

C++线程创建的方式和使用

进程与线程 进程 简单的可以认为是一个程序执行的过程。进程就是活跃的程序&#xff0c;在内存中运行&#xff0c;占用系统的资源。线程 线程也叫轻量级进程&#xff0c;通常一个进程包含若干个线程。线程可以利用进程所拥有的资源。在引入线程的操作系统中&#xff0c;通常都…

关于软件文档写作

关于软件文档写作目录概述需求&#xff1a;设计思路实现思路分析1.业务逻辑2.代码表达3.形式归纳4.方式和工具参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a better resul…

JS模块化—CJSAMDCMDES6-前端面试知识点查漏补缺

本文从以时间为轴从以下几个方面进行总结JS模块化。从无模块化 > IIFE > CJS > AMD > CMD > ES6 > webpack这几个阶段进行分析。 历史 幼年期&#xff1a;无模块化 方式 需要在页面中加载不同的js&#xff0c;用于动画&#xff0c;组件&#xff0c;格式化…

【软件测试】一个边界值事故,领导leader心里苦季度奖金没了还被罚3K......

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 项目组长&#xff1…

java类的练习--下面给出一个根据雇员类型利用多态性完成

java类的练习–下面给出一个根据雇员类型利用多态性完成… 题目 ​ 下面给出一个根据雇员类型利用多态性完成工资单计算的程序。定义一个类Employee作为超类&#xff0c;Employee的子类有Boss&#xff08;每星期发给他固定工资&#xff0c;而不计工作时间&#xff09;、Piece…

顶级“Redis学习笔记”,缓存雪崩+击穿+穿透+集群+分布式锁,NB了

如果你是一位后端工程师&#xff0c;面试时八成会被问到 Redis&#xff0c;特别是那些大型互联网公司&#xff0c;不仅要求面试者能简单使用 Redis&#xff0c;还要深入理解其底层实现原理&#xff0c;具备解决常见问题的能力。可以说&#xff0c;熟练使用 Redis 就是后端工程师…

超140支爆款B站恰饭,2022年B站双11战报来了!

- 导语 从0到3.06亿月活&#xff0c;从“与世无争”到今天手持高粘性、高活跃的用户参战双十一&#xff0c;在B站的品牌们有了更成熟的营销模式。 2022年双十一已经落下帷幕&#xff0c;在B站全面拥抱双十一的火热氛围下&#xff0c;有哪些品牌做到了声量、销量双丰收&#x…

【毕业设计】深度学习人脸表情识别系统 - python

文章目录0 前言1 技术介绍1.1 技术概括1.2 目前表情识别实现技术2 实现效果3 深度学习表情识别实现过程3.1 网络架构3.2 数据3.3 实现流程3.4 部分实现代码4 最后0 前言 &#x1f525; Hi&#xff0c;大家好&#xff0c;这里是丹成学长的毕设系列文章&#xff01; &#x1f5…

基于 BERT 实现的情感分析(文本分类)----概念与应用

文章目录基于 BERT 的情感分析(文本分类)基本概念理解简便的编码方式: One-Hot 编码突破: Word2Vec编码方式新的开始: Attention 与 Transformer 模型四方来降: 超一流预处理模型 BERT 诞生BERT 实现情感分析数据预处理并创建数据集定义网络模型定义训练函数与评估函数设置损失…

AVL树的插入(C++实现)

1. 概念 AVL树&#xff08;Adelson-Velsky and Landis Tree&#xff09;于1962年被提出&#xff0c;是计算机科学中最早被发明的平衡二叉查找树。AVL树得名于它的发明者G. M. Adelson-Velsky和Evgenii Landis。 在AVL树中&#xff0c;任一节点对应的两棵子树的最大高度差为1&…

大一新生HTML期末作业 个人网页王嘉尔明星介绍网页设计与制作

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

领悟《信号与系统》之 信号与系统的描述-上节

信号与系统的描述-上节一、信号分类1. 一维信号和多维信号2. 确定信号和随机信号3. 连续时间信号和离散时间信号4. 周期信号和非周期信号5. 能量信号和功率信号二、常见工程信号1. 正弦信号2. 指数信号3. 取样信号4. 单位矩形脉冲信号5. 符号函数在真实的物理世界中&#xff0c…

Redis的优惠券秒杀问题(五)全局唯一ID 以及 秒杀下单

Redis的优惠券秒杀问题&#xff08;五&#xff09;全局唯一ID 以及 秒杀下单 关于优惠秒杀问题的Redis实现章节总览 全局唯一ID 场景分析 不能用自增的原因 id的规律性太明显 受单表数据量的限制 全局唯一ID的条件 全局唯一ID的Redis实现 代码实现 单元测试 其它…