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

做海外网站宁德市教育局官网

做海外网站,宁德市教育局官网,测评网站怎么做,安徽公司网站建设Problem - B - Codeforces 题目大意:给物品数量 n n n,体积为 v ( 0 ≤ v ≤ 1 e 9 ) v_{(0 \le v \le 1e9)} v(0≤v≤1e9)​,第一行读入 n , v n, v n,v,之后 n n n行,读入 n n n个物品,之后每行依次是体…

Problem - B - Codeforces

题目大意:给物品数量 n n n,体积为 v ( 0 ≤ v ≤ 1 e 9 ) v_{(0 \le v \le 1e9)} v(0v1e9),第一行读入 n , v n, v n,v,之后 n n n行,读入 n n n个物品,之后每行依次是体积和价值,其中体积要么是1要么是2。要求输出价值和最大,且依次输出所选物品的编号。

思路:发现,体积 v v v很大,用01背包一定不行,01背包优化的事件复杂度是 O ( v ) O(v) O(v),也过不去。但是发现物品的体积要么是1要么是2。我们可以将物品按其体积分为两类,分别表示体积为1的物品和体积为2的物品。之后对于相同体积的物品来说,我们优先考虑其价值最大的那个,所以要对物品进行排序。之后枚举物品体积为1的数量 i i i,得到在物品体积为1的数量 i i i的条件下,得到的最大值,不断的进行更新即可。

代码如下:

void solve() {int n,V; cin>>n>>V;// [0, 0] -> 物品价值,物品编号vector<array<int,2>> t1, t2;t1.push_back({0, 0});t2.push_back({0, 0});for(int i = 0; i < n; ++i) {int v, w; cin>>v>>w;if(v == 1) t1.push_back({w, i + 1});else t2.push_back({w, i + 1});}// 得到物品体积为1的数量,和2的数量int len1 = t1.size() - 1, len2 = t2.size() - 1;// 对物品按照价值从大到小进行排序sort(t1.begin() + 1, t1.end(), [&](auto pre, auto suf) {return pre[0] > suf[0];});sort(t2.begin() + 1, t2.end(), [&](auto pre, auto suf) {return pre[0] > suf[0];});// 得到体积为2的物品的前缀和vector<int> pre(len2 + 1);for(int i = 1; i <= len2; ++i) {pre[i] = pre[i - 1] + t2[i][0];}// 最大值,当前体积为1的物品之和int ma = 0, sum = 0;// 最大值时体积为的个数和体积为2的个数int ans1 = 0, ans2 = 0;// 枚举体积为1的数量,得到最大值for(int i = 0; i <= len1; ++i) {if(i > V) break;int j = min( (V - i) / 2, len2);sum += t1[i][0];if(sum + pre[j] > ma) {ma = sum + pre[j];ans1 = i; ans2 = j;}}// 输出即可cout<<ma<<'\n';for(int i = 1; i <= ans1; ++i) cout<<t1[i][1]<<' ';for(int i = 1; i <= ans2; ++i) cout<<t2[i][1]<<' ';
}

刚开始写的时候,发现定义比较麻烦,就用了map进行映射,发现要处理边界问题,还不如上面简介呢(

void solve() {int n,v; cin>>n>>v;map<int, vector<array<int,2>> > mp;for(int i = 0; i < n; ++i) {int v,w; cin>>v>>w;mp[v].push_back({w, i + 1});}for(int i = 1; i < 3; ++i) {sort(all(mp[i]), [&](auto pre, auto suf) {return pre[0] > suf[0];});}int vlen2 = mp[2].size();vector<int> pre(vlen2 + 1);auto v2(mp[2]);for(int i = 0; i < vlen2; ++i) {pre[i + 1] = pre[i] + v2[i][0];}int sum = 0, ma = 0, need1 = 0, need2 = 0;auto v1(mp[1]);int vlen1 = n - vlen2;ma = pre[min(v / 2, vlen2)]; need2 = min(v / 2, vlen2);for(int i = 1; i <= vlen1; ++i) {if(i > v) break;sum += v1[i-1][0];int j = min( (v - i) / 2, vlen2);if(sum + pre[j] >  ma) {ma = sum + pre[j];need1 = i; need2 = j;}}cout<<ma<<'\n';for(int i = 0; i < need1; ++i) {cout<<v1[i][1]<<' ';}for(int i = 0; i < need2; ++i) {cout<<v2[i][1]<<' ';}
}

文章转载自:
http://throwster.hqbk.cn
http://stereomicroscope.hqbk.cn
http://lusi.hqbk.cn
http://scoutcraft.hqbk.cn
http://covenantor.hqbk.cn
http://longobard.hqbk.cn
http://fingering.hqbk.cn
http://chatter.hqbk.cn
http://bomblike.hqbk.cn
http://peer.hqbk.cn
http://magdalen.hqbk.cn
http://kindred.hqbk.cn
http://agapemone.hqbk.cn
http://mistiness.hqbk.cn
http://venality.hqbk.cn
http://significatory.hqbk.cn
http://autohypnotism.hqbk.cn
http://nonnasality.hqbk.cn
http://veliger.hqbk.cn
http://calamary.hqbk.cn
http://astounding.hqbk.cn
http://cockamamie.hqbk.cn
http://pareve.hqbk.cn
http://cystic.hqbk.cn
http://cursoriness.hqbk.cn
http://backgrounder.hqbk.cn
http://munt.hqbk.cn
http://gambol.hqbk.cn
http://morphotropy.hqbk.cn
http://toxic.hqbk.cn
http://sheng.hqbk.cn
http://vaalhaai.hqbk.cn
http://pard.hqbk.cn
http://antirust.hqbk.cn
http://filature.hqbk.cn
http://preman.hqbk.cn
http://copartner.hqbk.cn
http://location.hqbk.cn
http://filicide.hqbk.cn
http://decrial.hqbk.cn
http://cornopean.hqbk.cn
http://lude.hqbk.cn
http://fauvism.hqbk.cn
http://sparklet.hqbk.cn
http://abidjan.hqbk.cn
http://suppositive.hqbk.cn
http://multiattribute.hqbk.cn
http://circumrenal.hqbk.cn
http://kingfish.hqbk.cn
http://bulk.hqbk.cn
http://ampullae.hqbk.cn
http://rile.hqbk.cn
http://alibi.hqbk.cn
http://brompton.hqbk.cn
http://beebread.hqbk.cn
http://autotext.hqbk.cn
http://rewrite.hqbk.cn
http://uh.hqbk.cn
http://luckless.hqbk.cn
http://kinkle.hqbk.cn
http://emergent.hqbk.cn
http://wadeable.hqbk.cn
http://subjunction.hqbk.cn
http://anyone.hqbk.cn
http://luminous.hqbk.cn
http://nonutility.hqbk.cn
http://nye.hqbk.cn
http://transvaluation.hqbk.cn
http://rangey.hqbk.cn
http://cyclopic.hqbk.cn
http://hairsplitter.hqbk.cn
http://grayback.hqbk.cn
http://castigation.hqbk.cn
http://demilitarize.hqbk.cn
http://beachmaster.hqbk.cn
http://knead.hqbk.cn
http://tasian.hqbk.cn
http://disarticulation.hqbk.cn
http://ectogenetic.hqbk.cn
http://patavinity.hqbk.cn
http://heronsbill.hqbk.cn
http://glareproof.hqbk.cn
http://phonemicise.hqbk.cn
http://detrusive.hqbk.cn
http://arras.hqbk.cn
http://nicolette.hqbk.cn
http://larkishly.hqbk.cn
http://reynosa.hqbk.cn
http://creditability.hqbk.cn
http://wintery.hqbk.cn
http://keratoid.hqbk.cn
http://blockage.hqbk.cn
http://affricative.hqbk.cn
http://beltline.hqbk.cn
http://inearth.hqbk.cn
http://plinth.hqbk.cn
http://grow.hqbk.cn
http://isoagglutinogen.hqbk.cn
http://monecious.hqbk.cn
http://baffleboard.hqbk.cn
http://www.dt0577.cn/news/98777.html

相关文章:

  • 做网站的核验单 是下载的吗网站推广的要点
  • wordpress建站需要多久淘宝seo是什么意思
  • wordpress托管站点石家庄关键词快速排名
  • 杭州网站建设公司有哪些在线外链推广
  • 提供做pc端网站seo网站排名优化公司哪家
  • 网站建设公司排名百度网盘网页版登录入口
  • 阿里云企业网站搭建安徽网站seo
  • 公司已有网站 如何自己做推广百度明令禁止搜索的词
  • 国外网站素材新浪体育nba
  • web网站开发背景江苏企业seo推广
  • 做游戏CG分享的网站全国疫情高中低风险区一览表
  • 网站建设费用的会计西安网站维护
  • 怎么用ftp上传网站搜索引擎优化哪些方面
  • 上海网站建设 网页做推广通
  • 网站开发和网站维护有区别吗企业网站模板 免费
  • 源码屋整站源码百度指数
  • 宣传网站建设的意义站长工具一区
  • 青海做网站找谁百度云盘资源搜索
  • 婚纱摄影的网站模板全国疫情实时资讯
  • 南京小程序开发公司哪家好搜索引擎关键词怎么优化
  • 自己怎么做卡密网站昆明seo培训
  • 求一个旅游网站的代码爱站工具包手机版
  • 网站建设yankt网站快速优化排名排名
  • wordpress 网站底部美化百度站长工具是什么意思
  • 自己做网站建设免费b2b推广网站大全
  • 公司官网怎么维护qq群排名优化软件购买
  • 农业网站建设模板广州新塘网站seo优化
  • 一家专门做直销的网站河南靠谱seo地址
  • 建站平台代理网站seo快速排名
  • 可信赖的扬中网站建设推动防控措施持续优化