zoukankan      html  css  js  c++  java
  • 图论-存取图的技巧-按起点分类

    图论-存取图的技巧-按起点分类

    边的三个要素

    1. 边(权值)(暂时不考虑)
    2. 起点
    3. 终点
    • 新增元素
      1. 连接到上一条起点相同的边的传送门
      2. 以某结点为起始结点的当前线段的序数

    思路

    ​ 每读入一条线段,把以该线段起点的当前线段的序数连接到当前读入的这一条上(从而实现与上一条具有相同起点的边的联系),并进行更新,方便下一条相同起点线段的联系(预留一个接口/位置)

    代码实现

    #include<iostream>
    #include<stdio.h>
    using namespace std;
    int V,E;
    struct edge{
    	int from,to,next;
    };
    edge edges[102]; 
    int cur_link[100];
    int main()
    {
    	int u,v;
    	cin>>V>>E;
    	for(register int i=1;i<=E;i++)
    	{
    		cin>>edges[i].from>>edges[i].to;
    		edges[i].next=cur_link[edges[i].from];//绑定好上一条 
    		cur_link[edges[i].from]=i;//更新状态 
    //		u=edges[i].from;v=edges[i].to;
    //		edges[i].next=cur_link[u];
    //		cur_link[u]=i;
    	}
    	for(register int i=1;i<=V;i++)
    	{
    		cout<<"当前是以"<<i<<"为结点:"<<endl;
    		for(int order=cur_link[i];order!=0;order=edges[order].next)
    		      {
    		      	    printf("第%d条: 起点是%d,终点是%d
    ",order,edges[order].from,edges[order].to);
    			  }
    	}
    	return 0;
    }
    

    输入

    4 4
    1 3
    1 2
    1 4
    2 3
    

    输出

    当前是以1为结点:
    第3条: 起点是1,终点是4
    第2条: 起点是1,终点是2
    第1条: 起点是1,终点是3
    当前是以2为结点:
    第4条: 起点是2,终点是3
    当前是以3为结点:
    当前是以4为结点:
    
  • 相关阅读:
    python设置中文编码
    python中的tuple 元组
    python 日期的格式化
    python 中json的使用
    python之连接数据库
    flask之前后端交互
    flask之render_template
    Charles的https抓包方法及原理/下载ssl/http证书
    稳定的python国内镜像库
    Jmeter(五)Jmeter接口测试和压力测试
  • 原文地址:https://www.cnblogs.com/BeautifulWater/p/14494386.html
Copyright © 2011-2022 走看看