本文共 629 字,大约阅读时间需要 2 分钟。
题目大意:
DG去书店买书,有n本书按顺序放置。买书的策略是从1到n本,遇到价格<=当前手中的钱的书就买
现在告诉你每本书的价格和DG总共买了多少本数,要求出DG手里的最大可能钱数
题解:
读入的时候统计一下价格为0的书的数目zero和价格不为0的数目l
如果zero>m,就是Impossible
如果m==l,就是Richman
否则
从前往后遍历价格不为0的书,前m本价格直接加和sum,然后再m+1到l本中找出最小值t,但就是sum+t-1
#include#include #define ll long long#define INF 1000000007using namespace std;int main(){ int T,n,m,x; scanf("%d",&T); while(T--) { scanf("%d%d",&n,&m); vector v; for(int i=1; i<=n; ++i) { scanf("%d",&x); if(x!=0) v.push_back(x); } int len=v.size(); int zero=n-len; if(m
转载地址:http://kyfgf.baihongyu.com/