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为结点:
    
  • 相关阅读:
    ECharts之柱状图 饼状图 折线图
    Vue自定义指令(directive)
    HDU 1231 最大连续子序列
    POJ 2533 Longest Ordered Subsequence
    HDU 1163 Eddy's digital Roots
    HDU 2317 Nasty Hacks
    HDU 2571 命运
    HDU 4224 Enumeration?
    HDU 1257 最少拦截系统
    HDU 2740 Root of the Problem
  • 原文地址:https://www.cnblogs.com/BeautifulWater/p/14494386.html
Copyright © 2011-2022 走看看