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

芜湖市网站建设_网站建设公司_后端工程师_seo优化

武昌做网站报价,西宁市公司网站建设,ysl免费网站建设,保定网站设计制作公司题干#xff1a; 题目大意#xff1a; 有N个人要过桥#xff0c;每个人速度不同#xff0c;只有一个手电筒#xff0c;每次最多只能过去两个人#xff0c;问所有人最短的过桥时间为多少 解题报告#xff1a; 首先让最快的两个人最后过#xff0c;然后我们分奇偶考虑…题干 题目大意 有N个人要过桥每个人速度不同只有一个手电筒每次最多只能过去两个人问所有人最短的过桥时间为多少 解题报告 首先让最快的两个人最后过然后我们分奇偶考虑分别处理到剩下三个人和两个人的情况。然后在做最后的处理。 除了最后的处理其实是最先执行的步骤我们看其他的步骤现在最快的俩人都在对岸。 现在两种贪心策略一个回合就处理两个人每个回合把当前速度最慢的两个人带到河岸 1.最快速度的人每次带一个当前速度最慢的人过去自己返回再带一个当前速度最慢的人过去 再返回也就是这俩最慢的都让最快的带回来 2.最快速度的人和速度第二快的人一起过去最快速的人返回速度最慢的两个人一起过去速度第二快的人返回。 对于每一个回合我们去这两种策略中的较小值贪心即可得到答案。 AC代码 //该死的格式错误怎么不提示PE了怎么成WA了 #includecstdio #includeiostream #includealgorithm #includequeue #includemap #includevector #includeset #includestring #includecmath #includecstring #define ll long long #define pb push_back #define pm make_pair #define fi first #define se second using namespace std; const int MAX 2e5 5; int a[MAX]; int main() {int t,n;cint;while(t--) {int ans 0;scanf(%d,n);for(int i 1; in; i) scanf(%d,ai);sort(a1,an1);if(n 1) {printf(%d\n%d\n,a[1],a[1]);if(t) puts();continue;}if(n 2) {printf(%d\n%d %d\n,a[2],a[1],a[2]);if(t) puts();continue;}int res,time0;if(n%21) res3;else res2;for(int i n; ires; i-2) {ans a[1]a[i];//先跑过去 if(a[2]*2a[i-1]a[1]) ans a[2] a[2];else ans a[i-1]a[1];}if(n%2 1) ans a[1]a[2]a[3];else ans a[2];printf(%d\n,ans);if(n 3) {printf(%d %d\n%d\n,a[1],a[2],a[1]);printf(%d %d\n,a[1],a[3]);if(t) puts();continue;}for(int i n; ires; i-2) {if(a[2]*2 a[i-1]a[1]) {printf(%d %d\n%d\n, a[1], a[2], a[1]);printf(%d %d\n%d\n, a[i-1], a[i], a[2]);}else {printf(%d %d\n%d\n, a[1], a[i-1], a[1]);printf(%d %d\n%d\n, a[1], a[i], a[1]);}}if(n%21) {printf(%d %d\n%d\n, a[1], a[2], a[1]);printf(%d %d\n, a[1], a[3]);}else printf(%d %d\n,a[1],a[2]);if(t) puts();} return 0 ;} 就像学长说的这题重要的是这个贪心的思路可以构造出很多不同的题型比如学长讲课时说的可以和置换群建立起关系。比如构造一个题 给你n个数数值保证从1~n 且互不相同先定义一种操作可以任选两个元素进行交换交换的代价是这两个元素值的和。现在问你如果我要吧这个序列变成一个有序序列最小的代价是多少。 首先我们知道我们要找一些轮换然后这一些轮换对调就可以了根据置换群的知识我们知道可以把这些对调换成一个个的对换去完成并且如果这一个轮换涉及k个元素的话我们需要对换k-1次那么既然次数确定并且需要有一个作为每次都出现的详情见离散数学那我们就贪心那个最小的作为每一次对换都出现的元素这一点并不难想。。但是有没有可能有更优的选择比如我们(100,102,104,103,105,106,107,108)这有八个元素组成一个轮换的话顺序是我瞎写的那我们肯定选100当那个每次都出现在对换中的元素但是我们想有没有可能把另外一个最小的元素换过来当成最小的元素换完了以后再换回去呢比如还有一个轮换(1,2,3)那么我们先1和100对调然后再用1去做那7次对换然后再把1和100调回去这样代价肯定小了很多啊、、这里仅提供思路具体题目遇到再说、
http://www.lebaoying.cn/news/97214.html

相关文章:

  • 网站建设企业最新报价自己做的网站如何调入dede
  • 哪个网站简历做的好深圳做营销网站的公司哪家好
  • 深圳网站设计公司怎么做wordpress 504错误
  • 网站建设全程揭秘pdf专业的网站搭建多少钱
  • 邢台做移动网站公司电话代理网站开发
  • c2c网站名称用源码网站好优化吗
  • 网站架设软件有教做鱼骨图的网站吗
  • 怎么做线上营销怎么优化WordPress主题
  • 网站推广优化建设方案常州微信网站制作
  • 北京网站建设交易新的营销方式有哪些
  • wordpress 网站收录过年做哪个网站致富
  • 深圳品牌网站开发WordPress老文章提示
  • 网页设计师收费标准做网站优化公司
  • 有没有免费制作网站的看板娘 wordpress菜单
  • php网站建设设计方法做外贸的网站都有哪些
  • 网站引导页设计外贸销售网站建设
  • 中煜建设有限公司网站南宁京象建站公司
  • 小程序开发教程 下载淘宝怎样优化关键词
  • 怎样上网站dns解析不了photoshop电脑版怎么下载
  • 东莞市官网网站建设平台公司加盟代理
  • 营销类网站如何优化站长之家网站建设
  • 网站被封怎么响应式网站缺点
  • 网站提交地址软件管理
  • 做床上用品网站wordpress制作小工具
  • 可以做猫头像的网站wordpress 仪表盘美化
  • 自己动手做衣服网站米拓建站下载
  • 淘宝客怎么建网站深圳做小程序网站设计
  • 建网站需要的设备企业门户网站 php
  • 在线网站代理浏览苏中建设集团网站
  • 重庆网站建设定制福永小学网站建设