[2018CCPC吉林赛区(重现赛)- 感谢北华大学] 补题记录 躁起来
1007 High Priestess
埃及分数
1008 Lovers
线段树维护取膜意义下的区间s和。
每个区间保存前缀lazy和后缀lazy。
#include <iostream>
using namespace std;
#define pb push_back
#define fi first
#define se second
#define debug(x) cerr<<#x << " := " << x << endl;
#define bug cerr<<"-----------------------"<<endl;
#define FOR(a, b, c) for(int a = b; a <= c; ++ a) typedef long long ll;
typedef long double ld;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll; template<class T> void _R(T &x) { cin >> x; }
void _R(int &x) { scanf("%d", &x); }
void _R(ll &x) { scanf("%lld", &x); }
void _R(double &x) { scanf("%lf", &x); }
void _R(char &x) { scanf(" %c", &x); }
void _R(char *x) { scanf("%s", x); }
void R() {}
template<class T, class... U> void R(T &head, U &... tail) { _R(head); R(tail...); } template<typename T>
inline T read(T&x){
x=;int f=;char ch=getchar();
while (ch<''||ch>'') f|=(ch=='-'),ch=getchar();
while (ch>=''&&ch<='') x=x*+ch-'',ch=getchar();
return x=f?-x:x;
} const int inf = 0x3f3f3f3f; const int mod = 1e9+; /**********showtime************/
const int maxn = 1e5+;
ll sum[maxn<<];
ll lazylen[maxn<<],lazyback[maxn<<],lazypre[maxn<<];
ll sumten[maxn<<];
char str[]; void build(int le, int ri, int rt) {
sum[rt] = ;
lazylen[rt] = lazyback[rt] = lazypre[rt] = ;
sumten[rt] = ;
if(le == ri) {
return;
}
int mid = (le + ri) >> ;
build(le, mid, rt<<);
build(mid+, ri, rt<<|);
sumten[rt] = sumten[rt<<] + sumten[rt<<|];
} ll ten[maxn];
void pushdown(int le, int ri, int rt){
int mid = (le + ri) >> ;
sumten[rt<<] = ten[lazylen[rt]] * sumten[rt<<]%mod;
sum[rt<<] = ((sum[rt<<]*ten[lazylen[rt]]%mod + sumten[rt<<]*lazypre[rt]%mod )%mod+ 1ll*(mid-le+)*lazyback[rt] % mod)%mod;
sumten[rt<<] = ten[lazylen[rt]] * sumten[rt<<]%mod; sumten[rt<<|] = ten[lazylen[rt]]*sumten[rt<<|]%mod;
sum[rt<<|] = ((sum[rt<<|]*ten[lazylen[rt]]%mod + sumten[rt<<|]*lazypre[rt]%mod )%mod+ 1ll*(ri-mid)*lazyback[rt] % mod)%mod;
sumten[rt<<|] = ten[lazylen[rt]]*sumten[rt<<|]%mod; lazypre[rt<<] = (lazypre[rt] * ten[lazylen[rt<<]]%mod + lazypre[rt<<] )% mod;
lazyback[rt<<] = ((lazyback[rt<<] * ten[lazylen[rt]])%mod + lazyback[rt]) % mod;
lazylen[rt<<] = lazylen[rt<<] + lazylen[rt]; lazypre[rt<<|] = (lazypre[rt] * ten[lazylen[rt<<|]]%mod + lazypre[rt<<|])% mod;
lazyback[rt<<|] = (lazyback[rt<<|] * ten[lazylen[rt]]%mod + lazyback[rt]) % mod;
lazylen[rt<<|] = lazylen[rt<<|] + lazylen[rt]; lazylen[rt] = ;
lazyback[rt] = ;
lazypre[rt] = ;
} void pushup(int rt) {
sum[rt] = (sum[rt<<] + sum[rt<<|])%mod;
sumten[rt] = (sumten[rt<<] + sumten[rt<<|]) % mod;
} void update(int L, int R, int b, int le, int ri, int rt) {
if(le >= L && ri <= R) {
sumten[rt] = 1ll**sumten[rt]%mod;
sum[rt] = ((1ll*sum[rt]*%mod + 1ll*sumten[rt]*b%mod )%mod + 1ll*(ri-le+)*b % mod)%mod;
sumten[rt] = 1ll**sumten[rt]%mod; lazypre[rt] = (1ll* b * ten[lazylen[rt]]%mod + lazypre[rt]) % mod;
lazyback[rt] = (1ll*lazyback[rt] * %mod + b)%mod;
lazylen[rt]++;
return;
}
if(lazylen[rt]) pushdown(le, ri, rt);
int mid = (le + ri) >> ;
if(mid >= L) update(L, R, b, le, mid, rt<<);
if(mid < R) update(L, R, b, mid+, ri, rt<<|);
pushup(rt);
} ll query(int L, int R, int le, int ri, int rt) {
if(le >= L && ri <= R) {
return sum[rt];
}
if(lazylen[rt]) pushdown(le, ri, rt);
int mid = (le + ri) >> ;
ll res = ;
if(mid >= L) res = (res + query(L, R, le, mid, rt<<) )% mod;
if(mid < R) res = (res + query(L, R, mid+, ri, rt<<|)) % mod;
pushup(rt);
return res;
}
int main(){
// freopen("data.in", "r", stdin);
ten[] = ;
for(int i=; i<maxn; i++) ten[i] = ten[i-] * % mod;
int T; scanf("%d", &T);
int cas = ;
while(T--) {
int n,m;
scanf("%d%d", &n, &m);
build(, n, );
printf("Case %d:\n", ++cas);
while(m--) {
scanf("%s", str);
if(str[] == 'w') {
int le, ri, b;
scanf("%d%d%d", &le, &ri, &b);
update(le, ri, b, , n, );
}
else {
int le, ri;
scanf("%d%d", &le, &ri);
printf("%lld\n", query(le, ri, , n , ));
}
}
}
return ;
}
1010 Wheel of Fortune
匹配次数最多的颜色数量不超过 ⌊n⌋。 2
1011 The Magician
1012 The Hanged Man
[2018CCPC吉林赛区(重现赛)- 感谢北华大学] 补题记录 躁起来的更多相关文章
- 2018CCPC吉林赛区 hdu6555~hdu6566
2018CCPC吉林赛区(重现赛)- 感谢北华大学 A 基础数论. #include<bits/stdc++.h> using namespace std; typedef long lo ...
- 2018CCPC吉林赛区 | 部分题解 (HDU6555 HDU6556 HDU6559 HDU6561)
// 杭电上的重现赛:http://acm.hdu.edu.cn/contests/contest_show.php?cid=867 // 杭电6555~6566可交题 A - The Fool 题目 ...
- 【cf补题记录】Codeforces Round #608 (Div. 2)
比赛传送门 再次改下写博客的格式,以锻炼自己码字能力 A. Suits 题意:有四种材料,第一套西装需要 \(a\).\(d\) 各一件,卖 \(e\) 块:第二套西装需要 \(b\).\(c\).\ ...
- 【cf补题记录】Codeforces Round #607 (Div. 2)
比赛传送门 这里推荐一位dalao的博客-- https://www.cnblogs.com/KisekiPurin2019/ A:字符串 B:贪心 A // https://codeforces.c ...
- 【补题记录】ZJU-ICPC Summer Training 2020 部分补题记录
补题地址:https://zjusummer.contest.codeforces.com/ Contents ZJU-ICPC Summer 2020 Contest 1 by Group A Pr ...
- 【JOISC 2020 补题记录】
目录 Day 1 Building 4 Hamburg Steak Sweeping Day 2 Chameleon's Love Making Friends on Joitter is Fun R ...
- 2018CCPC吉林赛区(重现赛)
http://acm.hdu.edu.cn/contests/contest_show.php?cid=867 A题,直接分块,不知道正解是什么. #include<bits/stdc++.h& ...
- 2018CCPC吉林赛区(重现赛)部分题解
The Fool 题目链接 Problem Description The Fool is numbered 0 – the number of unlimited potential –and th ...
- 2018CCPC吉林赛区
传送门 A - The Fool 整除分块即可. B - The World 模拟即可. C - Justice 题意: 给出\(n\)个数\(k_i\),每个数的权值为\(\frac{1}{2^{k ...
随机推荐
- 05-k8s调度器、预选策略、优选函数
目录 k8s调度器.预选策略.优选函数 节点选择过程 调度器 预选策略 优选函数 高级调度设置机制 node选择器/node亲和调度 pod亲和性 污点调度 Taints 与 Tolerations ...
- Android Studio 制作简单的App欢迎页面——基于Android 6.0
在许多的Android App中,我们点击进入时,都可以看到一个欢迎页面,大概持续了几秒,然后跳转至主页面.以下是我开发过程中总结出的一些方法和例子. 一.创建一个新的Activity 首先,新建了一 ...
- IDEA 控制台输出日志无法grep
不知从何时开始,我的IDEA控制台无法直接使用Grep插件来过滤输出日志了,这个插件真的挺好用的,不知道是升级后造成的还是我自己设置错误,反正在控制台右键无法打开grep来过滤: 在我开发过程中需要这 ...
- 检测人脸及眼睛【OpenCV-Python实现 源码+打包.exe文件】
之前用opencv做的一个人脸及双眼检测,在此分享给大家 链接:https://pan.baidu.com/s/1BsKBH3wOF9TmdbRlPagEVQ 提取码:cqkv 效果如下:
- go 学习之路(三)
一.strings和strconv使用 1.strings.HasPrefix(s string,prefix string) bool :判断字符串s是否以prefix开头 2.stings.Has ...
- 【JDK】JDK源码分析-CountDownLatch
概述 CountDownLatch 是并发包中的一个工具类,它的典型应用场景为:一个线程等待几个线程执行,待这几个线程结束后,该线程再继续执行. 简单起见,可以把它理解为一个倒数的计数器:初始值为线程 ...
- [Short-Circuit Constraint Violation]警告解决办法
今天用Altium Designer16画PCB时候遇到一个问题,进行DRC检测,警告如下: [Short-Circuit Constraint Violation] GrayscaleSensor1 ...
- oracle 创建表空间,用户并授权
1. 查看所有表空间及存储路径 select file_name, tablespace_name from dba_data_files; 2. 创建表空间 CREATE TABLESPACE xs ...
- spark学习(10)-RDD的介绍和常用算子
RDD(弹性分布式数据集,里面并不存储真正要计算的数据,你对RDD的操作,他会在Driver端转换成Task,下发到Executor计算分散在多台集群上的数据) RDD是一个代理,你对代理进行操作,他 ...
- 想转行大数据,开始学习 Hadoop?
学习大数据首先要了解大数据的学习路线,首先搞清楚先学什么,再学什么,大的学习框架知道了,剩下的就是一步一个脚印踏踏实实从最基础的开始学起. 这里给大家普及一下学习路线:hadoop生态圈——Strom ...