首页 > 其他分享 >日常训练2025-1-8

日常训练2025-1-8

时间:2025-01-08 18:32:57浏览次数:1  
标签:std tmp cost 训练 int 2025 vector 日常 dp

日常训练2025-1-8

E小红的双生英雄

https://ac.nowcoder.com/acm/contest/99784/E

思路

读题后跟容易发现是一道分组背包的题,转移也比较简单。有一个做动态规划题的技巧是,如果题目相较于传统的DP题有一些其他的约束条件,则把约束条件写成DP的一个维度就行。

代码

#include <bits/stdc++.h>

typedef std::pair<long long, long long> pll;
typedef std::pair<int, int> pii;
#define INF 0x3f3f3f3f
#define MOD 998244353
using i64 = long long;
const int N = 1e5+5;

void solve(){
	int n, C, m;
	std::cin >> n >> C >> m;

	std::vector<pll> tmp(n+1);
	std::vector<bool> st(n+1);

	for (int i = 1; i <= n; i++)	{
		int cost, v;
		std::cin >> cost >> v;
		tmp[i] = pll(cost, v);
	}

	std::vector<std::vector<pll>> a;

	for (int i = 0; i < m; i++){
		int u, v, w;
		std::cin >> u >> v >> w;

		st[u] = st[v] = true;

		a.push_back({tmp[u], tmp[v], {tmp[u].first + tmp[v].first, tmp[u].second + tmp[v].second + w}});
	}
	for (int i = 1; i <= n; i++){
		if (!st[i]) a.push_back({tmp[i]});
	}

	std::vector<std::vector<i64>> dp(C+1, std::vector<i64>(5));
	std::vector<std::vector<i64>> ndp(C+1, std::vector<i64>(5));

	for (auto s : a){
		ndp = dp;
		for (int i = 0; i < s.size(); i++){
			auto [cost, atk] = s[i];
			int ok = i == 2;
			for (int j = C; j >= cost; j--){
				for (int k = 4; k >= 1 + ok; k--){
					dp[j][k] = std::max(dp[j][k], ndp[j-cost][k-1-ok] + atk);
				}
			}
		}
	}

	i64 ans = 0;
	for (int j = 0; j <= C; j++){
		for (int k = 0; k <= 4; k++){
			ans = std::max(ans, dp[j][k]);
		}
	}

	std::cout << ans << '\n';

}

signed main()
{
	std::ios::sync_with_stdio(false);
	std::cin.tie(nullptr);
	std::cout<<std::setiosflags(std::ios::fixed)<<std::setprecision(2);
	int t = 1, i;
	for (i = 0; i < t; i++){
		solve();
	}
	return 0;
}

标签:std,tmp,cost,训练,int,2025,vector,日常,dp
From: https://www.cnblogs.com/califeee/p/18660337

相关文章

  • YOLOv8白皮书-第Y7周:训练自己的数据集
    >-**......
  • 2025 GitCode 开发者冬日嘉年华:AI 与开源的深度交融之旅
    在科技的浪潮中,AI技术与开源探索的火花不断碰撞,催生出无限可能。2025年1月4日,由GitCode联合CSDNCOC城市开发者社区精心打造的开年首场开发者活动:冬日嘉年华在北京中关村•鼎好DH3-A座22层盛大举行,为AI技术爱好者和开源世界探索者带来了一场别开生面的交流派......
  • 代码随想录算法训练营第一天 | Leetcode 027、Leetcode 704、Leetcode 977
    Leetcode027双指针覆盖目标元素#include"iostream"#include"vector"usingnamespacestd;intremoveElement(vector<int>&nums,intval){inti=0;for(intj=0;j<nums.size();j++){if(nums[j]!=val){......
  • P11531 [THUPC2025 初赛] 检查站
    检查站题目链接。Problem小I是一个巨大的铁路公司的主管,他管理着\(n\)个火车站,用\(1\)至\(n\)的整数给它们编号。铁路公司有\(c\)个分部,第\(i\)个分部的办公室位于火车站\(p_i\)。可能有火车站没有分部办公室,一个火车站也有可能有多个分部办公室。\(n\)个火车站......
  • 误删除了表?PolarDB MySQL帮你恢复!完成就送2025蛇年春联!
    由于DDL语句无法回滚,如果误删除了表(例如DROP TABLE),可能会导致数据丢失。PolarDB MySQL提供表回收站的功能,删除的表会被临时转移到表回收站。通过本次操作,带您体验如何使用PolarDB MySQL提供表回收站的功能,从表回收站恢复误删的表。完成任务赢奖励,活动火热进行中!完成任务一和......
  • 【广州医科大学主办 | 院士助力 | 独立出版】2025生物医学工程与医疗器械国际学术会议
    随着全球医疗技术的不断进步和医疗需求的持续增长,生物医学工程与医疗器械行业已成为推动健康科技发展的重要力量。为了进一步推动生物医学工程与医疗器械领域的创新与发展,加强国际间的交流与合作,2025生物医学工程与医疗器械国际学术会议(ICBEMD2025)将于2025年1月10日至12日在......
  • P11527 [THUPC2025 初赛] waht 先生的法阵
    waht先生的法阵题目链接。Problem给定数列\(a\)。需要支持\(Q\)次操作,分为以下两种。区间乘\(c\)(\(2\lec\le2.5\times10^5\))。给出\(x\),按以下方法得到答案:记答案为\(ans\),初始时为\(0\)。从\(x\)开始,每次\(ans\getsans+a_x\)后\(x\getsx+\gcd(x,a_x......
  • 2025毕设springboot 奥克斯影院票务系统论文+源码
    系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和人们娱乐需求的日益增长,电影作为一种重要的文化消费形式,已经深入到了大众的日常生活中。奥克斯影院作为众多影院中的一员,面临着日益激烈的市场竞争。为了在竞争中脱颖而出,提升用户体验和服务质量,开发一套高效......
  • SpringBoot日常:集成Kafka
    文章目录1、pom.xml文件2、application.yml3、生产者配置类4、消费者配置类5、消息订阅6、生产者发送消息7、测试发送消息本章内容主要介绍如何在springboot项目对kafka进行整合,最终能达到的效果就是能够在项目中通过配置相关的kafka配置,就能进行消息的生产和消费。......
  • 简化芯片设计传统,AI训练的新型算法正改变芯片研发范式
    编辑丨&自1971年第一个商用微处理器的草图面世以来,芯片设计已经取得了长足的进步。但是,随着芯片变得越来越复杂,设计人员必须解决的问题也越来越复杂。而我们目前的工具并不总是能胜任这项任务。当今使用的自动化工具通常无法解决设计过程中的现实问题,这意味着必须人工介入,......