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

做外贸在那些网站找业务史上最强大的搜索神器

做外贸在那些网站找业务,史上最强大的搜索神器,2018做网站开发一个月工资多少,中国工程建设管理协会网站因为题目ICPC是英文版,基于大家都不怎么看的懂的情况下直接给大家进行题目讲解 题目1: 题目分析: 构造一个长度为n的排列 p(里面的数是1-n),不能重复得 max⁡(lis(p),lds(p)) 最小。 其中,lis(p)是 p 的最长递增子序…

因为题目ICPC是英文版,基于大家都不怎么看的懂的情况下直接给大家进行题目讲解

题目1: 

 

题目分析:

构造一个长度为n的排列 p(里面的数是1-n),不能重复得 max⁡(lis(p),lds(p)) 最小。
其中,lis(p)是 p 的最长递增子序列长度,lds(p) 是 p 的最长递减子序列长度。 

排列:由 1 到 n 的整数组成的序列,每个整数恰好出现一次。例如,[2,3,1,5,4]是一个排列,但[1,2,2] 不是(重复出现 2),[1,3,4] 也不是(包含超出范围的数 4)。

问题正式描述:
设排列 p 的值为 max⁡(lis(p),lds(p)),其中:

  • lis(p) 表示 p 的最长递增子序列(LIS)的长度,

  • lds(p) 表示 p 的最长递减子序列(LDS)的长度。

对于所有长度为 n的排列,你需要构造一个排列 p,使得其值(即 LIS 和 LDS 长度的最大值)最小

递增子序列(Increasing Subsequence):若序列 a 可以通过删除序列 b 中的若干元素(可能为零或全部)得到,且 a 中的元素从头到尾严格递增,则称 a 是 b 的递增子序列。

递减子序列(Decreasing Subsequence):类似地,若 a 中的元素从头到尾严格递减,则称其为 b 的递减子序列。

思路讲解:

当n=3时,如何保证我们的递增子序列和递减子序列在所有的序列的情况当中最小呢,我们可以模拟一下来试试,其实感觉和规律很重要

当我们正常排列的时候发现这种的序列长度最长,但是题目是要一个最小的,应该怎么办呢

根据上图,我们这样排列,最长上升子序列的长度为3,最长下降子序列的长度也为0,这个情况下得到的max⁡(lis(p),lds(p))最大为2,根据样例,说明我们这种排列一定是错误的,那我们来分析一下样例中的输出样例吧

根据上图,由此可见,这个情况下得到的max⁡(lis(p),lds(p))最小,因为最长上升子序列的长度为2,最长下降子序列的长度也为2,符合条件

到这里大家应该明白了题目的意思,那么我们应该如何进行排列得到最小的值呢,当n变大时,怎么排呢?其实这里大家也可以去找规律,如果不太了解这样的情况,可以一个一个试试,去找合适并且有规律的最好形式

4 21 43

5 321 54

6 321 654

...

9 321 654 987

10 4321 8765 109

想必大家到这里一定有答案了,没错,就是每次让长度为平方根加1,然后进行反转,平方根是关键,通过4和9大家就可以清楚的了解

这道题主要就是思考过程,解答出来时很容易的,如果大家最开始没有思路,应该多想想这道题的目的,而且确实是一个有规律的题,毕竟是要用代码进行来实现的,大家遇到这种没有思路题就可以去模拟过程,有时候确实很好用

 代码实现:

#include<bits/stdc++.h>
using namespace std;
int main(){int n;cin>>n;while(n--){int m;cin>>m;int a=ceil(sqrt(m));for(int i=1;i<=a;i++){int tmp=a*i;while(tmp>(i-1)*a){if(tmp<=m) cout<<tmp<<" ";tmp--;}}cout<<endl;}return 0;
}

题目2:

思路分析: 

 这个不是英文版的不做解释了大家直接看题吧

实现根据题目要求,我们要联通所有的块,就是说我们每个至少连接到一个,一个也可以连多个,题目说要得到最小值,我们这里就分三种情况(让0放到正数里面)

1.有正数也有负数 (让所有正数×所有负数)

2.只有正数(让最小的正数×其他正数)

3.只有负数(让最大负数×其他负数)

代码实现:

#include<bits/stdc++.h>
using namespace std;
int main(){int n;long long a=0,b=0;  //a 正  b 付 int maxb=-1010,mina=1010;//maxb 负数中最大   mina 证书最大值 cin>>n;for(int i=0;i<n;i++){int j;cin>>j;if(j<0) {b += j;maxb=max(maxb,j);}else {a += j;mina=min(mina,j);}	}if(a>0&&b<0) cout<<a*b;else if(a==0&&b<0) cout<<(b-maxb)*maxb;else cout<<(a-mina)*mina;return 0;
}

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

相关文章:

  • 房产网签合同嘉峪关seo
  • app手机端电子商务网站功能关键词排名网络推广
  • 做网站猫要做端口映射吗真正免费建站
  • 自己做游戏资讯网站如何快速推广一个app
  • 专注宜昌网站建设建站工具
  • 大连网站建设多少钱html网页设计模板
  • wordpress自动插件下载百度关键词在线优化
  • 成都科技网站建设找哪家网站关键词优化外包
  • 北京上海网站建设公司火爆产品的推广文案
  • 手机网站模板软文营销广告案例
  • 做网站的顶部图片百度快照是干嘛的
  • 淘客做网站怎么备案广东seo推广公司
  • 延吉市建设局网站搜索引擎营销的手段包括
  • 网站建设工作都干啥郑州做网站公司排名
  • 如何创建属于自己的网页福州百度快照优化
  • 网站推广排名报价打开网站搜索
  • wordpress企业建站教程石家庄整站优化技术
  • 太阳代理ip官网免费seo软件
  • 网站建设经费预算鹤壁搜索引擎优化
  • 建设类招标代理公司网站人工在线客服
  • 购买网站空间送域名广州企业网站建设
  • 特色专业建设展示网站 湖北网站出售
  • 建立购物网站seo推广教程视频
  • 网站建设正版软件查询网站流量
  • 南阳市建网站公河南seo
  • 播州区住房和城乡建设局网站新闻头条今日新闻下载
  • 做网站的总要求上门免费网络推广软件有哪些
  • 新疆建设兵团国资委网站百度广告联盟点击一次多少钱
  • 连云港建设部网站网站更新seo
  • 规划设计网站推荐友链交换