初见安~这里是传送门:洛谷P3293 [SCOI2016]美味

题解

首先看到有两层限制:区间[l, r]以及要异或值最大。很显然把区间限制转化到时间限制,建可持久化数据结构

每道菜对不同的人有不同的美味值。菜j对顾客i的美味值为,其中 i 我们视作已知表示阶段【第i个人】,那么唯一未知的就是。也就是说我们可以倒着推——枚举答案数位,看当前这一位能不能取1,也就是看是否存在使得满足前面的高位最优的情况下让当前这一位也最优。对于这一问题,我们完全可以建可持久化01trie来解决,查找当前这一位是否可以是我们倒推出来的数。【可惜做的时候太菜了,写的主席树】但也可以建一棵可持久化权值线段树,也就是主席树。若确定了所求的这前i位,那就可以确定所求的范围。查找范围内是否有这个数即可。

代码为主席树写法,

#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<queue>
#define maxn 200005
using namespace std;
typedef long long ll;
const int INF = 1e5;
int read() {int x = 0, f = 1, ch = getchar();while(!isdigit(ch)) {if(ch == '-') f = -1; ch = getchar();}while(isdigit(ch)) x = (x << 1) + (x << 3) + ch - '0', ch = getchar();return x * f;
}int n, m, a[maxn];
int root[maxn], tot = 0;
struct SegmentTree {int l, r, cnt;
}t[maxn << 5];int insert(int now, int l, int r, int x) {register int p = ++tot, mid = l + r >> 1;t[p] = t[now];if(l == r) {t[p].cnt++; return p;}if(x <= mid) t[p].l = insert(t[now].l, l, mid, x);else t[p].r = insert(t[now].r, mid + 1, r, x);t[p].cnt = t[t[p].l].cnt + t[t[p].r].cnt;return p;
}int ask(int p, int q, int l, int r, int ls, int rs) {//l,r同时下传if(ls > rs) return 0;if(ls <= l && r <= rs) return t[q].cnt - t[p].cnt;//差分register int mid = l + r >> 1, res = 0;if(ls <= mid) res += ask(t[p].l, t[q].l, l, mid, ls, rs);if(rs > mid) res += ask(t[p].r, t[q].r, mid + 1, r, ls, rs);return res;
}signed main() {n = read(), m = read(); root[0] = 0;for(int i = 1; i <= n; i++) a[i] = read(), root[i] = insert(root[i - 1], 0, INF, a[i]);register int b, x, l, r, ans;for(int i = 1; i <= m; i++) {b = read(), x = read(), l = read(), r = read();ans = 0;for(int j = 17; j >= 0; j--) {//枚举每一位register int tmp = ans + ((1 ^ (b >> j & 1)) << j);//tmp是期望达到的数if(ask(root[l - 1], root[r], 0, INF, max(0, tmp - x), min(INF, tmp + (1 << j) - 1 - x))) ans = tmp;else ans += (b >> j & 1) << j;//反之就老实加上这一部分。}printf("%d\n", ans ^ b);}
}

迎评:)
——End——

洛谷·[SCOI2016]美味相关推荐

  1. [洛谷P3292] [SCOI2016]幸运数字

    洛谷题目链接:[SCOI2016]幸运数字 题目描述 A 国共有 n 座城市,这些城市由 n-1 条道路相连,使得任意两座城市可以互达,且路径唯一.每座城市都有一个幸运数字,以纪念碑的形式矗立在这座城 ...

  2. BZOJ4571:[SCOI2016]美味——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=4571 https://www.luogu.org/problemnew/show/P3293 一家 ...

  3. Corn fields(玉米田)状压dp入门第一题 洛谷P1879 poj3254

    题目描述 Farmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ M ≤ 12; 1 ≤ N ...

  4. 洛谷-题解 P2672 【推销员】

    独门思路!链表加优先队列! 这题一望,贪心是跑不掉了,但是我贪心并不好,所以想到了一个复杂一些但思路更保稳的做法 思路: 1 因为是离线操作,所以我们可以倒着求,先求x=n的情况,因为那样直接就知道了 ...

  5. 洛谷 P1142 轰炸

    洛谷 P1142 轰炸 题目描述 "我该怎么办?"飞行员klux向你求助. 事实上,klux面对的是一个很简单的问题,但是他实在太菜了. klux要想轰炸某个区域内的一些地方,它们 ...

  6. 洛谷 P1387 最大正方形

    P1387 最大正方形 题目描述 在一个n*m的只包含0和1的矩阵里找出一个不包含0的最大正方形,输出边长. 输入输出格式 输入格式: 输入文件第一行为两个整数n,m(1<=n,m<=10 ...

  7. 洛谷P2763 试题库问题

    题目:https://www.luogu.org/problemnew/show/P2763 题目描述 «问题描述: 假设一个试题库中有n道试题.每道试题都标明了所属类别.同一道题可能有多个类别属性. ...

  8. 动态规划——洛谷_P1057传球游戏

    题目: 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏.游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球, ...

  9. 洛谷P1417 烹调方案

    洛谷P1417 烹调方案 如果是一般的01背包的话 选的先后是没关系的 但是这题选的先后是有关系的,因为他的价值是随着时间而变化的, 而你的01背包是做不到先选2再选1的 那么我们就跟国王游戏一样 用 ...

最新文章

  1. java目录更改当前_Java-MVC:查看目录更改的最佳方法
  2. 把整个DIV变成超链接
  3. 数学建模模型概述框架
  4. Linux执行yum不显示时间图形,Linux停的yum命令详解(朝花夕拾)
  5. 服务器自检后显示scsi,请问一下,如何检测SCSI +RAID 5设置是否正确??
  6. c/s项目记住账号密码功能
  7. .net 垃圾回收机制
  8. seo超强外部链接、内部链接技巧
  9. 转载一个不错的LRU cache
  10. MangoTrainingCourse课程hands-on lab-1
  11. matlab csapi代码,【matlab】樣條函數:csapi、spap2和augknt的使用
  12. oracle退出scott_Oracle_11g中解决被锁定的scott用户的方法(转载)
  13. 数字信号处理--7.5--FIR数字滤波器
  14. WPF 框架prism代码笔记
  15. TeamViewer在windows2003上如何免费使用
  16. hdu2154跳舞毯(dp)
  17. 2.CPU体系架构-寄存器
  18. 二分查找算法+代码(通俗易懂简洁扼要)
  19. 雅虎将收购什么类型公司?梅耶尔:移动!移动!移动!
  20. python中if in是什么意思_if语句中“ in”的使用和含义?

热门文章

  1. 输出Unicode码中的汉字
  2. 关于“用msconfig修改‘启动cpu核心数’最后开不了机?”问题的补充。
  3. Go语言实现结构型模式之一,代理模式
  4. PTA 用java编写 7-5 游戏角色选择
  5. OneNote复制内容 粘贴变成图片解决方案 Ditto教程
  6. 二季度电商业务增幅97%,沃尔玛正面“叫板”亚马逊?
  7. Linux笔记 No.20---(进程管理工具:ps、pstree、top、pgrep、kill、killall、pkill、查看系统资源的使用vmstat)
  8. 2019年LOL服务器维护,2019赛季季前赛公告
  9. 你需要知道的企业网页制作流程
  10. 公司企业搭建网站需要哪些步骤?