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

牛客月赛107

E. Cidoai的可乐

        (1)贪心。尽可能多的使用点权小的点,多用这些点去建边,直到度数达到限制

        (2)n 个点要建成一个无环图,最少 n - 1 条边。只要建满 n - 1 条,就退出循环

        (3)对所有点进行点权排序,结构体建点

        (4)cmp函数返回值为 bool,若返回 true 则不改变前后顺序,返回 false 调整

#include<bits/stdc++.h>
#define LL long long
using namespace std;

const int N = 1e5 + 5, INF = 0x3f3f3f3f;
LL n, ans, a[N], d[N];

struct node
{
	int a, d;
}v[N];

bool cmp(node aa, node bb)
{
	return aa.a < bb.a;
}

int main()
{
	cin >> n;
	for (int i = 1; i <= n; i ++)
		cin >> v[i].a;
	for (int i = 1; i <= n; i ++)
		cin >> v[i].d;
	sort(v + 1, v + n + 1, cmp);
	int cnt = n - 1;
	for (int i = 1; i <= n; i ++)
	{
		if (cnt < v[i].d)            // 剩余需要的边数小于该点度数,则该点就是最后一个需要建边的点
		{
			ans += v[i].a * cnt;
			break;
		}
		ans += v[i].a * v[i].d;      // 否则这个点的度数全部用完
		cnt -= v[i].d;
	}
	cout << ans;
	return 0;
}


http://www.kler.cn/a/446529.html

相关文章:

  • 国标GB28181协议平台Liveweb:搭建建筑工地无线视频联网监控系统方案
  • 【开源免费】基于SpringBoot+Vue.JS房屋租赁管理系统(JAVA毕业设计)
  • 蓝桥杯练习生第四天
  • Flink执行模式(批和流)如何选择
  • FastAPI介绍和简单示例代码(ChatGPT-4o生成)
  • TouchGFX移植(3)增加SDRAM驱动
  • 云消息队列 Kafka 版
  • 前端数据可视化库介绍Echarts、D3.js、Plotly、Matplotlib
  • 各种开源汇编、反汇编引擎的非专业比较
  • 电子应用设计方案-65:智能餐桌系统方案设计
  • Windows 无法启动 Redis服务(位于本地计算机上)错误 1067
  • 3349、检测相邻递增子数组 Ⅰ
  • SpringCloudAlibaba | Sentinel从基础到进阶
  • Three.js入门-Raycaster鼠标拾取详解与应用
  • 【蓝桥杯】43696.小数第n位
  • 如何创建属于自己的大语言模型:从零开始的指南
  • 目标检测与R-CNN——pytorch与paddle实现目标检测与R-CNN
  • 互联网医院系统,互联网医院系统源码可供
  • 固定资产分类,提升资产盘活效益
  • flink实现复杂kafka数据读取
  • 网工考试——数据链路层、网络层、传输层
  • 开源Genesis: 开创机器人研究的全新模拟平台
  • C++11 智能指针
  • 基于 SSM 和 Vue 打造的专业电脑测评系统:引领科技评估潮流
  • Flutter组件————Scaffold
  • iPhone恢复技巧:如何从 iPhone 恢复丢失的照片