题面

题解

背包细节题,wa了一片,上升的过程我们可以看做一个完全背包(多重背包好像跑不过去),下降

过程是一个0/1背包,为了避免冲突应该先跑多重,先跑0/1就有可能产生这个点又上升又下降的

非法情况,最后在将非法情况删去。

代码

#include<bits/stdc++.h>

using namespace std;
const int MAXM = 1005;
const int MAXN = 10005;
const int inf = 0x3f3f3f3f; inline int rd(){
int x=0,f=1;char ch=getchar();
while(ch<'0' || ch>'9') {if(ch=='-') f=-1;ch=getchar();}
while(ch>='0' && ch<='9') {x=(x<<1)+(x<<3)+ch-'0';ch=getchar();}
return x*f;
} int dp[MAXN][MAXM],px[MAXN],py[MAXN];
int n,m,k,ans=inf;
int x[MAXN],y[MAXN]; int main(){
memset(dp,0x3f,sizeof(dp));
n=rd();m=rd();k=rd();
for(register int i=1;i<=n;i++) x[i]=rd(),y[i]=rd(),py[i]=inf;
for(register int i=1;i<=k;i++) {
int where;where=rd();
px[where]=rd();py[where]=rd();
}
for(register int i=1;i<=m;i++) dp[0][i]=0;
for(register int i=1;i<=n;i++){
for(register int j=x[i];j<=m;j++){
if(j==m)
for(register int o=m-x[i];o<=m;o++){
dp[i][j]=min(dp[i][j],dp[i-1][o]+1);
dp[i][j]=min(dp[i][j],dp[i][o]+1);
}
dp[i][j]=min(dp[i][j],dp[i-1][j-x[i]]+1);
dp[i][j]=min(dp[i][j],dp[i][j-x[i]]+1);
}
int l=max(px[i]+1,1);int r=min(py[i]-1,m-y[i]);
for(register int j=l;j<=r;j++)
dp[i][j]=min(dp[i][j],dp[i-1][j+y[i]]);
for(register int j=px[i];j;j--) dp[i][j]=inf;
for(register int j=py[i];j<=m;j++) dp[i][j]=inf;
}
// for(register int i=1;i<=n;i++){
// cout<<i;
// for(register int j=1;j<=m;j++)
// cout<<" "<<j<<" "<<dp[i][j]<<endl;
// cout<<endl;
// }
for(register int i=1;i<=m;i++) ans=min(dp[n][i],ans);
if(ans!=inf){
puts("1");
printf("%d",ans);
}
else{
ans=0;
puts("0");
for(register int i=1;i<=n;i++){
bool flag=false;
for(register int j=1;j<=m;j++)
if(dp[i][j]!=inf){
flag=1;
if(py[i]!=inf){
ans++;
break;
}
}
if(!flag) break;
}
printf("%d",ans);
}
return 0;
}

洛谷 P1941 飞扬的小鸟 (NOIP 2014)的更多相关文章

  1. 洛谷 P1941 飞扬的小鸟

    洛谷 P1941 飞扬的小鸟 原题链接 首先吐槽几句 noip都快到了,我还不刷起联赛大水题! 题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节 ...

  2. Codevs 3729==洛谷P1941 飞扬的小鸟

    P1941 飞扬的小鸟 456通过 2.4K提交 题目提供者该用户不存在 标签动态规划2014NOIp提高组 难度提高+/省选- 提交该题 讨论 题解 记录   题目描述 Flappy Bird 是一 ...

  3. [洛谷P1941] 飞扬的小鸟

    洛谷题目链接:飞扬的小鸟 题目描述 Flappy Bird是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙.如果小鸟一不小心撞到了 ...

  4. [NOIP2014] 提高组 洛谷P1941 飞扬的小鸟

    题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙.如果小鸟一不小心撞到了水管或者掉在地上的话,便 ...

  5. 洛谷P1941飞扬的小鸟——细节DP

    题目:https://www.luogu.org/problemnew/show/P1941 此题主要注意许多细节,详见代码. 代码如下: #include<iostream> #incl ...

  6. 2018.11.06 洛谷P1941 飞扬的小鸟(背包)

    传送门 上升看成完全背包. 下降看成01背包. 注意边界转移就行了. 代码: #include<bits/stdc++.h> using namespace std; inline int ...

  7. 洛谷P1941 飞扬的小鸟 [noip2014] 背包

    正解:背包 解题报告: 话说好久没做背包的题了,都有些陌生了?这几天加强基础题目多刷点儿dp和背包趴qwq 其实这题是95...然后我下了我错的那个测试点,我答案是9874正解是9875...然后读入 ...

  8. 洛谷P1941 飞扬的小鸟(背包 dp)

    题意 题目链接 Sol 很显然的dp,设\(f[i][j]\)表示第\(i\)个位置,高度为\(j\)的最小步数 向上转移的时候是完全背包 向下转移判断一下就可以 #include<bits/s ...

  9. 洛谷 P1941 飞扬的小鸟【dp】

    设f[i][j]为在坐标(i,j)时的最小点击次数,转移的话从i-1向上飞或者向下掉转移,注意转移完了之后要把管子部分赋值为inf #include<iostream> #include& ...

随机推荐

  1. Windows系统下安装MySQL 8.0.11数据库

    MySQL数据库是常用的数据库之一,而且该数据库开源免费,所以很多公司在使用.本文记录如何在Windows系统下安装MySQL数据库,本次安装的版本号为8.0.11,这个版本是当前的最新版本,据宣传, ...

  2. 转Git仓库分支(Branch)和标签(Tag)

    仓库的分支(Branch)规范,影响到每个团队的工作流的一致性:标签(Tag)便于开发团队.测 试团队和其他团队识别每个项目的版本,特别是在协同处理线上问题的时候,大家可以非常清楚 地知道线上运行版本 ...

  3. Flutter 集成到现有iOS工程

    前沿 由于我司已经有自己的App,flutter属于技术引进的一部分,也不太可能重新启动一个项目,因此目前我们是将flutter模块形式注入我们的App之中.即:将flutter模块集成到现在有iOS ...

  4. 关于VSCode的一些常用插件和一些常用设置

    常用插件: .Beautify :格式化 html ,js,css .Bracket Pair Colorizer :给括号加上不同的颜色,便于区分不同的区块,使用者可以定义不同括号类型和不同颜色 . ...

  5. 火狐浏览器缓存导致JS已经改变的ID没改变

    问题主要就是火狐浏览器缓存. 比如,自己写一个JS,如下: $(document).ready(function () { $("#bigRoom").live("cli ...

  6. Android开发 string.xml资源添加参数

    挖坑:参考:https://www.cnblogs.com/leelugen/p/6685905.html

  7. postman连接不了localhost问题解决

    学习搭建服务器可用postman 连接不了localhost的端口 网上好多教程是这样连接 看完视频后我们是这样 找了大量资料都解决不了,什么版本,什么证书的都不好使,最简单的就是去掉http:// ...

  8. Linux下screen的应用

    在linux系统下,通常我们在执行一些运行时间比较长的任务时,放到后台执行或者使用screen和nohup都是不错的选择,因为任务执行的时间太长了,必须等待它执行完毕,在此期间可不能关掉窗口或者断开连 ...

  9. log4j2 按日期分割,自动清理历史文件

    方式一:定义CronTriggeringPolicy <?xml version="1.0" encoding="UTF-8"?> <Conf ...

  10. [JZOJ3692] 【SRM 611】ElephantDrinking

    题目 题目大意 我真的不知道怎么用简短的语言表述出来-- 直接看题目吧-- 正解 假设只有左边和上边延伸过来的,那似乎很好办:设\(f_{i,j}\)表示左上方到\((i,j)\)所形成的矩形中,如果 ...