当前位置:网站首页>Knight defeats demon king (Backpack & DP)
Knight defeats demon king (Backpack & DP)
2022-07-07 06:18:00 【Harris-H】
The knight defeated the demon king ( knapsack &dp)
Because the plan is different , It depends on the energy and difference used by a knight .
Therefore, we consider using backpacks to deal with the energy used by each Knight i i i The biggest damage , When seeking the maximum, in order to include all cases .
Then proceed dp, Make f ( i , j ) f(i,j) f(i,j) Before presentation i i i Knights caused j j j Number of schemes for point damage .
Specially , f ( i , m ) f(i,m) f(i,m) Before presentation i i i Knights cause greater than or equal to j j j Number of schemes for point damage .
Then proceed dp that will do .
Time complexity : O ( n × 3000 ) O(n\times 3000) O(n×3000)
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int mod = 998244353;
int n, m;
int fans[3009][3009], ff[3009];
int a[3009], b[3009];
void solved() {
cin >> n >> m;
fans[0][0] = 1;
int s;
for(int ttf = 1; ttf <= n; ttf ++) {
cin >> s;
for(int i = 0; i < s; i ++) cin >> a[i];
for(int i = 0; i < s; i ++) cin >> b[i];
for(int i = 0; i <= 3000; i ++) ff[i] = 0; /// initialization dp Array
for(int i = 0; i < s; i ++) {
/// Find out the maximum attack power that each energy consumption of the current knight can cause
for(int j = 3000; j >= b[i]; j --) {
if(ff[j - b[i]] || j - b[i] == 0)
ff[j] = max(ff[j - b[i]] + a[i], ff[j]);
}
} /// n Total time complexity of knights : sum(s) * 3000
for(int i = 0; i <= 3000; i ++) {
if(ff[i] == 0 && i != 0) continue; /// Some values cannot be represented , The magnitude of the value that can be represented is sum(b)
if(ff[i] > m) ff[i] = m; /// Attack overflow processing
for(int j = 0; j < ff[i]; j ++) /// Here is the number of schemes in the attack overflow part , It needs to be calculated separately
fans[ttf][m] = (fans[ttf][m] + fans[ttf - 1][m - j]) % mod;
for(int j = m; j >= ff[i]; j --) /// This for And the one above for The total time complexity of is : sum(b) * m
fans[ttf][j] = (fans[ttf][j] + fans[ttf - 1][j - ff[i]]) % mod;
} /// n The total time complexity of a knight here : n * 3000
} /// Total time complexity : sum(s) * 3000 + n * 3000 + sum(b) * m
cout << fans[n][m];
}
int main() {
// int ttx; cin >> ttx; while(ttx --)
solved();
return 0;
}
边栏推荐
- 【SQL实战】一条SQL统计全国各地疫情分布情况
- Ctfshow-- common posture
- CTFshow--常用姿势
- Experience of Niuke SQL
- Subghz, lorawan, Nb IOT, Internet of things
- On the discrimination of "fake death" state of STC single chip microcomputer
- JVM监控及诊断工具-命令行篇
- Understand the deserialization principle of fastjson for generics
- Dc-7 target
- JVM命令之 jstack:打印JVM中线程快照
猜你喜欢
VMware安装后打开就蓝屏
雷特智能家居龙海祁:从专业调光到全宅智能,20年专注成就专业
Go语学习笔记 - gorm使用 - 原生sql、命名参数、Rows、ToSQL | Web框架Gin(九)
jvm命令之 jcmd:多功能命令行
VScode进行代码补全
JVM命令之 jstat:查看JVM統計信息
C note 13
高并发大流量秒杀方案思路
From "running distractor" to data platform, Master Lu started the road of evolution
@Detailed differences between pathvariable and @requestparam
随机推荐
How to set up in touch designer 2022 to solve the problem that leap motion is not recognized?
C面试24. (指针)定义一个含有20个元素的double型数组a
苹果cms V10模板/MXone Pro自适应影视电影网站模板
外设驱动库开发笔记43:GPIO模拟SPI驱动
Detailed explanation of platform device driver architecture in driver development
Subghz, lorawan, Nb IOT, Internet of things
go-microservice-simple(2) go-Probuffer
JVM命令之 jstack:打印JVM中线程快照
Talking about reading excel with POI
C. colonne Swapping [tri + Simulation]
jmeter 函数助手 — — 随机值、随机字符串、 固定值随机提取
Understand the deserialization principle of fastjson for generics
Crudini 配置文件编辑工具
计算模型 FPS
蚂蚁庄园安全头盔 7.8蚂蚁庄园答案
If you don't know these four caching modes, dare you say you understand caching?
Apple CMS V10 template /mxone Pro adaptive film and television website template
Jmeter自带函数不够用?不如自己动手开发一个
vim映射大K
postgresql 数据库 timescaledb 函数time_bucket_gapfill()报错解决及更换 license