T137226 彩虹海
设目标体系$(n,a)$和答案体系$(m,b)$分别为集合$A$和集合$B$,那么我们可以猜想$B\subseteq A$。
我们可以先通过反证法验证下面两个结论:
若$x\in A$可以被其他$A$中的数表达出来,那么有$x\notin B$。
若$x\in A$不能被其他$A$中的数表达出来,那么有$x\in B$。
然后再通过上述结论,使用反证法证明$B\subseteq A$。具体就是取一个$x$,令$x\in B$且$x\notin A$,证明这样的$x$不存在。
于是我们只需要找到$A$中能被表达出来的数并删去即可。
具体来说,需要先将$a$排序,然后每次$\forall x\in[a_i,a_n]$,令$f_x\leftarrow f_{x-a_i}$。
代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define IL inline
#define RG register
using namespace std;
#define RI RG int
#define RC RG char
const int N=100;
const int M=25000; int T,n,a[N+3];
bool f[M+3]; IL void sol(){
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]); sort(a+1,a+n+1);
memset(f,0,sizeof(f)); f[0]=1;
int ans=n;
for(RI i=1;i<=n;i++){
if(f[a[i]]){
ans--;
continue;
} for(int j=a[i];j<=a[n];j++)
f[j]|=f[j-a[i]]; }
printf("%d\n",ans); } int main(){
freopen("data.in","r",stdin);
freopen("data.ans","w",stdout); scanf("%d",&T);
while(T--)
sol(); return 0; }
T137226 彩虹海的更多相关文章
- QQ群免IDKEY加群PHP源码
加群链接需要idkey的,该源码自动解析idkey,实现免idkey加群. 该源码来自彩虹秒赞系统. 例如:api.yum6.cn/qqun.php?qun=463631294 <?php /* ...
- 海康网络摄像机YV12转换为BGR,由opencv Mat显示 (转)
我使用的是海康DS-2CD852MF-E, 200万,网络摄像机,已经比较老了,不过SDK在海康官网下载的,开发流程都差不多. 海康摄像机回调解码后的视频数据格式为YV12,顺便说一下YV12的数据格 ...
- 海鑫智圣:物联网漫谈之MQTT协议
什么是MQTT协议 MQTT(消息队列遥测传输协议)是IBM在1999年专门针对物联网等应用场景来制订的轻量级双向消息传输协议,它主要是为了解决物联网上使用到的设备的互相通信的问题,以及这些设备与后端 ...
- 一种简单的md5加盐加密的方法(防止彩虹表撞库)
md5加密(或者说摘要算法)大家都很熟悉了 就不解释了 现在很多数据库设计都喜欢用单向加密的方式保存密码,验证时对提交的密码再次加密之后做密文对比 /// <summary> 使用MD5加 ...
- c#程序如何从海康ipserver查询获取DVR设备ip地址
海康威视提供的ipserver可以记录DVR设备的IP地址,并提供一个7071的端口给客户端查询用,我们在c#程序中可以用海康SDK包中的NET_DVR_GetDVRIPByResolveSvr函数来 ...
- [基础技能] 安全技术——哈希算法密码破解之彩虹表(Rainbow Table)学习
1.基础知识 刚刚学习过数字签名的相关知识,以及数字签名的伪造技术,而伪造数字签名归根结底就是密码破解的一个过程,然而直接破解的速度是非常缓慢的,所以有人想出一种办法,直接建立出一个数据文件,里面事先 ...
- HDU--航海舰队
海舰队 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- 从Facebook跑来阿里的赵海平大叔,你要干啥?
赵海平在今年三月份来到阿里,听毕玄(他现任主管)说去年五六月份就跟赵海平聊上了.有人问:为啥 BAT 三大巨头,你看中了阿里巴巴?在今天现场达一千多人的分享中赵海平给出了回复:“因为百度和腾讯没找我呗 ...
- html5实现银联海购商品分类列表
银联海购官网请点击 http://haigou.unionpay.com/ 1.实现效果预览展示如下: 2.源码如下 <!DOCTYPE html> <html> <he ...
- 海思h264解码库
海思的dll,解码h264 解码后转出yuv12 dll自己百度下载 hi_h264dec.dll hi_h264dec_w.dll 调用方法: if (H264Dec.Hi264DecA ...
随机推荐
- VUE 轮询、轮询终止 beforeRouteLeave
目录 1 在data中定义 2 在methods中定义 3 开始轮询 4 终止轮询 方法一: destroyed() 方法二:beforeRouteLeave(to, from, next) 推荐 所 ...
- 【Android】移除 Android frameworks 层,当 Linux 系统使用。(服务移除篇)
前言说明 此文章仅作为技术经验记录,核心思想,就是在 init.rc 里面移除服务,致使 frameworks 不被启动,其它不便多说. 此文章内容为系统服务移除篇,最终实现的效果是 Android ...
- 基于Apache Hudi 构建Serverless实时分析平台
NerdWallet 的使命是为生活中的所有财务决策提供清晰的信息. 这涵盖了一系列不同的主题:从选择合适的信用卡到管理您的支出,到找到最好的个人贷款,再到为您的抵押贷款再融资. 因此,NerdWal ...
- 使用Kubernetes中的Nginx来改善第三方服务的可靠性和延迟
使用Kubernetes中的Nginx来改善第三方服务的可靠性和延迟 译自:How we improved third-party availability and latency with Ngin ...
- IOS12 + Xscode12 报错:Building for iOS Simulator, but linking in dylib built for iOS, file '/Users/XXX/Desktop/XXXX/XXX.framework/JSSDK' for architecture arm64
问题描述:编译过程出现错误,Building for iOS Simulator, but linking in dylib built for iOS, file '/Users/XXX/Deskt ...
- 2021级《JAVA语言程序设计》上机考试试题3
ok,现在是学生的界面实现,因为代码上篇都给出来了,那个是打分卡里面要求全了的,然后service,servlet不全,嗯,刚刚忘说了,没写完,就写了那么多. 先注册: 代码如下: <%@ pa ...
- yarn的基础语法:yarn安装完vue cli3后提示不是内部命令
: 第一步:安装nodejs: 第二步:全局安装vue-cli 解决方案: 全局搜索vue.cmd 将vue.cmd所在的路径添加到环境变量Path后面.再执行vue -V即可.
- PostgresSql更改字段位置后,数据库异常
SQL server的studio有一个功能,可以随意拖拽表字段,更改其位置并使之重新排序,有同事问起,Postgres是否也可以.Postgres每个字段的顺序是在系统表pg_attribute里面 ...
- pdf.js打开后的pdf文件
可用pdf.js在h5打开pdf文件.注意,在本地打不开,一定要在部署环境. 方法:<a href="../../pdf/web/viewer.html?file=../../pdf/ ...
- 下拉刷新,上拉触底(.js里自带)
<view>content值是{{cont}}</view> <button bindtap="add">+1</button> ...