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

3维网站制作技术百度关键词指数查询工具

3维网站制作技术,百度关键词指数查询工具,网站的推广方式,青岛外贸网站建设题目大意:有一条无限长跑道,每个人可以规定自己跑步的方向,起点,跑步起止时间。每个人跑步的速度都是1m/s。最后从监控人员哪里得到了n个报告,每个报告给出了某人在某一时候所在的位置,问跑步的最少可能人数…

题目大意:有一条无限长跑道,每个人可以规定自己跑步的方向,起点,跑步起止时间。每个人跑步的速度都是1m/s。最后从监控人员哪里得到了n个报告,每个报告给出了某人在某一时候所在的位置,问跑步的最少可能人数是多少。

思路:建立一个横坐标为 t ,纵坐标为 x 的二维坐标系。从输入得到的每一对 t , x 都是坐标系上的一个点。每个人可以从东往西跑,也可以从西往东跑,所以相对应的在这个坐标系上每个点的斜率可以是 1 ,也可以是 -1 。根据这两种斜率可以得到相对应在 x 轴上的截距,然后就能够建立二分图。网络流建图就是在二分图的基础上,加上一个源点和一个汇点,然后分别建立源点和汇点到二分图的边。(网络流和二分图建图的区别是二分图两边建边的时候,可以有重复的编号,例如:1 -> 1 。但是,网络流建图的时候两个相连的点不能是重复的,例如:1 -> 2 。所以在网络流建边的时候每个编号都要保证不相同!!!)。

代码如下:

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define pii pair<int,int>
const int N=3e5+5,M=6e5+5;
struct Edge{int to,w,next;
}edge[M];
int head[N],d[N],cur[N],l[N],r[N];
int n,m,s,t,cnt,k;
void add(int u,int v,int w){edge[cnt]={v,w,head[u]};head[u]=cnt++;
}
bool bfs(){memset(d,0,sizeof d);queue<int> q;q.push(s);d[s]=1;while(!q.empty()){int u=q.front();q.pop();for(int i=head[u];i!=-1;i=edge[i].next){int v=edge[i].to;if(d[v]==0 && edge[i].w){d[v]=d[u]+1;q.push(v);if(v==t) return true;}}}return false;
}
int dfs(int u,int flow){if(u==t) return flow;int sum=0;for(int i=cur[u];i!=-1;i=edge[i].next){cur[u]=i;int v=edge[i].to;if(d[v]==d[u]+1 && edge[i].w){int f=dfs(v,min(flow,edge[i].w));edge[i].w-=f;edge[i^1].w+=f;sum+=f;flow-=f;if(!flow) break;}}if(!sum) d[u]=0;return sum;
}
int dinic(){int ans=0;while(bfs()){memcpy(cur,head,sizeof head);ans+=dfs(s,1e18);}return ans;
}
signed main(){IOSint _;cin >> _;while(_--){cnt=0;memset(head,-1,sizeof head);cin >> n;unordered_map<int,int> lx,rx;//给编号去重 int a=0,b=0;//记录两种斜率直线对于 y 轴截距的编号 for(int i=1;i<=n;i++){int u,v;//u,v 对应 t,xcin >> u >> v;if(!lx.count(v-u)) lx[v-u]=++a;if(!rx.count(v+u)) rx[v+u]=++b;l[i]=lx[v-u],r[i]=rx[v+u];//记录每个点对应其两个截距的编号}for(int i=1;i<=n;i++){//二分图建边 add(l[i],r[i]+a,1);//加 a 是因为不能有重复编号add(r[i]+a,l[i],0);}s=0,t=a+b+1;//添加源点和汇点for(int i=1;i<=a;i++){//源点与二分图一边相连 add(s,i,1);add(i,s,0);}for(int i=1;i<=b;i++){//汇点与二分图另一边相连 add(i+a,t,1);add(t,i+a,0);}cout << dinic() << endl;//套用网络流模板 }return 0;
}
//b=x-t  lx
//b=x+t  rx

http://www.fp688.cn/news/157323.html

相关文章:

  • wordpress 4.4.7合肥网站优化
  • 中国建设布网站大连百度关键词排名
  • 鱼爪商标交易平台唐山网站建设方案优化
  • dede自适应网站注意事项国内最新新闻热点事件
  • 天天新网站免费注册
  • 有关网站开发的文章三亚百度推广公司
  • 自制二维码生成器app企业新网站seo推广
  • 企业网站建设与推广李勇seo的博客
  • 陈塘庄网站建设全网关键词搜索排行
  • 类似建设b站网站百度一下你就知道首页
  • 阿里云esc服务器 怎么做网站互联网推广销售好做吗
  • 怎么利用wordpress做网站搜索引擎优化英文简称为
  • 南通网站建设设计郑州网站网页设计
  • c#网站开发案例大全杭州网站seo推广
  • 谷歌独立站建站得多少钱宁波seo行者seo09
  • 哪个网站可以做批发玻璃胶百度免费推广方法
  • 厦门网站建设公司排名高权重友情链接
  • 有没有专门做二手的网站南京seo排名扣费
  • 做网站推荐网站推广网站
  • 做网站武汉软文案例大全
  • api接口开发网站开发世界羽联巡回赛总决赛
  • 送菜网站制作torrentkitty磁力搜索引擎
  • 上海地区网站建设seo综合查询怎么关闭
  • 无锡哪里有建设网站查权重网站
  • 做同城服务网站比较成功的网站百度排名软件
  • 手机app开发需要哪种语言北京seo服务行者
  • 网站刷收益是怎么做的重庆seo培训
  • 网站建设公司 优势淘宝推广费用多少钱一天
  • 网站设计中主题有哪些作用十大免费无代码开发软件
  • 网站管理助手建站教程优化网站seo策略