loj2021 「HNOI2017」大佬
#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」大佬的更多相关文章
- loj #2021. 「AHOI / HNOI2017」大佬
#2021. 「AHOI / HNOI2017」大佬 题目描述 人们总是难免会碰到大佬.他们趾高气昂地谈论凡人不能理解的算法和数据结构,走到任何一个地方,大佬的气场就能让周围的人吓得瑟瑟发抖,不敢 ...
- AC日记——「HNOI2017」礼物 LiBreOJ 2020
#2020. 「HNOI2017」礼物 思路: A题进程: 一眼出式子->各种超时过不去->看题解明白还有fft这个东西->百度文库学习fft->学习dft->学习fft ...
- AC日记——「HNOI2017」单旋 LiBreOJ 2018
#2018. 「HNOI2017」单旋 思路: set+线段树: 代码: #include <bits/stdc++.h> using namespace std; #define max ...
- loj2020 「HNOI2017」礼物
所有的下标从 \(0\) 开始. 考虑枚举 \(C\) (第一个加上负的等于第二个加上其绝对值)和第二个手链的偏移量 \(p\).答案就是 \[\sum_{i=0}^{n-1}(x_i+C-y_{(i ...
- loj#2020 「AHOI / HNOI2017」礼物 ntt
loj#2020 「AHOI / HNOI2017」礼物 链接 bzoj没\(letex\),差评 loj luogu 思路 最小化\(\sum\limits_1^n(a_i-b_i)^2\) 设改变 ...
- 「AHOI / HNOI2017」单旋
「AHOI / HNOI2017」单旋 题目链接 H 国是一个热爱写代码的国家,那里的人们很小去学校学习写各种各样的数据结构.伸展树(splay)是一种数据结构,因为代码好写,功能多,效率高,掌握这种 ...
- 「AHOI / HNOI2017」影魔
「AHOI / HNOI2017」影魔 题目描述 解决这类比较复杂的区间贡献问题关键在于找到计算的对象. 比如这道题,我们计算的对象就是区间中间的最大值. 对于点\(i\),我们找到左边第一个比他大的 ...
- loj #2023. 「AHOI / HNOI2017」抛硬币
#2023. 「AHOI / HNOI2017」抛硬币 题目描述 小 A 和小 B 是一对好朋友,他们经常一起愉快的玩耍.最近小 B 沉迷于**师手游,天天刷本,根本无心搞学习.但是已经入坑了几个 ...
- [LOJ 2022]「AHOI / HNOI2017」队长快跑
[LOJ 2022]「AHOI / HNOI2017」队长快跑 链接 链接 题解 不难看出,除了影响到起点和终点的射线以外,射线的角度没有意义,因为如果一定要从该射线的射出一侧过去,必然会撞到射线 因 ...
随机推荐
- 微信小程序干货
1.获取text文本框输入的信息 wxml代码 <view class="weui-cells"> <view class="weui-cell weu ...
- Wrinkles should merely indicate where smiles have been.
Wrinkles should merely indicate where smiles have been. 皱纹应该只是微笑留下的印记.
- 宿主机Windows访问虚拟机Linux文件(一)
如果用户使用windows操作系统,但是在虚拟机下配置Linux内核操作操作系统,往往需要实现通过宿主机Windows操作系统访问Linux内核操作系统中资源.本次实验实现的是宿主机windows 1 ...
- sqlserver 查询某表的所有列名
select name + ',' from syscolumns where id = object_id('SEND_TALLY') AND name <> 'PICDATAS'
- jsp之初识UserBean
package com.java.model; public class Student { private String name; private int age; public String g ...
- UVA 11214 Guarding the Chessboard 守卫棋盘(迭代加深+剪枝)
暴力,和八皇后很像,用表示i+j和i-j标记主对角线,但是还是要加一些的剪枝的. 1.最裸的暴搜 6.420s,差点超时 2.之前位置放过的就没必要在放了,每次从上一次放的位置开始放 0.400s # ...
- 头文件种的ifndef/define/endif 是干什么用的
头文件种的ifndef/define/endif 是干什么用的? 答:防止头文件被重复包含.
- java基础—对象转型
一.对象转型介绍 对象转型分为两种:一种叫向上转型(父类对象的引用或者叫基类对象的引用指向子类对象,这就是向上转型),另一种叫向下转型.转型的意思是:如把float类型转成int类型,把double类 ...
- Java第十二次作业:继承与抽象类解决工人与学生的问题,抽象类实例。抽象类作用——为多态创造了可能。抽象类的作用总结
继承与抽象类解决工人与学生的问题 抽象类实例 package com.swift; public abstract class Person { private String name; privat ...
- (转发)IOS高级开发~Runtime(三)
11.系统类的方法实现部分替换 - (void) methodExchange { Method m1 = class_getInstanceMethod([NSStringclass],@selec ...