zoukankan      html  css  js  c++  java
  • 相似度

    题目描述

    小G通过摆放一些城市和道路构成了一个世界地图。趁着小G出去玩的时候,大G把小G的世界地图上的城市全部打乱并放在了原来这些城市所在的位置(并不是一一对应),又修改了一些道路。小G玩完回来后发现自己的东西被打乱了,感到非常生气,但是他又被一个更有趣的问题吸引了:被修改之后的世界地图与原来的世界地图的最大相似度是多少?
       (ps:相似度的定义为将城市还原后还有多少条道路和之前的道路相同)

    输入

    第一行为两个整数n,m,表示一共有n个城市,m条道路
    接下来m行,每行两个整数x,y,表示原来小G的世界地图中有一条道路连接编号为x和y的两个城市。
    紧接着m行,每行两个整数x’,y’,表示被大G修改后的世界地图中有一条道路连接编号为x’和y’的两个城市。
    输出

    一行一个整数,表示最大相似度。

    输入样例

    4 5
    4 3
    2 1
    3 2
    2 4
    2 3
    1 4
    3 2
    2 1
    1 3
    4 4
    输出样例


    说明

    【样例解释】
    原图中的1,2,3,4号城市分别对应现在图中的4,1,2,3 将修改后的图还原 1 4->2 1 3 2->4 3 2 1->3 2 1 3->2 4 4 4->1 1 与原图比较发现有4条边是一样的。

    【数据规模和约定】
    对于30%的数据,1 ≤ n ≤ 3,1 ≤ m≤ 20。 对于60%的数据,1 ≤ n ≤ 7,1 ≤ m≤ 70。 对于100%的数据,1 ≤ n ≤ 9,1 ≤ m≤ 300。
    .
    .
    .
    .
    .
    程序:

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    bool bz[10];
    int n,m,ans=0,sz[10],t1[10][10],t2[10][10];
    
    int read()
    {
    	int w=0;
    	char ch=getchar();
    	while (ch<'0'||ch>'9') ch=getchar();
    	while (ch>='0'&&ch<='9')
    	{
    		w=w*10+(ch-'0');
    	  	ch=getchar();
    	}
    	return w;
    }
    
    void work()
    {
    	int sum=0;
    	for(int i=1;i<=n;i++)
    	 	for(int j=1;j<=n;j++)
    	  		sum+=min(t1[i][j],t2[sz[i]][sz[j]]);
    	ans=max(ans,sum);
    	return;
    }
    
    void dfs(int wz)
    {
    	if (wz>n)
    	{
    	  	work();
    	  	return;
    	}
    	for (int i=1;i<=n;i++)
    	  	if (bz[i]==false)
    	  	{
    	  		sz[wz]=i;
    	    	bz[i]=true;
    	    	dfs(wz+1);
    	    	bz[i]=false;
    	  	}
    	return;
    }
    
    int main()
    {
    	n=read();
    	m=read();
    	for (int i=1;i<=m;i++)
    	{
    	  	int x=read(),y=read();
    	  	t1[x][y]++;
    	}
    	for (int i=1;i<=m;i++)
    	{
    	  	int x=read(),y=read();
    	  	t2[x][y]++;
    	}
    	memset(bz,false,sizeof(bz));
    	dfs(1);
    	printf("%d",ans);
    	return 0;
    }
    
  • 相关阅读:
    TDH-hbase shell 常用命令
    WebService之基于REST机制的实现实例(Java版)
    大牛地址
    Solr的SolrCloud与Master-slave主从模式对比
    solr亿万级索引优化实践-自动生成UUID
    Solr查询中涉及到的Cache使用及相关的实现【转】
    05-spectral 图机器学习之谱分解
    03-motifs 图机器学习之motif和结构角色
    04-communities 图机器学习之社区
    02-gnp-smallworld 图机器学习之最小世界
  • 原文地址:https://www.cnblogs.com/YYC-0304/p/10292848.html
Copyright © 2011-2022 走看看