首页 > 其他分享 >题解:P11377 [GESP202412 七级] 武器购买

题解:P11377 [GESP202412 七级] 武器购买

时间:2024-12-10 18:20:29浏览次数:3  
标签:le int 题解 GESP202412 110 P11377 rep dp

思路

这是一个典型的背包问题。

我们可以设 \(dp_{j}\) 为武器总强度为 \(j\) 的情况下的最小花费。

于是,根据背包问题的模型我们就能得出:

\[dp_j = \max_{1 \le i \le n} dp_{j - c_i} + p_i \]

最终,答案就为第一个大于等于 \(P\) 的 \(dp_j\) 的下标 \(j\)。

时间复杂度为 \(O(TnQ)\)。

代码

#include <bits/stdc++.h>
using namespace std ;
#define int long long
#define rep( i , l , r ) for (int i = (l) ; i <= (r) ; i++)
#define per( i , r , l ) for (int i = (r) ; i >= (l) ; i--)
int n , P , Q ;
int p[110] , c[110] ;
int dp[50010] ;
void solve (){
	memset (dp , 0 , sizeof dp) ;
	cin >> n >> P >> Q ;
	rep (i , 1 , n){
		cin >> p[i] >> c[i] ;
	}
	rep (i , 1 , n){
		per (j , Q , c[i]){
			dp[j] = max (dp[j] , dp[j - c[i]] + p[i]) ;
		}
	}
	rep (j , 0 , Q){
		if (P <= dp[j]){
			cout << j << '\n' ;
			return ;
		}
	}
	cout << -1 << '\n' ; 
}

signed main (){
	int _ = 1 ;
	cin >> _ ;
	while ( _-- ){solve () ;}
	return 0 ;
}

标签:le,int,题解,GESP202412,110,P11377,rep,dp
From: https://www.cnblogs.com/komerebigin/p/18597824

相关文章

  • CF1601 题解
    纪念一下场切5题。A给定序列\(a\),一次操作可选\(k\)个数,同时减去它们的按位与。问有多少个\(k\)能把\(a\)全消为\(0\)。\(n\le10^5\)。对于一个位,\(1\)的个数的变化量必为\(k\)的倍数。所以\(k\)要是每一位\(1\)的个数的\(gcd\)的因数。B青蛙跳井,初始......
  • Java 架构师面试题解析(2024 年版)
    在当今竞争激烈的技术领域,成为一名Java架构师需要具备深厚的技术功底和丰富的实践经验。为了帮助大家更好地准备Java架构师面试,本文整理了一些2024年常见的面试题及答案解析。一、基础篇1.谈谈你对面向对象编程三大特性的理解?封装:将数据和操作封装在类中,通过访问修......
  • CF2040D Non Prime Tree 题解
    CF992Div2D-solution给定一个\(n\)个节点的树,你可以不重复地给树的节点填\(1\sim2n\)之间的数,求一种构造方案,使得每两个相邻的节点上的数之差的绝对值为合数。我们规定每次填的数只会变大(就是在以某种方法遍历的时候后面的数一定比前面的数大)。现在我们假设填到了\(u\)......
  • SpringBoot开发过程中经常遇到问题解决方案分享
    目录1. SpringBoot应用启动缓慢2. 数据库连接池配置问题3. SpringBoot应用无法连接外部服务4. 配置文件读取不生效5. SpringBoot应用的日志输出不完整6. SpringBoot中的@Transactional事务管理问题1. SpringBoot应用启动缓慢问题原因:SpringBoot应用启......
  • [ARC189B] Minimize Sum 题解
    场上被创死了。思路考虑一次操作会造成什么影响。加入操作的是:\[x_1,x_2,x_3,x_4\]它们会变成:\[x_1,x_1+x_4-x_3,x_1+x_4-x_2,x_4\]发现没有什么规律。考虑它们的差分序列:\[x_1,x_4-x_3,x_3-x_2,x_2-x_1\]改变为交换\(2,4\)的差分。那么修改就变成很简单的形式了。......
  • 题解:P11266 【模板】完全体·堆
    题目链接洛谷P11266【模板】完全体·堆解题思路看了题解区,竟然没有人写可爱的左偏树。我们需要支持四种操作:删除集合中的元素。取集合中的最小值。合并两个集合。修改集合中的元素。那么我们可以用常数极小的左偏树(可并堆)来解决这道模板题。对于左偏树的基础操作......
  • HECTF网络安全挑战赛个人题解,主Reverse部分
    ReverseezAndroid比较难的一个题。java层用rc4解出一张图片知道flag的格式so层注册了d0func和stringFromJNI两个函数其中d0func给两个全局变量赋了值,还有两个小函数也对这两个变量进行了操作,交叉引用全部找出来即可解密得到1vxyzmissonD1key和go1denG08aTJYcxk在stringFro......
  • 基于验证链(Chain of Verification)的大语言模型幻觉问题解决方案
    LLM(SEALONG:LLM(LargeLanguageModel)在长上下文推理任务中的自我改进)在生成内容时往往会遭遇一个棘手的问题——幻觉(Hallucination)。模型自信地输出虚假或误导性信息,对依赖其准确输出的开发者、工程师及用户构成了实质性的挑战。为解决这一问题,研究者提出了ChainofVerificat......
  • 牛客周赛 Round 71 题解
    牛客周赛Round71题解A构造A+B容易想出最多有\(n-1\)种构造方法,所以只要判断\(n\)和\(k\)的关系即可。#include<bits/stdc++.h>usingnamespacestd;intmain(){ intn,k;cin>>n>>k;if(k<=n-1){cout<<"YES\n";......
  • [题解](更新中)AtCoder Beginner Contest 383(ABC383) A~E
    A-Humidifier1照题意模拟即可,时间复杂度\(O(n)\)。点击查看代码#include<bits/stdc++.h>#defineintlonglong#defineN110usingnamespacestd;intn,t[N],v[N],sum;signedmain(){ cin>>n; for(inti=1;i<=n;i++)cin>>t[i]>>v[i]; for(inti=1......