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

西樵网站建设公司南京seo排名公司

西樵网站建设公司,南京seo排名公司,创业网站模板,阿里国际站韩语网站怎么做题目来自洛谷: 暴力思路: ①根据题目,可以知道有三种操作,第一种操作选择这个瓜,第二种操作不选择这个瓜,第三种操作选择这个瓜的一半。我们可以用一个res来记录这三种操作返回的结果,最后在返…

题目来自洛谷:

暴力思路:

①根据题目,可以知道有三种操作,第一种操作选择这个瓜,第二种操作不选择这个瓜,第三种操作选择这个瓜的一半。我们可以用一个res来记录这三种操作返回的结果,最后在返回这三种操作的最小值。

②从数据样例中知道,对于第三种操作,在进行切一半操作的时候,数据类型会发生改变,int只能存整数,这样会导致答案错误。因此我们存数据前对数据进行*2操作,同时我们的总重量也要 m*2。

③由于本题数据过大,会爆int,我们要用long long 来存。

#include<bits/stdc++.h>
//long long 来存数据
#define int long long
using namespace std;
const int N = 40;int n, m;
int arr[N];//存数据
int w[N]; //后缀和//x表示枚举瓜 sum 表示当前重量
int dfs(int x, int sum){if(sum == 2*m){return 0;}//遍历完了所有瓜if(x > n){return N;}//当前重量超过总重量 不合法if(sum > 2*m){return N;}//当前重量+加上当前点后缀和小于总重量 不合法if(sum + w[x] < 2*m){return N;}//直接选int res1 = dfs(x+1, sum + arr[x]);//选一半int res3 = dfs(x+1, sum + arr[x] / 2) +1;//不选int res2 = dfs(x+1, sum);return min({res1, res2, res3});
}signed main(){cin >> n >> m;//在存入数据之前 将数据*2 //后续操作不需要使用 doublefor(int i = 1; i <= n; i++){int x; cin >> x;arr[i] = 2*x;}//将arr数组从大到小排序sort(arr+1, arr+n+1);reverse(arr+1, arr+n+1);//后缀和for(int i = n; i >= 1; i--){w[i] = w[i+1] + arr[i];}//得到答案int res =  dfs(1, 0);//判断一下 能不能买到总重量恰好为m的瓜if(res == N){cout << "-1" << endl;}else{cout << res << endl;}return 0;
}

http://www.dtcms.com/wzjs/348030.html

相关文章:

  • 菏泽做网站的公司站长收录平台
  • 手机网站建设设计seo研究中心
  • wordpress如何换图片不显示不出来南宁seo标准
  • 微信网站是多少营销策划书范文1000字
  • 网站建设方案word香港域名注册网站
  • 网站制作哪家好薇网上怎么做推广
  • 福州网上商城网站建设网络营销策略理论有哪些
  • wordpress页面无法评论临安网站seo
  • 吉林大学学风建设专题网站怎么做网站教程
  • 网站的关键词挖掘方式南宁seo排名收费
  • 网站要跟换域名怎么做广告投放推广平台
  • 网络营销的步骤杭州seo公司
  • 网站错误提示页设计网站建设策划书
  • 两学一做网站是多少营销型网站制作建设
  • 网站毕设怎么做电商运营工资大概多少
  • 聊城汽车网站建设成都seo专家
  • 备案没有商城可以做商城网站吗学it需要什么学历基础
  • 深圳地铁公司官网谷歌seo 优化
  • 沈阳犀牛云做网站怎么样推广注册app赚钱平台
  • 合肥制作网站单位有哪些长沙网站制作
  • 怎样提高网站打开速度慢河南网站推广
  • 深圳市做网站知名公司有哪些站内关键词自然排名优化
  • 做自己卖东西的网站杭州seo建站
  • 上海高端网站开发站霸网络优化大师官网入口
  • 建设考试网站国外免费推广网站有哪些
  • 佛山专业的网站建设互联网营销师是干什么的
  • 手机中国官网seo薪酬如何
  • c 做网站网站网页制作培训教程
  • 东莞seo网站优化方式百度网址ip
  • 百度做网站多少钱seo排名课程咨询电话