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

优化网站排名推荐公司seo推广 课程

优化网站排名推荐公司,seo推广 课程,优秀建筑模型案例作品,短租房网站哪家做最好题目描述 在一个二维平面内,给定 n 个整数点 (xi​,yi​),此外你还可以自由添加 k 个整数点。 你在自由添加 k 个点后,还需要从 nk 个点中选出若干个整数点并组成一个序列,使得序列中任意相邻两点间的欧几里得距离恰好为 1 而且…

题目描述

在一个二维平面内,给定 n 个整数点 (xi​,yi​),此外你还可以自由添加 k 个整数点。

你在自由添加 k 个点后,还需要从 n+k 个点中选出若干个整数点并组成一个序列,使得序列中任意相邻两点间的欧几里得距离恰好为 1 而且横坐标、纵坐标值均单调不减,即 xi+1​−xi​=1,yi+1​=yi​ 或 yi+1​−yi​=1,xi+1​=xi​。请给出满足条件的序列的最大长度。

输入格式

第一行两个正整数 n,k 分别表示给定的整点个数、可自由添加的整点个数。

接下来 n 行,第 i 行两个正整数 xi​,yi​ 表示给定的第 i 个点的横纵坐标。

输出格式

输出一个整数表示满足要求的序列的最大长度。

输入输出样例

输入 #1

8 2
3 1
3 2
3 3
3 6
1 2
2 2
5 5
5 3

输出 #1

8

输入 #2

4 100
10 10
15 25
20 20
30 30

输出 #2

103

说明/提示

【数据范围】

保证对于所有数据满足:1≤n≤500,0≤k≤100。对于所有给定的整点,其横纵坐标 1≤xi​,yi​≤10^9,且保证所有给定的点互不重合。对于自由添加的整点,其横纵坐标不受限制。

测试点编号n≤k≤xi​,yi​≤
1∼210010
3∼410100100
5∼75000100
8∼10500010^9
11∼15500100100
16∼2050010010^9
#include <bits/stdc++.h>
using namespace std;struct node
{int x,y;//1e9 1e9
};
bool operator<(node n1,node n2)
{return n1.x<n2.x||(n1.x==n2.x&&n1.y<n2.y);
}
node p[510];//5e2
int dp[510][110];//5e2
int main()
{int n,k;//5e2 1e2cin>>n>>k;for(int i=1;i<=n;i++){int x,y;//1e9 1e9cin>>x>>y;p[i]={x,y};}sort(p+1,p+n+1);int maxn=0;//5e2for(int i=1;i<=n;i++){int x=p[i].x,y=p[i].y;for(int l=0;l<=k;l++){for(int j=1;j<i;j++){int dx=x-p[j].x,dy=y-p[j].y;if(dx>=0&&dy>=0&&dx+dy<=l+1)dp[i][l]=max(dp[i][l],dp[j][l-dx-dy+1]+dx+dy);}if(dp[i][l]==0)dp[i][l]=l+1;maxn=max(maxn,dp[i][l]);}}cout<<maxn;return 0;
}

---------------------------------------前方级别:洛谷黄题,2022CSP-J T3---------------------------------------

主体思想及算法:

        DP中的LIS(最长上升子序列)变形。

        LIS模板:

for(int i=1;i<=n;i++)
{dp[i]=1;for(int j=1;j<i;j++)if(a[i]>a[j])dp[i]=max(dp[i],dp[j]+1);maxn=max(maxn,dp[i]);
}
cout<<maxn;

        变形后dp[i][j]代表第i个点加j个点的最大答案。 

代码解读:

        main():输入n、k、xi、yi。xi和yi记录在一个node(见node)类型的p数组里,p[i]代表编号为i的一组xy。但是由于下方某些原因,p数组不得使用原顺序,需要按排序(具体规则见operator<())后的顺序。排序后定义一个maxn,由于此题为LIS变形,这个maxn自然代表答案啦!不过初始置为k+1,因为但凡有一个点,他添加k个点也有k+1了。

                第一层循环:首先不管加点的事儿,先定义xy分别为p[i]的xy,一会儿将多次使用。

                        第二层循环:请注意,这层循环的变量l代表可以加l个点,是从0到k!!!因为你可以选择独自优秀不须加点。

                                第三层循环:这个j也要注意,是到i-1,由于之前的排序,我们保证到i之后肯定都不行了,所以也都没用了。再设两个临时变量dx和dy,代表x-p[j].x和y-p[j].y(同样,一会儿将多次使用)。如果dx和dy均大于等于0,也就是说按照要求可以连线,且dx加dy小于等于l加1,这里注意加1,因为假设l是0,dx加dy就得是1。如果满足上句话这些条件,那么dp[i][j]就max=dp[j][l-dx-dy+1]+dx+dy。

                        回到第二层循环,因为每一个dp[i][l]都是独立的,所以maxn等要在此处单独结算。注意如果dp[i][l]是0,要给他设为l+1,毕竟添加l个点就有l+1了。最后maxn max=dp[i][l]。

        回到主函数,输出maxn。

        node:一个x一个y。

        operator<():重载小于运算符,如果x不同x小者小;否则y小者小。

http://www.dinnco.com/news/22996.html

相关文章:

  • 做app的网站广州seo公司排名
  • 宁波网站设计哪家公司好合肥网站推广电话
  • 阿里云备案 网站服务内容数字营销课程
  • 曲靖网站推广百度seo最成功的优化
  • python 网站建设 拖拽式黄页网站推广公司
  • 网站建设自查维护报告百度推广销售
  • 武汉网站制作与建设北京学校线上教学
  • 青岛海川建设集团有限公司网站网站优化师
  • 网站设计哪家seo优化排名工具
  • 网站的轮播图怎么做平台seo
  • 在苏州找学生做家教在哪个网站快速网站搭建
  • 重庆承越网站建设公司厦门人才网官网招聘信息网
  • wordpress转载微信文章东莞网络优化服务商
  • 新闻网站建设需要注意些什么谷歌google play官网下载
  • 萍乡做网站新产品推广方案怎么写
  • 做美容美容院网站的费用网络营销策划论文
  • wordpress wp_signon百度seo排名优化是什么
  • 做搜索网站网络营销郑州优化推广公司
  • 网站建设与推广话术公众号关键词排名优化
  • 网站建设培训南宁seo优化
  • 网站建设实施计划数据分析软件哪个最好用
  • app网站建设网络销售渠道有哪些
  • 毕业设计论文代做网站做个公司网站大概多少钱
  • 上海企业网络维护网络优化的三个方法
  • storyset自定义插画网站查询关键词排名工具
  • wordpress粉色主题专业seo整站优化
  • 办公类网站开发背景福建搜索引擎优化
  • 女孩子学做网站有前途吗国内seo排名分析主要针对百度
  • 网站膜拜销售seo诊断工具网站
  • 网页设计的制作流程搜索引擎营销优化的方法