被一道简单BFS坑了这么长时间我也是hhh了

//By SiriusRen
#include <bits/stdc++.h>
using namespace std;
struct Node{int d,x,l;Node(int D=,int X=,int L=):d(D),x(X),l(L){}};
int n,m,mc,xx,a[],w[],maxx,f[][],top;
set<int>s[];pair<int,int>p[];
void BFS(){
queue<Node>q;q.push(Node(,,));
while(!q.empty()){
Node t=q.front();q.pop();
if(t.d<maxx){
q.push(Node(t.d+,t.x,t.l+));
if(t.l>&&t.x<=/t.l&&s[t.l].find(t.x*t.l)==s[t.l].end())
p[++top]=make_pair(t.x*t.l,t.d+),
s[t.l].insert(t.x*t.l),
q.push(Node(t.d+,t.x*t.l,t.l));
}
}
}
int main(){
memset(f,0xcf,sizeof(f));
scanf("%d%d%d",&n,&m,&mc),f[][mc]=;
for(int i=;i<=n;i++)scanf("%d",&a[i]);
for(int i=;i<=n;i++)scanf("%d",&w[i]);
for(int i=;i<n;i++)
for(int j=;j<=mc;j++){
if(j-a[i+]>=)
f[i+][j-a[i+]]=max(f[i+][j-a[i+]],f[i][j]+),
f[i+][min(mc,j-a[i+]+w[i+])]=max(f[i+][min(mc,j-a[i+]+w[i+])],f[i][j]);
maxx=max(maxx,f[i][j]);
}
BFS(),sort(p+,p++top);
for(int i=;i<=m;i++){
scanf("%d",&xx);
int mn=0x3f3f3f3f;
if(xx<=maxx){puts("");goto ed2;}
for(int j=top,k=;j;--j)
{
while(k<top&&p[k+].first+p[j].first<=xx) ++k,mn=min(mn,p[k].second-p[k].first);
if(mn+p[j].second-p[j].first+xx<=maxx){puts("");goto ed2;}
if(p[j].first<=xx&&p[j].second+xx-p[j].first<=maxx){puts("");goto ed2;}
}
puts("");
ed2:;
}
}

BZOJ 4828 DP+BFS的更多相关文章

  1. hdu 3247 AC自动+状压dp+bfs处理

    Resource Archiver Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 100000/100000 K (Java/Ot ...

  2. 洛谷P3724 大佬 [AH2017/HNOI2017] dp+bfs

    正解:dp+bfs 解题报告: 传送门! 这题看起来很复杂的样子其实真的很复杂 但是仔细看一下题目,会发现其实操作只有两个目的嘛,一个是保证自己不死,一个是让对手减血 而且保证自己不死只有一种操作 而 ...

  3. bzoj 3622 DP + 容斥

    LINK 题意:给出n,k,有a,b两种值,a和b间互相配对,求$a>b$的配对组数-b>a的配对组数恰好等于k的情况有多少种. 思路:粗看会想这是道容斥组合题,但关键在于如何得到每个a[ ...

  4. BZOJ_3049_[Usaco2013 Jan]Island Travels _状压DP+BFS

    BZOJ_3049_[Usaco2013 Jan]Island Travels _状压DP+BFS Description Farmer John has taken the cows to a va ...

  5. BZOJ_1415_[Noi2005]聪聪和可可_概率DP+bfs

    BZOJ_1415_[Noi2005]聪聪和可可_概率DP+bfs Description Input 数据的第1行为两个整数N和E,以空格分隔,分别表示森林中的景点数和连接相邻景点的路的条数. 第2 ...

  6. 【BZOJ】1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛(dp/-bfs)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1616 我觉得bfs是可过的,但是交bfs上去是wa? 然后没办法看dp,原来这bfs能和dp联系在一 ...

  7. bzoj 1415: [Noi2005]聪聪和可可【期望dp+bfs】

    因为边权为1所以a直接bfs瞎搞就行--我一开始竟然写了个spfa #include<iostream> #include<cstdio> #include<queue& ...

  8. Robots on a grid(DP+bfs())

    链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=25585 Current Server Time: 2013-08-27 20:42:26 Ro ...

  9. FZU 2092 收集水晶 dp+bfs

    定义dp[t][x1][y1][x2][y2]为在t时刻,人走到x1,y1,影子走到x2,y2所获得最大价值 最终就是所有的dp[max][..][..][..][..]的最大值 然后递推也很自然,枚 ...

随机推荐

  1. ubuntu 安装codeblocks13.12

    通过添加PPA的方法安装: sudo add-apt-repository ppa:pasgui/ppa sudo apt-get update sudo apt-get install codebl ...

  2. 【jenkins】UnicodeEncodeError: 'ascii' codec can't encode character

    https://stackoverflow.com/questions/6076203/how-do-you-set-the-default-encoding-in-jenkins

  3. 可以通过dict[key]获得dict[value]

    dict={key:value,key2:value2} print (dict[key] )    得到的是 dict[value] # 软文预存接口,通过key来预览未保存的软文,联查商品.kol ...

  4. LINUX-光盘

    cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force 清空一个可复写的光盘内容 mkisofs /dev/cdrom > ...

  5. 在vue中使用echars不能自适应的解决方法

    <div class="echarts"> <IEcharts :option="bar" ref="echarts"&g ...

  6. 百练4103:踩方格(DFS)

    描述 有一个方格矩阵,矩阵边界在无穷远处.我们做如下假设:a.    每走一步时,只能从当前方格移动一格,走到某个相邻的方格上:b.    走过的格子立即塌陷无法再走第二次:c.    只能向北.东. ...

  7. 解决Web部署 woff字体 404错误

    问题:刚刚在IIS上部署web项目的时候,发现浏览器总是报找不到woff字体的错误.导致浏览器加载字体报404错误. 原因:因为服务器IIS不认WOFF这个文件类型,只要在IIS上添加MIME 类型即 ...

  8. Windows窗口创建的具体步骤

    /*实现窗口创建的六步骤:第一步:创建入口函数WinMain第二步:注册窗口类第三部:实现回调函数的功能第四步:显示窗口第五步:更新窗口第六步:消息循环*/ #include "stdafx ...

  9. MYSQL中有关表的简单操作

    #创建表 CREATE TABLE table02( tid INT, tname VARCHAR(20)); #查看所有表SHOW TABLES; #查看表的结构DESC table01; #修改表 ...

  10. ssh连接断开后 shell进程退出

    问题描述:当SSH远程连接到服务器上,然后运行一个服务 ./catalina.sh start,然后把终端开闭(切断SSH连接)之后,发现该服务中断,导致网页无法访问.   解决方法:使用nohup命 ...