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

沉石鱼惊旋

# P12593 沉石鱼惊旋

## 题目背景

> 绝代有佳人,幽居在空谷。

## 题目描述

小 C 有一张 $n$ 个点 $m$ 条边的简单无向带权连通图 $G$。

现在你可以进行 $n$ 次操作,每次操作如下:

选择一个仍未被删除的点 $u$,然后删除点 $u$ 和当前与 $u$ 相连的所有边(即其中一个端点是 $u$ 的边)。假设本次删除的边的边权分别是 $w_1, w_2,\dots w_k$,则本次操作的代价是  $k\times (w_1+w_2+\dots+w_k)$。

你的总代价是这 $n$ 次操作的代价和。

显然 $n$ 次操作后,所有的边和点都将被删除。现在小 C 想知道,将图中所有点和边都删除(即把图删空)的最小总代价是多少。当然,在过程中你不需要保证图每次操作后仍然连通。

> 天寒翠袖薄,日暮倚修竹。

## 输入格式

第一行,两个整数 $n,m$。

接下来的 $m$ 行,每行 $3$ 个整数 $u,v,w$,表示 $u$ 和 $v$ 之间有一条边权为 $w$ 的边。

## 输出格式

一行,一个整数,表示删空图 $G$ 的最小代价。

## 输入输出样例 #1

### 输入 #1

```
6 8
1 3 10
1 5 20
1 6 30
2 5 10
2 6 20
3 4 30
3 5 10
5 6 20
```

### 输出 #1

```
240
```

## 说明/提示

在样例 1 中,这张图有 $8$ 条边:$(1,3,10),(1,5,20),(1,6,30),(2,5,10),(2,6,20),(3,4,30),(3,5,10),(5,6,20)$。一个可行的最优策略如下:

- 选择 $u=4$ 删除,花费 $1\times (30)=30$ 的代价。
- 选择 $u=3$ 删除,花费 $2\times (10+10)=40$ 的代价。
- 选择 $u=2$ 删除,花费 $2\times (10+20)=60$ 的代价。
- 选择 $u=5$ 删除,花费 $2\times (20+20)=80$ 的代价。
- 选择 $u=6$ 删除,花费 $1\times (30)=30$ 的代价。
- 选择 $u=1$ 删除,没有边,花费 $0$ 的代价。

故总代价为 $30+40+60+80+30+0=240$。

---

- 对于 $10\%$ 的数据,边权 $w=1$。
- 对于另外 $20\%$ 的数据,$m=n-1$。
- 对于 $100\%$ 的数据,$1\leq n\leq 8$,$n-1\leq m\leq \frac{n(n-1)}{2}$,$1\leq u,v\leq n$,$1\leq w\leq 10^9$。保证图中没有重边和自环。

 

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
struct node{ll v,w;
};
vector<node>g[30];
vector<bool>d(30);
vector<ll>a(30);
ll n,m;
ll ans=LLONG_MAX;
void dfs(ll step){if(step==n+1){vector<bool>del(30,false);ll res=0;for(ll i=1;i<=n;i++){ll u=a[i];ll cnt=0,sum=0;for(auto t:g[u]){if(!del[t.v]){cnt++;sum+=t.w;}}del[u]=true;res+=cnt*sum;}ans=min(ans,res);return ;}for(int i=1;i<=n;i++){if(!d[i]){d[i]=true;a[step]=i;dfs(step+1);d[i]=false;a[step]=0;}}
}
int main(){cin>>n>>m;for(int i=0;i<m;i++){ll u,v,w;cin>>u>>v>>w;g[u].push_back(node{v,w});g[v].push_back(node{u,w});}dfs(1);cout<<ans;return 0;
}

相关文章:

  • [ARM][架构] 02.AArch32 程序状态
  • GPT-4o 风格提示词案例大全(持续更新 ing...)
  • AE THYRO-AX 功率控制器 THYRISTOR-LEISTUNGSSTELLER THYRISTOR POWER CONTROLLER
  • Kotlin学习34-data数据类1
  • uniapp开发小程序,如何根据权限动态配置按钮或页面内容
  • 【Java学习笔记】抽象类
  • Redis 性能优化:核心技术、技巧与最佳实践
  • C++(4)
  • 第7章:Zephyr 的低功耗机制
  • 跟着华为去变革 ——读《常变与长青》有感
  • 读懂 std::true_type 和 std::false_type
  • 2025年- H52-Lc160--114. 二叉树展开为链表(前序遍历 + 用栈 + 原地修改)--Java版
  • 04_redis之ZSet使用实例-积分榜
  • leetcode-295 Find Median from Data Stream
  • Wan2.1 图生视频 多卡推理批量生成视频
  • 视频问答功能播放器(视频问答)视频弹题功能实例
  • ffmpeg转换竖屏(画面是横屏旋转90度的竖屏文件格式)视频到横屏
  • 网易互娱游戏研发实习一面
  • 在 ElementUI 中实现 Table 单元格合并
  • 萤石云实际视频实时接入(生产环境)
  • 网站备案个人备案公司网站/网站运营包括哪些内容
  • 可以免费做演播的听书网站/网推公司干什么的
  • 中企动力销售待遇/厦门搜索引擎优化
  • 什么网站做跨境电子商务/站内免费推广有哪些
  • 网站建设合同范本/免费友情链接网站
  • wordpress站内查找/营销和运营的区别是什么