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

Solution - P4241 采摘毒瘤

体现了出题人灭尽毒瘤的远大志向。


首先枚举最小的无法放入的物品 \(i\),较其更小的物品肯定已经全部被放进去了,且有至少一个该物品没有被放进去。

于是我们枚举 \(i\),对于比 \(i\) 大的物品随便跑一个背包算一下对于每个已占用大小的可行性,然后再对物品 \(i\) 跑可行性(注意数量要减 \(1\),留出一个放不进去),然后枚举一下使最后一个放不进去的大小的总方案数即可。

但是我们显然不想做 \(n\) 次背包,于是我们从大到小枚举 \(i\),每次做背包都继承上一次的数据。

然后没了。\(\mathrm O(nm)\)

#include <bits/stdc++.h>
#define llong long long
#define N 505
#define M 100005
using namespace std;#define bs (1<<20)
char buf[bs], *p1, *p2;
#define gc() (p1==p2&&(p2=(p1=buf)+fread(buf,1,bs,stdin),p1==p2)?EOF:*p1++)
template<typename T>
inline void read(T& x){x = 0; int w = 1;char ch = gc();while(ch < '0' || ch > '9'){if(ch == '-') w = -w;ch = gc();}while(ch >= '0' && ch <= '9')x = (x<<3)+(x<<1)+(ch^48), ch = gc();x *= w;
}
template<typename T, typename ...Args>
inline void read(T& x, Args& ...y){return read(x), read(y...);
}constexpr int p = 19260817;struct Item{int w, c;
};
Item a[N];int n, m, ans;
int prew[N];
int dp[2][M];int main(){read(n, m);for(int i = 1; i <= n; ++i) read(a[i].c, a[i].w);sort(a+1, a+n+1, [&](Item o1, Item o2){return o1.w<o2.w;});for(int i = 1; i <= n; ++i) prew[i] = prew[i-1]+a[i].w*a[i].c;if(prew[n] <= m) ++ans;dp[n&1^1][0] = 1;for(int i = n; i >= 1; --i){int rt = i&1, lt = i&1^1;--a[i].c;for(int j = 0; j < a[i].w; ++j){int now = 0;for(int k = 0; a[i].w*k+j <= m; ++k){now = (now+dp[lt][k*a[i].w+j])%p;dp[rt][k*a[i].w+j] = now;if(k >= a[i].c) now = (now-dp[lt][(k-a[i].c)*a[i].w+j]+p)%p;}}for(int j = m-prew[i-1]; j > max(m-prew[i-1]-a[i].w, -1); --j){ans = (ans+dp[rt][j])%p;}for(int j = m; j >= (a[i].c+1)*a[i].w; --j)dp[rt][j] = (dp[rt][j]+dp[lt][j-(a[i].c+1)*a[i].w])%p;}printf("%d", ans);return 0;
}
http://www.jsqmd.com/news/397113/

相关文章:

  • 题解:洛谷 P1352 没有上司的舞会
  • 使用iOS安全API进行数据加密、解密、签名与验证完整指南
  • 题解:洛谷 P1070 [NOIP 2009 普及组] 道路游戏
  • 如何修复 Chrome Devtools Console 中无法粘贴代码的问题 All In One
  • Trae和Trae团队和Trae技术
  • 题解:洛谷 P1880 [NOI1995] 石子合并
  • COMSOL 隧道断层突水案例探究:不同开挖步数下的围岩奥秘
  • 题解:洛谷 P1435 [IOI 2000] 回文字串
  • Java 时间类(中):JDK8 全新时间 API 详细教程
  • 降AI率常见误区TOP10:别再走弯路了!2026年最全避坑指南
  • <P5464 缩小社交圈>
  • 支持实时预览与高质量导出的专业封面设计工具,完全免费:西瓜封面设计
  • 文科论文降AI比理工科更难?文科生专属降AI方案全解析
  • 题解:洛谷 P1541 [NOIP 2010 提高组] 乌龟棋
  • PEM 电解槽直流道两相流模拟:从建模到求解
  • 手把手教你使用vscode开发stm32!
  • 题解:洛谷 P1854 [IOI 1999] 花店橱窗布置
  • 题解:洛谷 P4310 绝世好题
  • 中华民族音乐传承出版工程服务平台界面设计
  • 用DeepSeek写的论文怎么降AI率?2026最新实操教程手把手教你
  • 2026毕业季降AI全攻略:从论文写作到最终提交一站式指南
  • 法智学教育软件课件UI设计
  • 【Python】【机器学习】集成算法(随机森林、提升算法)
  • 中小企业全生命周期知识产权管理100问:从初创到成熟,一文读懂核心要点
  • 题解:洛谷 P1004 [NOIP 2000 提高组] 方格取数
  • 基于高频信号的PMSM转矩脉动抑制:一场仿真探索之旅
  • 3分钟搞懂深度学习AI:感知机,AI模仿大脑
  • 题解:洛谷 P2679 [NOIP 2015 提高组] 子串
  • 论文降AI后导师说风格变了怎么办?保持个人写作风格的实用指南
  • 题解:洛谷 P1439 两个排列的最长公共子序列