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

洛谷【动态规划2】线性状态动态规划 题解13-16 详细易懂不炫技

T13

P1833 樱花 - 洛谷

在这里主要是学到了一次背包和若干次背包的区别,若干次就是在前面套一个n次的循环。

#include<iostream> #define i64 long long using namespace std; string s; i64 tim[3],dt; i64 n,t[10005],c[10005],p[10005],dp[1000005]; void dfs(i64 i, i64 j); int main(){ for(i64 i=1;i<=2;i++){ cin>>s; if(s[1]==':'){ tim[i]=(s[0]-'0')*60+(s[2]-'0')*10+(s[3]-'0'); }else if(s[2]==':'){ tim[i]=((s[0]-'0')*10+(s[1]-'0'))*60+(s[3]-'0')*10+(s[4]-'0'); } } dt=tim[2]-tim[1]; //cout<<dt<<endl; cin>>n; for(i64 i=1;i<=n;i++){ cin>>t[i]>>c[i]>>p[i]; } for(i64 i=1;i<=n;i++){ if(p[i]==0){ for(i64 j=t[i];j<=dt;j++){ dp[j]=max(dp[j],dp[j-t[i]]+c[i]); } }else{ for(i64 tms=1;tms<=p[i];tms++){ for(i64 j=dt;j>=t[i];j--){ dp[j]=max(dp[j],dp[j-t[i]]+c[i]); } } } } cout<<dp[dt]; return 0; }

T14

P2340 [USACO03FALL] Cow Exhibition G - 洛谷

我已急哭,这种思维到底是怎么练出来的?

#include<iostream> #include<cstring> #define i64 long long #define py 400000 using namespace std; i64 n,s[405],f[405],dp[1000005],ans=0; int main(){ cin>>n; for(i64 i=1;i<=n;i++){ cin>>s[i]>>f[i]; } //dp[i][j]前i只奶牛智商为j时的情商值。 memset(dp,-999999,sizeof(dp)); dp[py]=0;//偏移量 for(i64 i=1;i<=n;i++){ if(s[i]>=0){ for(i64 j=2*py;j>=s[i];j--){ dp[j]=max(dp[j],dp[j-s[i]]+f[i]); } }else{ for(i64 j=0;j<=2*py+s[i];j++){ dp[j]=max(dp[j],dp[j-s[i]]+f[i]); } } } for(i64 j=py;j<=2*py;j++){ if(dp[j]>0){ ans=max(ans,dp[j]+j-py); } } cout<<ans; return 0; }

T15

P1541 [NOIP 2010 提高组] 乌龟棋 - 洛谷

感觉我这题解质量极速降低,因为我真的什么都不会呜呜呜。。。

这哥们写的巨详细P1541 乌龟棋 - 洛谷专栏

dp[i][j][k][t]表示你出了i张爬行牌1,j张爬行牌2,k张爬行牌3,t张爬行牌4时的得分

#include<iostream> #include<cstring> #define i64 long long #define py 400000 using namespace std; i64 n,m,x; i64 a[355],b[10],dp[45][45][45][45],ans=0; int main(){ cin>>n>>m; for(i64 i=1;i<=n;i++){ cin>>a[i]; } for(i64 i=1;i<=m;i++){ cin>>x; b[x]++; } dp[0][0][0][0]=a[1]; for(i64 i=0;i<=b[1];i++){ for(i64 j=0;j<=b[2];j++){ for(i64 k=0;k<=b[3];k++){ for(i64 t=0;t<=b[4];t++){ i64 r=1+i+j*2+k*3+t*4; if(i!=0) dp[i][j][k][t]=max(dp[i][j][k][t], dp[i-1][j][k][t]+a[r]); if(j!=0) dp[i][j][k][t]=max(dp[i][j][k][t], dp[i][j-1][k][t]+a[r]); if(k!=0) dp[i][j][k][t]=max(dp[i][j][k][t], dp[i][j][k-1][t]+a[r]); if(t!=0) dp[i][j][k][t]=max(dp[i][j][k][t], dp[i][j][k][t-1]+a[r]); } } } } cout<<dp[b[1]][b[2]][b[3]][b[4]]; return 0; }

T16

P4310 绝世好题 - 洛谷

这是最纯粹的暴力dp,都能过80%。

#include<iostream> #include<cstring> #define i64 long long using namespace std; i64 n; i64 a[100005],dp[100005]; int main(){ cin>>n; for(i64 i=1;i<=n;i++){ cin>>a[i]; if(a[i]!=0) dp[i]=1; else dp[i]=0; } for(i64 i=1;i<=n;i++){ for(i64 j=1;j<i;j++){ if((a[i]&a[j])!=0){ //cout<<a[i]<<' '<<a[j]<<endl; dp[i]=max(dp[i],dp[j]+1); } } } cout<<dp[n]; return 0; }

#include<iostream> #include<cstring> #define i64 long long using namespace std; i64 n,x,ans=0; i64 dp[55]; int main(){ cin>>n; for(i64 i=1;i<=n;i++){ cin>>x; i64 mx=0; for(i64 j=0;j<=32;j++){ if(x&(1LL<<j)){ mx=max(mx,dp[j]); } } for(i64 j=0;j<=32;j++){ if(x&(1LL<<j)){ dp[j]=mx+1; } } /*for(i64 j=0;j<=3;j++){ cout<<dp[j]<<' '; } cout<<endl;*/ } for(i64 j=0;j<=32;j++){ ans=max(ans,dp[j]); } cout<<ans; return 0; }
http://www.jsqmd.com/news/1385114/

相关文章:

  • PKC 第 120 个开关:解析背景音乐的位置、验证方法与风险边界
  • 2026年廊坊知名的geo优化专业企业合规服务商汇总 - 工业推荐榜
  • Windows系统下Redis 3.2.1历史版本完整安装配置与故障排查指南
  • 年假没休完还是休超了,离职结算不能在最后一天现算
  • TOPSIS逼近理想解排序法:多属性决策的量化评估与实战应用
  • 激活锁绕不过去?免费工具applera1n让iOS 15-16.6旧iPhone重新点亮屏幕
  • 平板端 ChatGPT 表格复制转换教程|AI 导出鸭平板版一站式格式无损处理方案
  • ESP芯片烧录工具esptool终极指南:从入门到高效实战的完整解决方案
  • 县城外卖系统开发实战:从需求分析到部署上线全流程指南
  • PB-03F开发板烧录固件和OTA升级
  • GPT-2复现效果不佳?揭秘数据、训练与评估中的工程细节
  • 开发者的 AI 大模型百科全书:Model.zoz.la
  • Golang - 对象池模式(Object Pool Pattern)
  • 北京耐用手持粗糙度仪公司选购指南及北京凯普海泰科技有限公司(北京运营中心) - 品牌优推
  • 英特尔AI硬件生态解析:从CPU到NPU的本地AI部署实战指南
  • Linux ls命令深度解析:从基础到高阶应用与实战技巧
  • Windows用户名修改全攻略:从原理到实践,安全更改用户文件夹路径
  • 不用手写 XML:我用这款工具 1 小时配完 GEM 模型
  • 三步完成百度文库文档提取:从广告围城到干净PDF的转变
  • 基于Anthropic Claude的AI技能工程化:从提示词到可组合智能体的开发范式
  • C++模板元编程:原理、应用与工程实践
  • 深度复盘:新手如何开一家网站建设公司从零到一的生存法则与实战指南
  • 若依权限控制全流程详解:从RBAC模型到前后端联动配置实战
  • CATIA几何特征智能识别3步实战:批量生成曲面法线点阵,快速提升设计效率
  • JWT安全攻防实战:从原理到算法混淆、弱密钥爆破与防御
  • PKC 第 121 个开关:模拟关注的位置、验证方法与风险边界
  • 卡关不再重开:植物大战僵尸修改器 PvZ Tools 从安装到布阵的完整实操指南
  • 阿里CoPaw进阶指南:从本地部署到生产力工具深度调优
  • 泰拉瑞亚地图编辑器TEdit:地图批量改造,究竟能帮你省下多少时间
  • 从零实现AI编程助手:基于本地大模型构建Claude Code核心引擎