there

  1. #include <algorithm>
  2. #include <iostream>
  3. #include <cstring>
  4. #include <cstdio>
  5. #include <queue>
  6. #include <map>
  7. using namespace std;
  8. typedef long long ll;
  9. typedef pair<int,int> par;
  10. int n, m, mc, maxDay, maxLife, a[105], b[105], dp[105][105], c[105], cnt;
  11. map<par,bool> mp;
  12. par q[5000005];
  13. struct Node{
  14. int x, y, z;
  15. };
  16. queue<Node> d;
  17. void bfs(){
  18. d.push((Node){1, 1, 0});//用一天能打出来1的成绩。如果不打,那等级就是0
  19. while(!d.empty()){
  20. Node x=d.front();
  21. d.pop();
  22. if(x.x<maxDay){
  23. d.push((Node){x.x+1, x.y, x.z+1});
  24. if(x.z>1 && (ll)x.y*x.z<=maxLife && !mp.count(make_pair(x.y*x.z, x.z))){
  25. Node t=(Node){x.x+1, x.y*x.z, x.z};
  26. q[++cnt] = make_pair(t.y, t.x);
  27. mp[make_pair(t.y, t.z)] = true;
  28. d.push(t);
  29. }
  30. }
  31. }
  32. }
  33. int main(){
  34. cin>>n>>m>>mc;
  35. for(int i=1; i<=n; i++)
  36. scanf("%d", &a[i]);
  37. for(int i=1; i<=n; i++)
  38. scanf("%d", &b[i]);
  39. for(int i=1; i<=m; i++){
  40. scanf("%d", &c[i]);
  41. maxLife = max(maxLife, c[i]);
  42. }
  43. memset(dp, 0xcf, sizeof(dp));
  44. dp[0][mc] = 0;
  45. for(int i=1; i<=n; i++)
  46. for(int j=0; j<=mc-a[i]; j++){
  47. dp[i][j] = max(dp[i-1][j+a[i]]+1, dp[i][j]);
  48. dp[i][min(j+b[i], mc)] = max(dp[i-1][j+a[i]], dp[i][min(j+b[i], mc)]);
  49. }
  50. for(int i=1; i<=n; i++)
  51. for(int j=0; j<=mc; j++)
  52. maxDay = max(maxDay, dp[i][j]);
  53. bfs();
  54. sort(q+1, q+1+cnt);
  55. for(int i=1; i<=m; i++){
  56. if(c[i]<=maxDay){
  57. printf("1\n");
  58. continue;
  59. }
  60. // cout<<"FaQ\n";
  61. int j=1, maxn=-0x3f3f3f3f;
  62. bool flag=false;
  63. for(int k=cnt; k>=1; k--){
  64. while(j<=cnt && q[k].first+q[j].first<=c[i]){
  65. maxn = max(maxn, q[j].first-q[j].second);
  66. j++;
  67. }
  68. if(maxn+maxDay+q[k].first-q[k].second>=c[i]){
  69. flag = true;
  70. break;
  71. }
  72. if(q[k].first<=c[i] && maxDay-q[k].second+q[k].first>=c[i]){
  73. flag = true;
  74. break;
  75. }
  76. }
  77. if(flag) printf("1\n");
  78. else printf("0\n");
  79. }
  80. return 0;
  81. }

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. java引用数据类型(类)

    1 引用数据类型分类 类的类型分两种 1)Java提供好的类,如Scanner类,Random类等,这些已存在的类中包含了很多的方法与属性,可供开发者使用.(类的变量是属性) 2)开发者自己创建的类, ...

  2. oo总结

    架构设计 第一次作业 需求分析 这次作业是针对类中的一些元素,如属性,操作,继承,实现等查询,所以这次的架构我们的第一感觉,按照正常的结构在类中存属性操作,继承的父类和实现的接口等. 具体功能 为了实 ...

  3. Map-HashMap-LinkedHashMap-Map.Entry-Collections-可变参数

    一.Map 接口(java.util) 定义:public interface Map<K,V> 介绍:     (1)Map是一个接口,含有两个泛型,创建子类对象的时候,需要传递两个泛型 ...

  4. 爬取豆瓣电影top250并存储到mysql数据库

    import requests from lxml import etree import re import pymysql import time conn= pymysql.connect(ho ...

  5. SAP ERP和C4C Account和Contact的双向同步

    Account和Contact是C4C里唯一支持可以和ERP进行双向同步的主数据类别. C4C里创建一个Account:Mouser Electronics 在C4C里保存Account,自动同步到E ...

  6. Core Data stack

    https://developer.apple.com/library/content/documentation/DataManagement/Devpedia-CoreData/coreDataS ...

  7. VPS Linux SSH 客户端断开后保持进程继续运行配置方法——screen

    前言 在Linux中,我们经常会做一些关于数据的操作(备份.传输.压缩等)或是要在后台持续的运行一些程序.由于,工作的数据量很大或者工作要持续很长的时间,我们就必须保证这个终端的启动,一旦终端关闭了, ...

  8. JS实现全排列

    https://www.jb51.net/article/39291.htm JavaScript全排列的六种算法 具体实现 算法一:交换(递归) 复制代码代码如下: <html xmlns=& ...

  9. nginx之HTTP模块配置

     listen   指令只能使用与server字段里 如果本地调用可以监听本地Unix套接字文件,性能更加,因为不用走内核网络协议栈 listen unix:/var/run/nginx.sock; ...

  10. 2018.4.19 远程服务器重装系统之后ssh无法登陆问题

    当我们重装云服务器系统的时候输入ssh连接命令(ssh dc2-user@116.85.25.15)出现一下代码 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ...