当前位置: 首页 > news >正文

企业网站开发丨薇阿里巴巴国际网站首页视频怎么做

企业网站开发丨薇,阿里巴巴国际网站首页视频怎么做,如何做网站在售产品分析,外链建设原则题目传送门 该题第一思路是想去模拟题目中所描述的过程 这里我选择从大到小遍历可能凑出的牌套数&#xff0c;计算凑出它需要补的牌数以及判断是否会超出能补的牌数 #include<iostream> #include<climits> #include<vector> #include<algorithm> #def…

题目传送门 

该题第一思路是想去模拟题目中所描述的过程

这里我选择从大到小遍历可能凑出的牌套数,计算凑出它需要补的牌数以及判断是否会超出能补的牌数

#include<iostream>
#include<climits>
#include<vector>
#include<algorithm>
#define int long long using namespace std;const int MAX=2e5+10;int a[MAX];
int b[MAX];
int n,m,ans=0,num=0;
vector<int>v;signed main(){cin>>n>>m;for(int i=1;i<=n;i++){cin>>a[i];v.push_back(a[i]);}for(int i=1;i<=n;i++){cin>>b[i];}sort(v.begin(),v.end());//排序for(int i=n-1;i>=0;i--){//尝试将每一种卡牌都变成v[i]张 int ele=v[i];int sign=0;int sum=0; for(int j=1;j<=n;j++){int need=v[i]-a[j];//需要补上 if(need>0)sum+=need;if(b[j]-need<0){sign=1; break;//不能补 } }if(sum>m||sign){continue;}else{cout<<v[i]<<endl;break;}} return 0;
}

由于该算法效率低下并不能通过所有样例

但是仔细理解题意,我们可以发现该方法可以使用二分进行优化

#include<iostream>
#include<algorithm>
#define int long long
using namespace std;const int MAX=2e5+10;int n,m,l,r;
int a[MAX];
int b[MAX];bool check(int x){int s = 0;for (int i = 0; i < n; i++) {if (x - a[i] <= b[i]) {s += max(x - a[i], 0ll);//统计组成x套牌需要补s张牌}else return false;//超出了b[i]}if (s <= m) return true;//没有越界return false;
}signed main(){cin>>n>>m;for(int i=0;i<n;i++){cin>>a[i];l = min(l, a[i]);}for(int i=0;i<n;i++){cin>>b[i];r=max(r,a[i]+b[i]);}	int ans;while(l<=r){int mid=(l+r)/2;//二分组成的牌套数if(check(mid)){ans=mid;l=mid+1;}else{r=mid-1;}}cout<<ans<<endl;return 0;
}

 

第二思路是使用“贪心”的思想进行解答

首先要理解一个东西,卡牌套数等于最少的卡牌牌数。因为一套卡牌需要所有卡牌各一张,所以对于最少的卡牌,它如果只有 x 张,则只能有 x 套卡牌含有最少的卡牌。再多的其他卡牌就没用了,所以卡牌套数等于最少的卡牌牌数。

那具体怎么贪心呢?使卡牌套数最多。由于卡牌套数等于最少的卡牌牌数,只需要尽量让最终各种卡牌数量接近即可。那就优先画数量少的卡牌,直到空卡牌用完。

每次 O(n) 选择最小的卡牌,复杂度会很高。由于这个贪心策略是要连续选择最小的,所以可以通过排序来降低复杂度。

最后还有一个问题:可画的卡牌数有限制。还是根据卡牌套数等于最少的卡牌牌数,在空卡牌够用的情况下,最终的卡牌套数取决于初始卡牌数与可画卡牌数的和最少的卡牌。所以可以判断目前求得的卡牌数是否大于每张卡牌初始卡牌数与可画卡牌数的和的最小值来解决这个问题。若小于,继续贪心。若大于,则证明空卡牌够用,但受可画的卡牌数的限制,卡牌套数只能为每张卡牌初始卡牌数与可画卡牌数的和的最小值。(好吧这一段有点难理解,可以结合代码里的注释理解)

#include<iostream>
#include<algorithm> 
#include<climits>
#define int long longconst int MAX=2e6;using namespace std;int n,m;
int a[MAX];
int b;signed main(){int consume=0,minn=INT_MAX;cin>>n>>m;for(int i=0;i<n;i++){cin>>a[i];}for(int i=0;i<n;i++){cin>>b;if(a[i]+b<minn){minn=a[i]+b;//得到最大套牌数 } }sort(a,a+n);//其实无所谓对应下标 int ans=a[0];//初始值为最小牌数 for(int i=0;i<n;i++){if(i==n-1&&consume<m){ans+=(m-consume)/n;//剩余卡牌平均分 if(ans>minn)ans=minn;break; }if(a[i]<a[i+1]){//前面卡牌不够 //这里不能且无需去修改数组中的内容(会降低代码效率)consume+=(i+1)*(a[i+1]-a[i]);//消耗的卡牌ans+=(a[i+1]-a[i]); }if(consume>m)//不够牌补了{consume-=(i+1)*(a[i+1]-a[i]);ans-=(a[i+1]-a[i]);ans+=(m-consume)/(i+1);//平均分break; } if(ans>minn){ans=minn;break;}}cout<<ans<<endl;return 0;
}
http://www.yayakq.cn/news/583704/

相关文章:

  • 网站租用网站建设实训小组报告
  • 某公司网站建设策划wordpress两个站点
  • 做网站需要什么图片crm客户管理系统全称
  • 海外网站导航家居在线设计网站
  • 杭州 建设网站制作diy定制网站
  • 做的网站访问不了做包装看什么网站
  • 达州市住房和城乡建设局网站郴州新网招聘信息
  • 做网站需要干什么网站项目计划书模板范文
  • 建个公司网站怎么弄wordpress media调用
  • 建站最好的公司排名网站开发项目需求分析书
  • 佛山专业网站设计做慕课的网站有哪些
  • 网站设计目标与背景wordpress多国语言版本
  • 网站开发具备的相关知识深圳网页建设公司
  • wordpress安装不上c盘优化大师
  • 注册公司那家网站做的比较好做一个企业网站价格
  • 郑州网站排名推广网站建设与制作教程北华大学
  • 计算机网站建设与开发久治县网站建设公司
  • 办公室装修铺哪种地板网站关键词排名seo
  • 苏州好的网站公司名称html5网站优点
  • 怎么做彩票网站代理北京建站模板制作
  • 网站的静态页面用什么做网店托管网
  • 自动化设备技术支持东莞网站建设品牌建设的定义
  • 长安网站设计视频链接生成
  • 做百度手机网站关键词排名网站上面的图片是怎么做的
  • 邢台企业网站制作公司鄂州门户网
  • 地方网站程序wordpress 建立数据库连接时出错 重启数据库
  • 绍兴网站制作网站升级wordpress
  • 网站注册怎么做屏蔽过滤制作动画的网站模板
  • 专业的网站建设网络外贸网站装修
  • 网站怎么换域名做网站的如何说服客户