Codeforces 1062C Banh-mi题解
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题解相关推荐
- Codeforces1600数学day5[找规律CodeForces - 1059C,贪心数学A - Banh-mi CodeForces - 1062C ]
A - Banh-mi CodeForces - 1062C 题目大意:就是开始给你一个01序列,和q次询问,每次询问会给你一个区间,每次你会从这个区间内拿出一个数,在区间内的其他未被拿走的数字会加上 ...
- codeforces div2 Not Assigning 题解
codeforces div2 Not Assigning 题解 原题链接 /* 题意:构造一棵素数树.素数树定义如下: 这颗树中任意一条边 or 任意两条边 权重之和为素数,每条边的权重自己分配. ...
- Codeforces Round#713 A-E题解
Codeforces Round 713 经典暴力模拟掉分场 本场链接: https://codeforces.com/contest/1512 个人博客の极致色彩简洁版题解: http://www. ...
- 【codeforces】【比赛题解】#940 CF Round #466 (Div. 2)
人生的大起大落莫过如此,下一场我一定要回紫. [A]Points on the line 题意: 一个直线上有\(n\)个点,要求去掉最少的点,使得最远两点距离不超过\(d\). 题解: 暴力两重fo ...
- Codeforces Good Bye 2016 题解
好久没有fst题了...比赛先A了前4题然后发现room里有人已经X完题了没办法只能去打E题,结果差一点点打完...然后C题fst掉了结果就掉rating 了...下面放题解 A. New Year ...
- 【codeforces】【比赛题解】#849 CF Round #431 (Div.2)
cf的比赛越来越有难度了--至少我做起来是这样. 先看看题目吧:点我. 这次比赛是北京时间21:35开始的,算是比较良心. [A]奇数与结束 "奇数从哪里开始,又在哪里结束?梦想从何处起航, ...
- 【CodeForces - 1062C】Banh-mi (贪心,数学,找规律,快速幂)
题干: JATC loves Banh-mi (a Vietnamese food). His affection for Banh-mi is so much that he always has ...
- 【codeforces】【比赛题解】#872 CF Round #440 (Div.2)
链接. [A]寻找漂亮数字 题意: 给定了两列非零数字. 我们说一个数是漂亮的,当它的十进制表达中有至少一个数从数列一中取出,至少有一个数从数列二中取出. 最小的漂亮数字是多少? 输入: 第一行两个数 ...
- 【codeforces】【比赛题解】#950 CF Round #469 (Div. 2)
剧毒比赛,至少涨了分对吧.: ( [A]Left-handers, Right-handers and Ambidexters 题意: 有\(l\)个右撇子,\(r\)个左撇子,\(a\)个双手都惯用 ...
- 【codeforces】【比赛题解】#937 CF Round #467 (Div. 2)
没有参加,但是之后几天打了哦,第三场AK的CF比赛. CF大扫荡计划正在稳步进行. [A]Olympiad 题意: 给\(n\)个人颁奖,要满足: 至少有一个人拿奖. 如果得分为\(x\)的有奖,那么 ...
最新文章
- 数据库原理 - 序列5 - 事务是如何实现的? - Undo Log解析
- 【Django】创建项目及框架介绍,学习笔记(一)
- 关于armv7指令集的一个直观数据
- 【BZOJ5469】[FJOI2018]领导集团问题(动态规划,线段树合并)
- 读jQuery之二十(Deferred对象)
- TCP校验值的伪头以及校验值计算
- 纽约首次尝试在大桥上识别车内司机面孔 失败得很彻底
- C#中适当的列表支持
- deepin linux 命令行_5 个面向新手的 Linux 发行版
- [Django学习] Django基础(8)_富文本编辑器
- opencv3/C++ 机器学习-EM算法/Expectation Maximization
- lopa分析_保护层分析(LOPA)方法简介1.ppt
- 如何除去Windows的快捷方式小图标
- 采购很容易,油水又多?那你来啊
- DevOps 工程师需要必备哪些技能?
- 基于Arduino开发板的文本转语音(TTS)转换器
- Hermez官方文档翻译(四)开发者-SDK (有自己测试验证demo)
- python自定义二元一次函数_Python实现的拟合二元一次函数功能示例【基于scipy模块】...
- java闭锁_Java并发工具类(闭锁CountDownLatch)
- QMessageBox 中的 OK 按钮改为中文“确定”