Codeforces 1062C Banh-mi题解

思路:
每次吃xi最大的食物每次吃x_i最大的食物 每次吃xi​最大的食物

假设初始区间内有a个1,b个0,那么先吃完所有初始美味为1的食物,得到喜悦程度为2a−1假设初始区间内有a个1,b个 0,那么先吃完所有初始美味为1的食物,得到喜悦程度为2^a-1 假设初始区间内有a个1,b个0,那么先吃完所有初始美味为1的食物,得到喜悦程度为2a−1

人后剩下的就是初始美味为0的食物,现在美味度为
2a−12^a-1 2a−1
所以吃完这些喜悦度就是
(2a−1)(2b−1)(2^a-1)(2^b-1) (2a−1)(2b−1)
然后通过前缀和求出任意区间01数目,利用快速幂求下式即可
(2a−1)2b(2^a-1)2^b (2a−1)2b

#include<cstdio>
using namespace std;
typedef long long ll;
const ll mod = 1e9 + 7;
const int maxn = 1e5 + 10;
int n, q;
char s[maxn];
int c[2][maxn];
ll fpow(ll a, ll n)
{ll res = 1, base = a % mod;while (n){if (n & 1) res *= base, res %= mod;base *= base, base %= mod;n >>= 1;}return res % mod;
}
int main(void){scanf("%d %d", &n, &q);scanf("%s", s + 1);c[0][0] = c[1][0] = 0;for (int i = 1, x; i <= n; i++){x = s[i] - '0';c[x][i] = c[x][i - 1] + 1;c[x ^ 1][i] = c[x ^ 1][i - 1];}for (int i = 1, l, r; i <= q; i++){scanf("%d %d", &l, &r);ll a = c[1][r] - c[1][l - 1], b = c[0][r] - c[0][l - 1];printf("%lld\n", (fpow(2, a + b) - fpow(2, b) + mod) % mod);}return 0;
}

Codeforces 1062C Banh-mi题解相关推荐

  1. Codeforces1600数学day5[找规律CodeForces - 1059C,贪心数学A - Banh-mi CodeForces - 1062C ]

    A - Banh-mi CodeForces - 1062C 题目大意:就是开始给你一个01序列,和q次询问,每次询问会给你一个区间,每次你会从这个区间内拿出一个数,在区间内的其他未被拿走的数字会加上 ...

  2. codeforces div2 Not Assigning 题解

    codeforces div2 Not Assigning 题解 原题链接 /* 题意:构造一棵素数树.素数树定义如下: 这颗树中任意一条边 or 任意两条边 权重之和为素数,每条边的权重自己分配. ...

  3. Codeforces Round#713 A-E题解

    Codeforces Round 713 经典暴力模拟掉分场 本场链接: https://codeforces.com/contest/1512 个人博客の极致色彩简洁版题解: http://www. ...

  4. 【codeforces】【比赛题解】#940 CF Round #466 (Div. 2)

    人生的大起大落莫过如此,下一场我一定要回紫. [A]Points on the line 题意: 一个直线上有\(n\)个点,要求去掉最少的点,使得最远两点距离不超过\(d\). 题解: 暴力两重fo ...

  5. Codeforces Good Bye 2016 题解

    好久没有fst题了...比赛先A了前4题然后发现room里有人已经X完题了没办法只能去打E题,结果差一点点打完...然后C题fst掉了结果就掉rating 了...下面放题解 A. New Year ...

  6. 【codeforces】【比赛题解】#849 CF Round #431 (Div.2)

    cf的比赛越来越有难度了--至少我做起来是这样. 先看看题目吧:点我. 这次比赛是北京时间21:35开始的,算是比较良心. [A]奇数与结束 "奇数从哪里开始,又在哪里结束?梦想从何处起航, ...

  7. 【CodeForces - 1062C】Banh-mi (贪心,数学,找规律,快速幂)

    题干: JATC loves Banh-mi (a Vietnamese food). His affection for Banh-mi is so much that he always has ...

  8. 【codeforces】【比赛题解】#872 CF Round #440 (Div.2)

    链接. [A]寻找漂亮数字 题意: 给定了两列非零数字. 我们说一个数是漂亮的,当它的十进制表达中有至少一个数从数列一中取出,至少有一个数从数列二中取出. 最小的漂亮数字是多少? 输入: 第一行两个数 ...

  9. 【codeforces】【比赛题解】#950 CF Round #469 (Div. 2)

    剧毒比赛,至少涨了分对吧.: ( [A]Left-handers, Right-handers and Ambidexters 题意: 有\(l\)个右撇子,\(r\)个左撇子,\(a\)个双手都惯用 ...

  10. 【codeforces】【比赛题解】#937 CF Round #467 (Div. 2)

    没有参加,但是之后几天打了哦,第三场AK的CF比赛. CF大扫荡计划正在稳步进行. [A]Olympiad 题意: 给\(n\)个人颁奖,要满足: 至少有一个人拿奖. 如果得分为\(x\)的有奖,那么 ...

最新文章

  1. 数据库原理 - 序列5 - 事务是如何实现的? - Undo Log解析
  2. 【Django】创建项目及框架介绍,学习笔记(一)
  3. 关于armv7指令集的一个直观数据
  4. 【BZOJ5469】[FJOI2018]领导集团问题(动态规划,线段树合并)
  5. 读jQuery之二十(Deferred对象)
  6. TCP校验值的伪头以及校验值计算
  7. 纽约首次尝试在大桥上识别车内司机面孔 失败得很彻底
  8. C#中适当的列表支持
  9. deepin linux 命令行_5 个面向新手的 Linux 发行版
  10. [Django学习] Django基础(8)_富文本编辑器
  11. opencv3/C++ 机器学习-EM算法/Expectation Maximization
  12. lopa分析_保护层分析(LOPA)方法简介1.ppt
  13. 如何除去Windows的快捷方式小图标
  14. 采购很容易,油水又多?那你来啊
  15. DevOps 工程师需要必备哪些技能?
  16. 基于Arduino开发板的文本转语音(TTS)转换器
  17. Hermez官方文档翻译(四)开发者-SDK (有自己测试验证demo)
  18. python自定义二元一次函数_Python实现的拟合二元一次函数功能示例【基于scipy模块】...
  19. java闭锁_Java并发工具类(闭锁CountDownLatch)
  20. QMessageBox 中的 OK 按钮改为中文“确定”

热门文章

  1. 吃货在东京 -- 记那段吃不饱的日子 之三 筑地的生鱼刺身
  2. 定点补码加减法运算_定点整数的加减法
  3. linux下phylip软件构建NJ树,利用phylip构建进化树详解
  4. link_path_walk()分析
  5. SpaceX星链技术取代不了5G,但会让打仗变成打游戏
  6. python初学入门————列表
  7. Golang 标准库 tips之waitgroup详解
  8. JSP--矩形(圆)面积计算器
  9. 函数发生器输出电压值会与设定值不同
  10. 卡巴斯基实验室2017年威胁预测