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

ABC318-D

问题陈述

给你一个加权无向完整图,图中有 𝑁N 个顶点,编号从 11 到 𝑁N 。连接顶点 𝑖i 和 𝑗j 的边 (𝑖<𝑗)(i<j) 的边的长度与 (𝑖<𝑗)(i<j) 的长度相同。 (𝑖<𝑗)(i<j) 的边的权重为 𝐷𝑖,𝑗Di,j​ 。

在以下条件下选择若干条边时,请找出所选边的最大可能总重量。

  • 所选边的端点是成对不同的。
限制因素
  • 2≤𝑁≤162≤N≤16
  • 1≤𝐷𝑖,𝑗≤1091≤Di,j​≤109
  • 所有输入值均为整数。
N 
𝐷1,2D1,2​ 𝐷1,3D1,3​ …… 𝐷1,𝑁D1,N​
𝐷2,3D2,3​ …… 𝐷2,𝑁D2,N​
⋮⋮
𝐷𝑁−1,𝑁DN−1,N​
做法

一看数据范围就想到dfs爆搜(我居然又没想到qaq)。我写的,超时了

#include<bits/stdc++.h>
using namespace std;
int n;
int vis[20];
long long d[20][20];
long long ans;
void dfs(long long sum){
    for(int i=1;i<=n;i++){
        for(int j=x+1;j<=n;j++){
            if(!vis[i]&&!vis[j]){
                vis[i]=1,vis[j]=1;
                ans=max(ans,sum+d[i][j]);
                dfs(x+1,sum+d[i][j]);
                vis[i]=0,vis[j]=0;
            }
        }
    }
}
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        for(int j=i+1;j<=n;j++){
            scanf("%lld",&d[i][j]);
        }
    }
    dfs(0);
    cout<<ans; 
}

正解

#include<bits/stdc++.h>
using namespace std;
int n;
int vis[20];
long long d[20][20];
long long ans;
void dfs(int x,long long sum){
    if(x>n){
        ans=max(sum,ans);
        return ;
    }
    if(!vis[x]){
        vis[x]=1;
        for(int i=x+1;i<=n;i++){
            if(!vis[i]) {
                vis[i]=1;
                dfs(x+1,sum+d[x][i]);
                vis[i]=0;
            }
        }
        vis[x]=0;
    }
    dfs(x+1,sum);//跳过这个点 
}
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        for(int j=i+1;j<=n;j++){
            scanf("%lld",&d[i][j]);
        }
    }
    dfs(1,0);
    cout<<ans; 
}

 答案的搜法和我想的有点不一样,我的太暴力了,我又想不到怎么优化qaq。

http://www.lryc.cn/news/362700.html

相关文章:

  • Java实现线程安全的单例模式
  • osg库的下载和安装
  • HTML、ASP.NET、XML、Javascript、DIV+CSS、JQuery、AJax的起源与简介
  • SpringCloud微服务远程接口调用
  • MySQL优化器的SQL重写规则
  • 57.void指针(万能指针)
  • 国科大-智能计算系统(AICS)期末试题(2024春)
  • 训练Pytorch深度学习模型出现StopIteration
  • windows上安装MongoDB,springboot整合MongoDB
  • python_04
  • 音视频视频点播
  • Git常用命令1
  • Nextjs使用教程
  • mysql的增删查改(进阶)
  • 九、从0开始卷出一个新项目之瑞萨RZN2L生产烧录固件(jflash擦写读外挂flash)
  • 安徽某高校数据挖掘作业4-5 (与一些碎碎念)
  • 基于ES安装IK分词插件
  • php项目加密源码
  • 测绘GIS和遥感领域比较好的公众号有哪些
  • 【技术实操】银河高级服务器操作系统实例分享,达梦数据库服务器 oom 问题分析
  • 通过ffmpeg 将wav格式转为mp3格式.
  • 快速上手RabbitMQ,直接上开发!
  • 如何实现单例模式及不同实现方法分析-设计模式
  • wampserver安装与汉化
  • 解决MyBatis的N+1问题
  • 12-学生们参加各科测试的次数(高频 SQL 50 题基础版)
  • 2024网络与信息安全管理员职工职业技能竞赛re0220164094
  • Elasticsearch--easy-ES框架使用,轻松操作查询Elasticsearch,简化开发
  • 【教程】如何实现WordPress网站降级(用于解决插件和主题问题)
  • 思维导图-vb.net开发带进度条的复制文件夹功能c#复制文件夹