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

湘潭做网站 z磐石网络做导航网站赚钱

湘潭做网站 z磐石网络,做导航网站赚钱,站长推广网,优秀网站建设平台题目: 样例解释: 样例#1: 编号为 1 的工人想生产第 1 阶段的零件,需要编号为 2 的工人提供原材料。 编号为 2 的工人想生产第 1 阶段的零件,需要编号为 1 和 3 的工人提供原材料。 编号为 3 的工人想生产第 1 阶段的零件&#x…

题目:

 

 

 


样例解释:

样例#1:
 

19_7a49ed300b1.png


编号为 1 的工人想生产第 1 阶段的零件,需要编号为 2 的工人提供原材料。
编号为 2 的工人想生产第 1 阶段的零件,需要编号为 1 和 3 的工人提供原材料。
编号为 3 的工人想生产第 1 阶段的零件,需要编号为 2 的工人提供原材料。
编号为 1 的工人想生产第 2 阶段的零件,需要编号为 2 的工人生产第 1 阶段的零件,需要为编号 1 和 3 的工人提供原材料。
编号为 2 的工人想生产第 2 阶段的零件,需要编号为 1 和 3 的工人生产第 1 阶段的零件,他/她们都需要编号为 2 的工人提供原材料。
编号为 3 的工人想生产第 2 阶段的零件,需要编号为 2 的工人生产第 1 阶段的零件,需要编号为 1 和 3 的工人提供原材料。
样例#2:
 

19_8f331d840b2.png


编号为 1 的工人想生产第 1 阶段的零件,需要编号为 2 和 5 的工人提供原材料。
编号为 1 的工人想生产第 2 阶段的零件,需要编号为 2 和 5 的工人生产第 1 阶段的零件,需要编号为 1,3,4 的工人提供原材料。
编号为 1 的工人想生产第 3 阶段的零件,需要编号为 2 和 5 的工人生产第 2 阶段的零件,需要编号为 1,3,4 的工人生产第 1 阶段的零件,需要编号为 2,3,4,5 的工人提供原材料。
编号为 1 的工人想生产第 4 阶段的零件,需要编号为 2 和 5 的工人生产第 3 阶段的零件,需要编号为 1,3,4 的工人生产第 2 阶段的零件,需要编号为 2,3,4,5 的工人生产第 1 阶段的零件,需要全部工人提供原材料。
编号为 1 的工人想生产第 5 阶段的零件,需要编号为 2 和 5 的工人生产第 4 阶段的零件,需要编号为 1,3,4 的工人生产第 3 阶段的零件,需要编号为 2,3,4,5 的工人生产 第 2 阶段的零件,需要全部工人生产第 1 阶段的零件,需要全部工人提供原材料。 


代码1:(40-60分算法 )

思路:

设求第3点为第3阶段时,点1是否需要提供原材料。

【3,3】 => 【2,2】,【4,2】

【2,2】 => 【1,1】,【3,1】
【4,2】 => 【3,1】,【5,1】

【1,1】 => 【2,0】,【5,0】
【3,1】 => 【2,0】,【4,0】
【5,1】 => 【1,0】,【4,0】 # 此处1需要提供原材料

比较容易想到对于每个询问进行暴搜,若点1为0,则Yes
时间复杂度很高,必然超时。

#include <bits/stdc++.h>
using namespace std;const int MAXN=1005;
int vex[MAXN],k,n,m,q;
struct edge {int u,v,next;
}e[MAXN*2];int vis[MAXN][MAXN];void add(int u,int v){k++;e[k].u=u;e[k].v=v;e[k].next=vex[u];vex[u]=k;
}void dfs(int u,int s){if(s==-1||vis[u][s]) return;vis[u][s]=1;for(int i=vex[u];i;i=e[i].next){int v=e[i].v;dfs(v,s-1);}return;
}int main(){cin>>n>>m>>q;while(m--){int u,v;cin>>u>>v;add(u,v);add(v,u);}while(q--){int u,L;memset(vis,0,sizeof(vis));cin>>u>>L;dfs(u,L);if(vis[1][0]) cout<<"Yes"<<endl;else cout<<"No"<<endl;}return 0;
}

代码2:(满分算法)

思路:

观察发现,由于1->2的路径长度为1,只要点2的阶段为奇数,则点1一定要提供原材料(1->2->1->2->...)

观察发现,由于1->2->3的路径长度为2,只要点3的阶段为偶数,则点1一定要提供原材料

从1到v,路径很多,长度不尽相同。如果1到v的路径长度存在4时,v在阶段4、6、8、10…时,1肯定可以为0。当v的路径长度存在3时,v在3、5、7、9…阶段,1肯定可以为0。

因此要求的就是1到v的最短奇数路径和最短偶数路径。

若v的阶段为偶数x,存在v的最短偶数路径y,满足x>=y,1即可为0。

若v的阶段为奇数x,存在v的最短奇数路径y,满足x>=y,1即可为0。

设dis[v][0]为1到v的最短偶数路径,设dis[v][1]为1到v的最短奇数路径,

则有:

dis[v][0] = min(dis[v][0],dis[u][1]+1)
dis[v][1] = min(dis[v][1],dis[u][0]+1)

对于初始点1,dis[1][0]显然等于0,dis[1][1]显然不可能,设为无穷大。

代码:

#include <bits/stdc++.h>
using namespace std;const int MAXN=1e5+5;
int vex[MAXN],k,n,m,q;
struct edge {int u,v,next;
} e[MAXN*2];int vis[MAXN][2],dis[MAXN][2],que[MAXN*10],q2[MAXN*10],head,rear;void add(int u,int v) {k++;e[k].u=u;e[k].v=v;e[k].next=vex[u];vex[u]=k;
}void SPFA() {for(int i=1; i<=n; i++) dis[i][0]=dis[i][1]=1e9;dis[1][0]=0;head=1;rear=0;que[++rear]=1;while(head<=rear) {int u=que[head];int t=q2[head];head++;vis[u][t]=0;for(int i=vex[u]; i; i=e[i].next) {int v=e[i].v;if(dis[v][0]>dis[u][1]+1) {dis[v][0]=dis[u][1]+1;if(!vis[v][0]) {vis[v][0]=1;que[++rear]=v;q2[rear]=0;}}if(dis[v][1]>dis[u][0]+1) {dis[v][1]=dis[u][0]+1;if(!vis[v][1]) {vis[v][1]=1;que[++rear]=v;q2[rear]=1;}}}}return;
}int main() {freopen("work.in","r",stdin);freopen("work.out","w",stdout);cin>>n>>m>>q;while(m--) {int u,v;cin>>u>>v;add(u,v);add(v,u);}SPFA();if(vex[1]==0) dis[1][0]=1e9; //补丁,若1点没有连接边,则1的偶数路径没有。while(q--) {int u,L;cin>>u>>L;if(L>=dis[u][L%2]) cout<<"Yes"<<endl;else cout<<"No"<<endl;}return 0;
}

 

 

 

http://www.yayakq.cn/news/312408/

相关文章:

  • iis7搭建asp网站wordpress 响应速度慢
  • 河南建设监理协会新网站厦门建设银行招聘网站
  • 快速创建网站wordpress 站中站
  • 济南住宅与房地产信息网官方网站淘宝网页设计尺寸
  • 免费建视频网站模仿网站建设站建设
  • 企业网站开发公司有哪些西宁做网站的工作室
  • 为什么我自己做的网站百度不到给国外网站做流量
  • 国际网站建设与维护wordpress 新建模板文件夹
  • 成都城乡建设局官方网站网站顶部地图代码怎么做
  • 站长工具是什么意思深圳市网页制作
  • 怎么做国外游戏下载网站wordpress小程序模板
  • 学校网站框架seo的中文含义是什么
  • 网站建设网页设wordpress主题授权加密
  • 免费云服务器主机优化方案
  • 怎样做可以连接服务器的网站车票制作图片的软件
  • 网站底部导航代码站长之家怎么用
  • 好上手的做海报网站宁波seo首页优化平台
  • 要想做一个好网站需要多久做信息流推广需要建立网站么
  • 合肥网站建设哪里有免费创立网站
  • 石家庄城乡建设部网站首页企业网站优化搜行者seo
  • 电子商务网站开发问题研究受欢迎的做pc端网站
  • 网站备案接入ip网站ome系统怎么做
  • wordpress 总浏览数量深圳网站seo服务
  • 专门做汽车配件的外贸网站wordpress数据连接失败1223
  • 学院网站建设进度情况说明书云服务器wordpress如何上线
  • 自己做的创意的网站东莞做网站哪个公司最好
  • 公司没有销售网站怎么做业务自己想学做博客网站
  • 网站开发环境分析wordpress mediaelement.js
  • 网站建设征税标准免费下载教学设计的网站
  • 有意思网站推荐安卓开发软件安装教程