题目大意

给出一组数,求出其中共有多少数不能被其他数表示

解题思路

法一:可爱的动态规划

这个思路还是比较好想的(也比较好写?)

有依赖关系的背包,思路这道题是差不多的 填满型01背包

(关于代码) 写起来坑还是比较多的,ans,f记得清零,边界记得写就不说了,转移方程那里

f[j] |= f[j - a[i]];  

或符号是一定要加的,举个栗子说明:

以样例为例

a[i] = 3,更新f[3],f[6],f[9],f[12]等等,如果不写或符号,  在a[i]=10更新时会出现 f[12] = f[2] = 0的情况

#include<bits/stdc++.h>
using namespace std;
const int N = ;
#define fr(i,n) for(register int i = 1; i <= n; i++)
int n,t,m,ans,maxn,a[N],f[N]; int main()
{
scanf("%d",&t);
while(t--){
scanf("%d",&n);
fr(i,n) scanf("%d",a + i);
sort(a + , a + + n);
ans = ;
memset(f,,sizeof(f)); f[0]=1;
fr(i,n){
if(f[a[i]]) continue;
ans++;
f[a[i]] = ;
for(int j = a[i]; j <= a[n]; j++)
f[j] |= f[j - a[i]]; }
printf("%d\n",ans);
}
return ;
}
法二:

某种筛(原谅数论全忘光的蒟蒻不知道这是哪种)

实际上和背包思路差不多的……然鹅因为是成倍成倍的筛的所以可能快点?emmm

下面是luogu题解大佬 txtxj 的代码(对我真的懒得打)

#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int mon[]={};
/*
mon[i]=0 表示i面值的钱不能被凑出来
mon[i]=1 表示i面值的钱可以被凑出来
mon[i]=2 表示i面值的钱是货币系统中本来就有的钱
*/
int coins[]={};//存钱的面值
int T,n,ans=;
int main()
{
scanf("%d ",&T);
while (T--)
{
ans=;
memset(mon,,sizeof(mon));
memset(coins,,sizeof(coins));
scanf("%d",&n);
for (int i=;i<=n;i++)
{
scanf("%d",&coins[i]);
mon[coins[i]]=;
}
//把货币系统中的钱标好
sort(coins+,coins++n);
for (int i=;i<=coins[n];i++)
{
if (mon[i]>)
//如果mon[i]能被凑出来
//那么mon[i+coins[j]]也能被凑出来
{
for (int j=;j<=n;j++)
if (i+coins[j]<=coins[n])
//防止数组越界
mon[i+coins[j]]=;
else break;
}
}
for (int i=;i<=coins[n];i++)
if (mon[i]==) ans++;
printf("%d\n",ans);
}
}

NOIP2018货币系统的更多相关文章

  1. 【LG5020】[NOIP2018]货币系统

    [LG5020][NOIP2018]货币系统 题面 洛谷 题解 考场上第一眼还不会233 可以发现只要可以被其他的货币通过一些奇奇怪怪的方式表示出来的货币就\(ban\)掉即可 就是个完全背包 我是统 ...

  2. luogu5020 [NOIp2018]货币系统 (完全背包)

    我那个新的货币系统,就是把原来的货币系统中能被其他数表示的数删掉 那我就算有多少数能被别的数表示,那肯定是要被比它小的表示 于是排个序做完全背包就好了 但是我太zz不会完全背包,然后写了个bitset ...

  3. [NOIp2018]货币系统 背包

    LG传送门 完全背包板子题 显然就是判断有多少种面值的货币可以被其他面值的货币表示,完全背包搞一搞就好了. 考场代码(一看这两格缩进就知道是考场代码): #include<cstdio> ...

  4. 【比赛】NOIP2018 货币系统

    可以发现最后的集合一定是给定集合的子集 所以就变成了裸的背包嘛,对于每个数判断它能不能被其它数表示出来,如果可以,就表示这个数是没用的,可以去掉 #include<bits/stdc++.h&g ...

  5. NOIP2018 货币系统

    题面 思路 先分析一下,a集合的子集肯定不存在可以用它来表示的数,a集合是不能够表示的. 所以问题简化了成为选出a的一个子集(个数最少),能够表达a集合所有能表达的数. 接下来继续分析 如:1 2 4 ...

  6. [NOIp2018提高组]货币系统

    [NOIp2018提高组]货币系统 题目大意: 有\(n(n\le100)\)种不同的货币,每种货币的面额为\([1,25000]\)之间的一个整数.若两种货币系统能够组合出来的数是相同的的,那我们就 ...

  7. 【数学】【背包】【NOIP2018】P5020 货币系统

    传送门 Description 在网友的国度中共有 \(n\) 种不同面额的货币,第 \(i\) 种货币的面额为 \(a[i]\),你可以假设每一种货币都有无穷多张.为了方便,我们把货币种数为 \(n ...

  8. [NOIp2018] luogu P5020 货币系统

    还在补暑假作业. 题目描述 你有一个由 NNN 种面值的货币组成的货币系统.定义两个货币系统等价,当且仅当 ∀x∈N∗\forall x\in\N^*∀x∈N∗ 要么同时能被两个货币系统表示,要么同时 ...

  9. @NOIP2018 - D1T2@ 货币系统

    目录 @题目描述@ @题解@ @代码@ @题目描述@ 在网友的国度中共有 n 种不同面额的货币,第 i 种货币的面额为 a[i],你可以假设每一种货币都有无穷多张.为了方便,我们把货币种数为 n.面额 ...

随机推荐

  1. 大白话讲解 BitSet

    原理 BitSet是位操作的对象,值只有0或1即false和true,内部维护了一个long数组,初始只有一个long,所以BitSet最小的size是64,当随着存储的元素越来越多,BitSet内部 ...

  2. [Advanced Python] 14 - "Generator": calculating prime

    高性能编程 几个核心问题 • 生成器是怎样节约内存的?• 使用生成器的最佳时机是什么?• 我如何使用 itertools 来创建复杂的生成器工作流?• 延迟估值何时有益,何时无益? From: htt ...

  3. CentOS7下LVM的基本操作

    CentOS7下LVM的基本操作-创建LVM 环境 物理主机:windows10 虚拟软件:VMWare14 虚拟机:CentOS Linux release 7.6.1810 (Core) 软件环境 ...

  4. centos使用android studio遇到的一些问题

    1.下载完成后进入bin目录启动 ./studio 2. 由于google被墙,SDK 下载不了, 照此教程添加下载源 http://jingyan.baidu.com/album/adc815137 ...

  5. 读《深入理解Elasticsearch》点滴-过滤器

    1.过滤器不影响文档得分 2.过滤的唯一目的是用特定筛选条件来缩小结果范围:而查询不仅缩小结果范围,还会影响文档的得分 3.过滤器运行更加高效(因为不用计算得分) 4.通常过滤器使用Bits接口,返回 ...

  6. springboot 集成swagger2

    使用Swagger 可以动态生成Api接口文档,在项目开发过程中可以帮助前端开发同事减少和后端同事的沟通成本,而是直接参照生成的API接口文档进行开发,提高了开发效率.这里以springboot(版本 ...

  7. centos 下安装 Let’s Encrypt 永久免费 SSL 证书

    功能 https证书,免费版,每三个月续签一次,可以用过脚本自动续签 安装 ssh登录到域名配置所在的主机(nginx,apache等) 安装git yum -y install git 输入 git ...

  8. linux下搭建nginx+mysql+apache

    对于开发人员来说,进行Web开发时可以用Apache进行网站测试,然而当一个Web程序进行发布时,Apache中并发性能差就显得很突出,这时配置一台Nginx服务器显得尤为重要. 以下是配置Nginx ...

  9. Spring Boot(四) Mybatis-MySql

    Spring Boot(四) Mybatis-MySql 0.准备数据库表 -- ---------------------------- -- Table structure for person ...

  10. Eclipse的Debug各种视图介绍(二)

    本文链接:https://blog.csdn.net/u011781521/article/details/55000066    http://blog.csdn.net/u010075335/ar ...