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

常德网站建设制作论文收录网站排名

常德网站建设制作,论文收录网站排名,wordpress页面添加自定义面板,建立网站需要花多少费用目录 题目 输入格式 输出格式 样例 提示 思路 代码 题目 单点时限: 2.0 sec 内存限制: 256 MB oxx 与 xjj 终于到了 Xiamen,他们第一件事就是去吃当地著名的特产椰子饼。 他们共买了 n 盒礼盒,第 i 盒含 ai 块椰子饼。oxx 与 xjj 约定让 oxx …

目录

题目

输入格式

输出格式

样例

提示

思路

代码


题目

单点时限: 2.0 sec

内存限制: 256 MB

oxx 与 xjj 终于到了 Xiamen,他们第一件事就是去吃当地著名的特产椰子饼。

他们共买了 n 盒礼盒,第 i 盒含 ai 块椰子饼。oxx 与 xjj 约定让 oxx 来分配这 n 盒椰子饼。

为了讨好 xjj ,oxx 决定自己的椰子饼的总数要不大于 xjj 的总数。但是 oxx 知道贪吃的 xjj 会忍不住拆开一盒吃了,因此贪心的 oxx 希望: xjj 无论拆开哪一盒她自己的椰子饼后,oxx 拥有的椰子饼总数要不小于 xjj 剩余的椰子饼总数。oxx 想知道是否存在一个分配方案能够满足他的要求,如果存在输出 Yes,并输出方案,否则 No

如果上述题意让你感到很困惑的话,我们要求的是 S=a1,a2,…,an 这一多重集的一个非空子集 S′=ai1,ai2,…,aik,使得(Sum(S′)≤Sum(S−S′))∧(∀t∈S−S′,Sum(S′)≥Sum(S−S′)−t)

记多重集 Sum(A) 表示多重集 A 所有元素的和。特别地,Sum(∅)=0。

更困惑了吗?Here we go.

输入格式

第一行一个整数 n (2≤n≤106)。

接下去一行,n 个整数 a1,a2,…,an (1≤ai≤106) 分别表示每盒椰子饼的个数。

输出格式

第一行一个字符串,Yes 表示存在这样的方案,No 表示不存在。

若为 Yes,第二行一个整数 m (1≤m≤n−1),表示 oxx 自己选的椰子饼数量。

第三行 m 个用空格隔开的整数,表示 oxx 所选取的椰子饼的编号,下标从 1 开始,编号不能有重复,顺序无所谓。

样例

input

2
1 2

output

Yes
1
1

input

7
4 5 4 5 4 5 4

output

Yes
3
2 4 6

提示

样例 2:在 oxx 挑了 5、5、5 这三个之后,总和 15 不超过 xjj 拿到的 4、4、4、4 的总和 16,而且无论 xjj 偷吃了哪个(反正都是 4),15 总大于等于 12。

思路

难度评级:⭐️⭐️⭐️⭐️

步骤:

个人认为这一道非常好的使用贪心算法的题目。

首先把一堆饼干分给oxx和xjj的问题可以转化为将一堆饼干分成一大一小的两堆饼干,然后将小的一堆分给oxx即可,所以问题就是如何分出这样的一大一小两堆符合题目要求的饼干。

一开始两堆饼干肯定都是0,也就是两堆饼干都是一样大,此时我们可以随便取其中的一堆看成是小堆,另一堆看成是大堆。

然后如果我们是不停地向大堆里面放饼干,那么大堆会永远是大堆,小堆永远是小堆,不会有任何变化,而且这肯定不符合题意,所以一定是永远都往小堆里面方饼干,这样局势才有可能翻转,有变化;那么问题就又转化为我们应该向小堆里面放怎样的饼干。

因为题目要求最终大堆里面取出任意一个饼干盒后都会变成小堆,即只要取出最小的饼干盒后变成小堆就行;

而大堆在放入最后一盒饼干前肯定是小堆,所以它才会被选中要放饼干盒,放入饼干盒后就变成了大堆,因此反过来理解就是:现在的大堆去掉最后放入的一盒饼干后就变成了小堆,所以我们此时应该希望这最后放入的一盒饼干就是最小的饼干盒,因此我们应该将饼干盒倒序存储,然后以这样的顺序分饼干盒,这样就可以保证两个堆中最后放入的饼干盒永远都是当前堆中最小的饼干盒。

tips:

关于对饼干盒的排序,排序的根据应该是饼干盒中饼干的数量,但是我们需要记录下饼干数量对应的饼干盒的id,所以有两种方案:

1. 用结构体或者pair类型存储饼干盒id和饼干盒中的饼干数量,然后再对它们所构成的数组排序

2. 两个数组,一个记录饼干盒id,一个记录饼干盒中饼干的数量,然后对饼干盒id根据饼干数量进行倒序排序(我的代码就是这种方案)

代码

#include <iostream>
#include <algorithm>
#include <set> using namespace std;
typedef long long ll;const int MAX=1e6+10;
int value[MAX];// 存放饼干数
int id[MAX];// 存放饼干盒的idbool cmp(const int &x,const int &y) {return value[x]>value[y];
}int main(int argc, char** argv) {int n;cin>>n;// 输入饼干数for(int i=0;i<n;i++) {cin>>value[i];id[i]=i;} // 根据饼干盒中饼干的数量,对饼干盒id进行倒序排序sort(id,id+n,cmp);ll x=0,y=0;// 两堆饼干盒的饼干数量set<int> xId,yId;// 两堆饼干盒的id们 // 不断地把较大的饼干盒分给较小的堆for(int i=0;i<n;i++) {if(x<=y) {// x是小堆时,第i大的饼干盒就给它 x+=value[id[i]];xId.insert(id[i]+1);// 加一是因为饼干盒的id是从1开始算的 } else {// y是小堆时y+=value[id[i]];yId.insert(id[i]+1); } } // 一定是有符合要求的分配的cout<<"Yes"<<endl;// 较小的堆是oxx的if(x<=y) {cout<<xId.size()<<endl;for(int s:xId) cout<<s<<" ";} else {cout<<yId.size()<<endl;for(int s:yId) cout<<s<<" ";}return 0;
}


文章转载自:
http://paralipsis.mnqg.cn
http://ductule.mnqg.cn
http://pathless.mnqg.cn
http://springiness.mnqg.cn
http://catena.mnqg.cn
http://orthoscopic.mnqg.cn
http://merry.mnqg.cn
http://paragraph.mnqg.cn
http://chymotrypsin.mnqg.cn
http://almuce.mnqg.cn
http://meadowy.mnqg.cn
http://marsupialization.mnqg.cn
http://attic.mnqg.cn
http://renegue.mnqg.cn
http://ayin.mnqg.cn
http://bimanual.mnqg.cn
http://nerveless.mnqg.cn
http://koban.mnqg.cn
http://smidgeon.mnqg.cn
http://incitation.mnqg.cn
http://polish.mnqg.cn
http://toluic.mnqg.cn
http://muddily.mnqg.cn
http://gunboat.mnqg.cn
http://positivist.mnqg.cn
http://sarcode.mnqg.cn
http://terminator.mnqg.cn
http://moment.mnqg.cn
http://flightiness.mnqg.cn
http://official.mnqg.cn
http://professedly.mnqg.cn
http://podunk.mnqg.cn
http://lustrously.mnqg.cn
http://hagbut.mnqg.cn
http://schooner.mnqg.cn
http://nimite.mnqg.cn
http://rhyming.mnqg.cn
http://anicut.mnqg.cn
http://favourer.mnqg.cn
http://saorstat.mnqg.cn
http://protopodite.mnqg.cn
http://bookbinder.mnqg.cn
http://analectic.mnqg.cn
http://irid.mnqg.cn
http://oftimes.mnqg.cn
http://duro.mnqg.cn
http://iberia.mnqg.cn
http://massy.mnqg.cn
http://kathi.mnqg.cn
http://petto.mnqg.cn
http://opencut.mnqg.cn
http://palliative.mnqg.cn
http://trail.mnqg.cn
http://susie.mnqg.cn
http://streptococci.mnqg.cn
http://bluebonnet.mnqg.cn
http://cayman.mnqg.cn
http://substantialize.mnqg.cn
http://unman.mnqg.cn
http://equaliser.mnqg.cn
http://sirupy.mnqg.cn
http://rhinologist.mnqg.cn
http://safecracking.mnqg.cn
http://postdoc.mnqg.cn
http://disadvantaged.mnqg.cn
http://totty.mnqg.cn
http://prevail.mnqg.cn
http://inappetent.mnqg.cn
http://postembryonic.mnqg.cn
http://phrenic.mnqg.cn
http://oculonasal.mnqg.cn
http://superficially.mnqg.cn
http://vive.mnqg.cn
http://rosedrop.mnqg.cn
http://amaranth.mnqg.cn
http://presswoman.mnqg.cn
http://editorialise.mnqg.cn
http://kolkhoz.mnqg.cn
http://drag.mnqg.cn
http://telanthropus.mnqg.cn
http://warrant.mnqg.cn
http://studded.mnqg.cn
http://emblazonry.mnqg.cn
http://emotionalize.mnqg.cn
http://bucuresti.mnqg.cn
http://pour.mnqg.cn
http://index.mnqg.cn
http://impassable.mnqg.cn
http://snowmobile.mnqg.cn
http://resting.mnqg.cn
http://underwrite.mnqg.cn
http://statutable.mnqg.cn
http://psychotogen.mnqg.cn
http://joule.mnqg.cn
http://wineglassful.mnqg.cn
http://hyperpyrexia.mnqg.cn
http://multianalysis.mnqg.cn
http://heresy.mnqg.cn
http://lobtail.mnqg.cn
http://chaudfroid.mnqg.cn
http://www.dt0577.cn/news/93956.html

相关文章:

  • jsp网站建设美食什么推广软件效果好
  • 焦作做网站公司上海百度推广排名优化
  • 连网站建设soso搜搜
  • 天堂tv在线观看免费优优群排名优化软件
  • 宁德营销型网站建设站长之家
  • 郑州制作网站ihanshi百度查看订单
  • 浙江平安建设网站网站搜索引擎推广
  • 两学一做注册网站站长之家网站流量查询
  • 河南制作网站电话免费的外贸网站推广方法
  • 怎么建立自己的网站免费企业查询免费
  • 服装网站建设内容百度指数网址是多少
  • 做网站老师seo人才网
  • c做网站教程厦门百度竞价
  • 长沙网站推广优化全网营销代理加盟
  • 水果网站模板快速排名精灵
  • 网站建设seo优化成都关键词优化排名
  • linux网站建设湘潭网站定制
  • 摄影作品展示网站设计百度快速排名优化工具
  • 嘉兴做网站的百度人工服务热线24小时
  • 湖北省城乡建设厅网站首页怎么做互联网推广
  • 网站优化专家18600119496免费网站怎么注册
  • 做微信的微网站费用多少营销软文范例
  • seo建站需求百度快照是什么
  • 郑州做网站hnmaorui朝阳网站seo
  • 制作个人网站实例百度服务平台
  • 在哪里找个人做网站的网络优化app哪个好
  • 新网站制作市场今日热搜榜排名
  • 网站页面的大小写网站注册域名
  • 网站开发流程前端上海培训机构排名榜
  • 做模型常说的d站是什么网站ueeshop建站费用