博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2018.08.10 atcoder No Need(线性dp)
阅读量:4443 次
发布时间:2019-06-07

本文共 745 字,大约阅读时间需要 2 分钟。

输入一个序列anan,输入kk
如果对于所有包含aiai,且和大于等于kk的集合,去掉aiai之后和还大于等于kk,那么aiai就是可有可无的。
求出可有可无的元素的个数。

可有可无的元素一定是最小的若干个,于是在排序之后看看如果有ii满足a[i],a[i+1],...,a[n]a[i],a[i+1],...,a[n]这些数凑不出[max(ksum,0),k1][max(k−sum,0),k−1]中的任何数,说明11~i1i−1这些数都是可有可无的。

代码:

#include
using namespace std;int f[5050],a[5050],n,k,sum=0;int main(){ scanf("%d%d",&n,&k); for(int i=1;i<=n;++i)scanf("%d",&a[i]),a[i]=min(a[i],k),sum+=a[i]; sort(a+1,a+n+2),f[0]=1; for(int i=n+1;i;--i){ bool check=true; for(int j=k-1;j>=k-sum&&j>=0;--j)if(f[j]){check=false;break;} if(check){
printf("%d",i-1);return 0;} for(int j=k;j>=a[i];--j)f[j]|=f[j-a[i]]; sum-=a[i]; } return 0;}

转载于:https://www.cnblogs.com/ldxcaicai/p/9738388.html

你可能感兴趣的文章
sql 经典语句【摘录】
查看>>
zigzag数组,螺旋数组
查看>>
iOS SQLite3的使用
查看>>
[Leetcode]017. Letter Combinations of a Phone Number
查看>>
Luogu 3375 【模板】KMP字符串匹配(KMP算法)
查看>>
[poj1737]Connected Graph(连通图计数)
查看>>
仿照Android标准API写的各种形式的弹出框
查看>>
办公用品管理系统VB——模块
查看>>
个人作业——统计多个文本文件中的单词及词组出现频率
查看>>
LogStash 日志搜集
查看>>
jdk1.7 与 jdk1.6两个版本的一点小区别
查看>>
ZoomBar 设计
查看>>
路在脚下,梦已启程
查看>>
android抓log
查看>>
Linux下使用Magent+Memcached缓存服务器集群部署
查看>>
ReentrantLock 重入锁(下)
查看>>
[Android] 拍照、截图、保存并显示在ImageView控件中
查看>>
C#图表控件ZedGraph使用
查看>>
idea代理上网
查看>>
C语言入门(1)——C语言概述
查看>>