there

#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <queue>
#include <map>
using namespace std;
typedef long long ll;
typedef pair<int,int> par;
int n, m, mc, maxDay, maxLife, a[105], b[105], dp[105][105], c[105], cnt;
map<par,bool> mp;
par q[5000005];
struct Node{
int x, y, z;
};
queue<Node> d;
void bfs(){
d.push((Node){1, 1, 0});//用一天能打出来1的成绩。如果不打,那等级就是0
while(!d.empty()){
Node x=d.front();
d.pop();
if(x.x<maxDay){
d.push((Node){x.x+1, x.y, x.z+1});
if(x.z>1 && (ll)x.y*x.z<=maxLife && !mp.count(make_pair(x.y*x.z, x.z))){
Node t=(Node){x.x+1, x.y*x.z, x.z};
q[++cnt] = make_pair(t.y, t.x);
mp[make_pair(t.y, t.z)] = true;
d.push(t);
}
}
}
}
int main(){
cin>>n>>m>>mc;
for(int i=1; i<=n; i++)
scanf("%d", &a[i]);
for(int i=1; i<=n; i++)
scanf("%d", &b[i]);
for(int i=1; i<=m; i++){
scanf("%d", &c[i]);
maxLife = max(maxLife, c[i]);
}
memset(dp, 0xcf, sizeof(dp));
dp[0][mc] = 0;
for(int i=1; i<=n; i++)
for(int j=0; j<=mc-a[i]; j++){
dp[i][j] = max(dp[i-1][j+a[i]]+1, dp[i][j]);
dp[i][min(j+b[i], mc)] = max(dp[i-1][j+a[i]], dp[i][min(j+b[i], mc)]);
}
for(int i=1; i<=n; i++)
for(int j=0; j<=mc; j++)
maxDay = max(maxDay, dp[i][j]);
bfs();
sort(q+1, q+1+cnt);
for(int i=1; i<=m; i++){
if(c[i]<=maxDay){
printf("1\n");
continue;
}
// cout<<"FaQ\n";
int j=1, maxn=-0x3f3f3f3f;
bool flag=false;
for(int k=cnt; k>=1; k--){
while(j<=cnt && q[k].first+q[j].first<=c[i]){
maxn = max(maxn, q[j].first-q[j].second);
j++;
}
if(maxn+maxDay+q[k].first-q[k].second>=c[i]){
flag = true;
break;
}
if(q[k].first<=c[i] && maxDay-q[k].second+q[k].first>=c[i]){
flag = true;
break;
}
}
if(flag) printf("1\n");
else printf("0\n");
}
return 0;
}

loj2021 「HNOI2017」大佬的更多相关文章

  1. loj #2021. 「AHOI / HNOI2017」大佬

    #2021. 「AHOI / HNOI2017」大佬   题目描述 人们总是难免会碰到大佬.他们趾高气昂地谈论凡人不能理解的算法和数据结构,走到任何一个地方,大佬的气场就能让周围的人吓得瑟瑟发抖,不敢 ...

  2. AC日记——「HNOI2017」礼物 LiBreOJ 2020

    #2020. 「HNOI2017」礼物 思路: A题进程: 一眼出式子->各种超时过不去->看题解明白还有fft这个东西->百度文库学习fft->学习dft->学习fft ...

  3. AC日记——「HNOI2017」单旋 LiBreOJ 2018

    #2018. 「HNOI2017」单旋 思路: set+线段树: 代码: #include <bits/stdc++.h> using namespace std; #define max ...

  4. loj2020 「HNOI2017」礼物

    所有的下标从 \(0\) 开始. 考虑枚举 \(C\) (第一个加上负的等于第二个加上其绝对值)和第二个手链的偏移量 \(p\).答案就是 \[\sum_{i=0}^{n-1}(x_i+C-y_{(i ...

  5. loj#2020 「AHOI / HNOI2017」礼物 ntt

    loj#2020 「AHOI / HNOI2017」礼物 链接 bzoj没\(letex\),差评 loj luogu 思路 最小化\(\sum\limits_1^n(a_i-b_i)^2\) 设改变 ...

  6. 「AHOI / HNOI2017」单旋

    「AHOI / HNOI2017」单旋 题目链接 H 国是一个热爱写代码的国家,那里的人们很小去学校学习写各种各样的数据结构.伸展树(splay)是一种数据结构,因为代码好写,功能多,效率高,掌握这种 ...

  7. 「AHOI / HNOI2017」影魔

    「AHOI / HNOI2017」影魔 题目描述 解决这类比较复杂的区间贡献问题关键在于找到计算的对象. 比如这道题,我们计算的对象就是区间中间的最大值. 对于点\(i\),我们找到左边第一个比他大的 ...

  8. loj #2023. 「AHOI / HNOI2017」抛硬币

    #2023. 「AHOI / HNOI2017」抛硬币   题目描述 小 A 和小 B 是一对好朋友,他们经常一起愉快的玩耍.最近小 B 沉迷于**师手游,天天刷本,根本无心搞学习.但是已经入坑了几个 ...

  9. [LOJ 2022]「AHOI / HNOI2017」队长快跑

    [LOJ 2022]「AHOI / HNOI2017」队长快跑 链接 链接 题解 不难看出,除了影响到起点和终点的射线以外,射线的角度没有意义,因为如果一定要从该射线的射出一侧过去,必然会撞到射线 因 ...

随机推荐

  1. Minor GC ,Full GC 触发条件

    Minor GC ,Full GC 触发条件 Minor GC触发条件:当Eden区满时,触发Minor GC. Full GC触发条件: (1)调用System.gc时,系统建议执行Full GC, ...

  2. swift 监听键盘弹出的高度

    // 监听键盘通知 NotificationCenter.default.addObserver(self, selector: #selector(ComposeViewController.key ...

  3. Java并发(二):基础概念

    并发编程的第二部分,先来谈谈发布(Publish)与逸出(Escape); 发布是指:对象能够在当前作用域之外的代码中使用,例如:将对象的引用传递到其他类的方法中,对象的引用保存在其他类可以访问的地方 ...

  4. springboot使用过滤器和拦截器

    1.Filter过滤器 @Componentpublic class AuthFilter implements Filter { private static final Log log = Log ...

  5. There is much opportunity for anyone willing to dedicate himself to his labors.

    There is much opportunity for anyone willing to dedicate himself to his labors.付出努力的人才有机会出人头地.

  6. elasticsearch查询方式

    1.query string a).GET /index/type/_search ===>>查询所有 b).GET /index/type/_search?q=filed:value&a ...

  7. js 获取当前年月日时分秒星期

    $("#aa").click(function () { var date = new Date(); this.year = date.getFullYear(); this.m ...

  8. ubuntu下安装eclipse<转>

    转载自http://my.oschina.net/u/1407116/blog/227084      http://my.oschina.net/u/1407116/blog/227087 一 JD ...

  9. 【转】Java8学习笔记(1) -- 从函数式接口说起

    http://blog.csdn.net/zxhoo/article/details/38349011 函数式接口 理解Functional Interface(函数式接口,以下简称FI)是学习Jav ...

  10. Python 生成器和协程

    Python3 迭代器与生成器 迭代器 迭代是Python最强大的功能之一,是访问集合元素的一种方式. 迭代器是一个可以记住遍历的位置的对象. 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访 ...