POJ3176-基础DP
很基础的dp题。有一头奶牛想接尽量多的苹果,有w此移动机会。
dp[i][w] = max(dp[i-1][w+1] + 能否吃到苹果 ,dp[i-1][w] + 能否吃到苹果) //从上一分钟是否移动中选出最大值转移
我开始状态转移方程没写错,但是边界条件总是写不好,不能处理0。并不是这样的,刚刚又看了一下代码,加号的优先级高于位运算!!!
想起来了线段树不用i>>1+1而用i>>1|1 了。。。。
后来今天问了妹子,还是专业dp的妹子稳啊,理清了边界条件一遍就A了。
以后写dp要想好状态转移的过程,想好再写。
#include <algorithm>
#include <cstring>
#include <ctype.h>
#include <cstdlib>
#include <cstdio>
#include <vector>
#include <string>
#include <queue>
#include <stack>
#include <cmath>
#include <set>
#include <map> using namespace std; int N,M,T,W;
int apple[],dp[][];
int main()
{
while(~scanf("%d%d",&T,&W))
{
int ans = ;
for(int i=;i<T;i++) scanf("%d",&apple[i]);
memset(dp,,sizeof dp);
dp[][W] = (apple[]-)^(W%);
for(int i=;i<T;i++)
{
//dp[i][0] = (apple[i]-1) + dp[i-1][0];
for(int w = W;w >= ; w--)
{
if(w == W) dp[i][w] = dp[i-][w] + ((apple[i]-)^(w%));
else dp[i][w] = max(dp[i-][w+] + ((apple[i]-)^((w+)%)),dp[i-][w] + ((apple[i]-)^(w%)));
ans = max(ans,dp[i][w]);
}
}
memset(dp,,sizeof dp);
dp[][W] = !((apple[]-)^(W%));
for(int i=;i<T;i++)
{
//dp[i][0] = (apple[i]-1) + dp[i-1][0];
for(int w = W;w >= ; w--)
{
if(w == W) dp[i][w] = dp[i-][w] + !((apple[i]-)^(w%));
else dp[i][w] = max(dp[i-][w+] + !((apple[i]-)^((w+)%)),dp[i-][w] + !((apple[i]-)^(w%)));
ans = max(ans,dp[i][w]);
}
}
printf("%d\n",ans);
}
}
POJ3176-基础DP的更多相关文章
- 基础dp
队友的建议,让我去学一学kuangbin的基础dp,在这里小小的整理总结一下吧. 首先我感觉自己还远远不够称为一个dp选手,一是这些题目还远不够,二是定义状态的经验不足.不过这些题目让我在一定程度上加 ...
- 基础DP(初级版)
本文主要内容为基础DP,内容来源为<算法导论>,总结不易,转载请注明出处. 后续会更新出kuanbin关于基础DP的题目...... 动态规划: 动态规划用于子问题重叠的情况,即不同的子问 ...
- hdu 5586 Sum 基础dp
Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem Desc ...
- hdu 4055 Number String (基础dp)
Number String Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- 训练指南 UVA - 10917(最短路Dijkstra + 基础DP)
layout: post title: 训练指南 UVA - 10917(最短路Dijkstra + 基础DP) author: "luowentaoaa" catalog: tr ...
- 训练指南 UVA - 11324(双连通分量 + 缩点+ 基础DP)
layout: post title: 训练指南 UVA - 11324(双连通分量 + 缩点+ 基础DP) author: "luowentaoaa" catalog: true ...
- 「kuangbin带你飞」专题十二 基础DP
layout: post title: 「kuangbin带你飞」专题十二 基础DP author: "luowentaoaa" catalog: true tags: mathj ...
- M - 基础DP
M - 基础DP Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Descriptio ...
- lightoj1004【基础DP】
从低端到顶端求个最大值: 思路: 基础DP,递推 #include<cstdio> #include<queue> #include<map> #include&l ...
- poj-3176 Cow Bowling &&poj-1163 The Triangle && hihocoder #1037 : 数字三角形 (基础dp)
经典的数塔模型. 动态转移方程: dp[i][j]=max(dp[i+1][j],dp[i+1][j+1])+p[i][j]; #include <iostream> #include ...
随机推荐
- Linux 局域网同步时间
选择一台能上外网的机器作为时间服务器(都不能上亦可以,任选一台即可,但是只能保证局域网内时间同步) 配置此时间服务器 安装 ntp 在 /etc/ntp.conf 中配置 restrict 127.0 ...
- Android ScrollView和ListView联用,且ListView可以下拉刷新和上拉加载
ScrollView嵌套listView且ListView可以实现上拉加载. 由于代码太长,在此只提供实现思路: 先不说上拉加载的事,咱们先回想一下,ScrollView和LsitView联用,时的解 ...
- 1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(方案总揽)
我的这个升级篇的代码适用于自己所有的带WIFI和GPRS模块的开发板,升级功能实质上是通过MQTT把数据发给WIFI和GPRS模块,然后模块进行保存和运行. 这个升级程序是当时自己花了两个星期的时间写 ...
- 你想要的Python面试都在这里了【315+道题】
写在前面 近日恰逢学生临近毕业,课程后期大家"期待+苦逼"的时刻莫过于每天早上内容回顾和面试题问答部分[临近毕业每天课前用40-60分钟对之前内容回顾.提问和补充,专挑班里不爱说话 ...
- Intellij实用技巧
快捷键 Tradition 快捷键 介绍 Ctrl + Z 撤销 Ctrl + Shift + Z 取消撤销 Ctrl + X 剪切 Ctrl + C 复制 Ctrl + S 保存 Tab 缩进 Sh ...
- React-引入图片的方法
方法一: import imgURL from '../../images/logo.png'; <img src={imgURL} alt="1"/> 方法二: &l ...
- Pandas简易入门(一)
目录: 读取数据 索引 选择数据 简单运算 声明,本文引用于:https://www.dataquest.io/mission/8/introduction-to-pandas (建议阅读原文) Pa ...
- Haproxy基础知识 -运维小结
开源软件负载均衡器 现在常用的三大开源软件负载均衡器分别是Nginx.LVS.Haproxy. 在之前的文章中已经对比了这三个负载均衡软件, 下面根据自己的理解和使用经验, 再简单说下这三个负载均衡软 ...
- 解决error while loading shared libraries: libXXX.so.X: cannot open shared object file: No such file
原文地址:http://blog.csdn.net/yjk13703623757/article/details/53217377 一.问题 运行hydra时,提示错误: hydra : error ...
- git使用(2)
1.远程仓库 a SSHKEY 第1步:创建SSH Key.在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到 ...