luogu2221 [HAOI2012]高速公路
和sdoi的相关分析很像qwq,推柿子然后线段树搞搞
#include <iostream>
#include <cstdio>
using namespace std;
typedef long long ll;
int n, m, uu, vv, ww;
ll que[3];
char ss[15];
struct SGT{
ll sum[400005][3], tag[400005];
//sum[0]: \sum w_i i, sum[1]: \sum w_i i^2, sum[2]: \sum w_i
void pushDown(int o, int l, int r, int lson, int rson, int mid){
tag[lson] += tag[o];
tag[rson] += tag[o];
sum[lson][0] += (ll)tag[o]*(mid-l+1)*(l+mid)/2;
sum[lson][1] += (ll)tag[o]*((ll)mid*(mid+1)*(2*mid+1)/6-(ll)(l-1)*l*(2*l-1)/6);
sum[lson][2] += (ll)tag[o]*(mid-l+1);
sum[rson][0] += (ll)tag[o]*(r-mid)*(mid+1+r)/2;
sum[rson][1] += (ll)tag[o]*((ll)r*(r+1)*(2*r+1)/6-(ll)mid*(mid+1)*(2*mid+1)/6);
sum[rson][2] += (ll)tag[o]*(r-mid);
tag[o] = 0;
}
void update(int o, int l, int r, int x, int y, int k){
if(l>=x && r<=y){
sum[o][0] += (ll)k*(r-l+1)*(l+r)/2;
sum[o][1] += (ll)k*((ll)r*(r+1)*(2*r+1)/6-(ll)(l-1)*l*(2*l-1)/6);
sum[o][2] += (ll)k*(r-l+1);
tag[o] += k;
}
else{
int mid=(l+r)>>1;
int lson=o<<1;
int rson=lson|1;
if(tag[o]) pushDown(o, l, r, lson, rson, mid);
if(x<=mid) update(lson, l, mid, x, y, k);
if(mid<y) update(rson, mid+1, r, x, y, k);
for(int i=0; i<3; i++)
sum[o][i] = sum[lson][i] + sum[rson][i];
}
}
void query(int o, int l, int r, int x, int y){
if(l>=x && r<=y)
for(int i=0; i<3; i++)
que[i] += sum[o][i];
else{
int mid=(l+r)>>1;
int lson=o<<1;
int rson=lson|1;
if(tag[o]) pushDown(o, l, r, lson, rson, mid);
if(x<=mid) query(lson, l, mid, x, y);
if(mid<y) query(rson, mid+1, r, x, y);
}
}
}sgt;
ll gcd(ll a, ll b){
return !b?a:gcd(b, a%b);
}
int main(){
cin>>n>>m;
while(m--){
scanf("%s", ss);
if(ss[0]=='C'){
scanf("%d %d %d", &uu, &vv, &ww);
vv--;
sgt.update(1, 1, n, uu, vv, ww);
sgt.query(1, 1, n, 1, 1);
}
else{
scanf("%d %d", &uu, &vv);
que[0] = que[1] = que[2] = 0;
ll fm=(ll)(vv-uu+1)*(vv-uu)/2;
vv--;
sgt.query(1, 1, n, uu, vv);
ll ans=(ll)(uu+vv)*que[0]-que[1]+(ll)(vv+1)*(1-uu)*que[2];
ll f=gcd(ans, fm);
printf("%lld/%lld\n", ans/f, fm/f);
}
}
return 0;
}
luogu2221 [HAOI2012]高速公路的更多相关文章
- BZOJ2752: [HAOI2012]高速公路(road)
2752: [HAOI2012]高速公路(road) Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 608 Solved: 199[Submit][ ...
- BZOJ 2752: [HAOI2012]高速公路(road)( 线段树 )
对于询问[L, R], 我们直接考虑每个p(L≤p≤R)的贡献,可以得到 然后化简一下得到 这样就可以很方便地用线段树, 维护一个p, p*vp, p*(p+1)*vp就可以了 ----------- ...
- 【线段树】BZOJ2752: [HAOI2012]高速公路(road)
2752: [HAOI2012]高速公路(road) Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 1621 Solved: 627[Submit] ...
- BZOJ 2752: [HAOI2012]高速公路(road) [线段树 期望]
2752: [HAOI2012]高速公路(road) Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 1219 Solved: 446[Submit] ...
- P2221 [HAOI2012]高速公路(线段树)
P2221 [HAOI2012]高速公路 显然答案为 $\dfrac{\sum_{i=l}^r\sum_{j=l}^{r}dis[i][j]}{C_{r-l+1}^2}$ 下面倒是挺好算,组合数瞎搞 ...
- [Luogu 2221] HAOI2012 高速公路
[Luogu 2221] HAOI2012 高速公路 比较容易看出的线段树题目. 由于等概率,期望便转化为 子集元素和/子集个数. 每一段l..r中,子集元素和为: \(\sum w_{i}(i-l+ ...
- BZOJ 2752:[HAOI2012]高速公路(road)(线段树)
[HAOI2012]高速公路(road) Description Y901高速公路是一条重要的交通纽带,政府部门建设初期的投入以及使用期间的养护费用都不低,因此政府在这条高速公路上设立了许多收费站.Y ...
- bzoj 2752: [HAOI2012]高速公路(road)
Description Y901高速公路是一条重要的交通纽带,政府部门建设初期的投入以及使用期间的养护费用都不低,因此政府在这条高速公路上设立了许多收费站.Y901高速公路是一条由N-1段路以及N个收 ...
- BZOJ2752:[HAOI2012]高速公路——题解
http://www.lydsy.com/JudgeOnline/problem.php?id=2752 https://www.luogu.org/problemnew/show/P2221#sub ...
随机推荐
- php的yii框架开发总结7
protected\config\main.php是整个网站中很重要的一个文件,引用文件,连接数据库,默认页面等都是在这里设置: 'import'=>array( 'application.mo ...
- centos6.5_64bit_tomcat日志合并在一个.log下
问题 tomcat每次启动时,自动在logs目录下生产以下日志文件,且每天都会生成对应日期的一个文件,造成日志文件众多: 目的 Tomcat以上日志都输出到同一个文件中. 修 ...
- 会说话的ABAP report
report z. INCLUDE ole2incl. DATA: ole TYPE ole2_object, voice TYPE ole2_object, text ...
- bzoj3882 [Wc2015]K小割
Description Input Output Sample Input 3 3 1 3 100 1 2 3 2 3 4 1 3 5 Sample Output 8 9 12 -1 正解:暴搜+ ...
- 类似LCS,构成目标单词(POJ2192)
题目链接:http://poj.org/problem?id=2192 解题报告: 1.类似最长公共子序列,dp[i][j]表示用s1前i个字符和s2前j个字符来构成目标单词的一部分,是否成功 2.状 ...
- 6.Netbackup-Oracle数据库恢复演练报告(下)
1.1 Oracle数据库恢复 目录 1 安装新的客户端 2 新建异机恢复文件 3 新建数据库实例 4 建立spfile文件 5 建立数据文件夹 6 启动数据库到nomount状态 7 列出备份信息 ...
- grep的使用
http://www.eguidedog.net/linux-tutorial/05-grep.php grep apple fruitlist.txt:在fruitlist.txt中查找apple字 ...
- 将base64编码转换图片
/// <summary> /// 二进制Base64编码转图片 /// </summary> /// <param name="bytes"> ...
- N76E003---输入捕获
输入捕获 根据芯片手册,定时器2可以作为输入捕获使用,设置非常简单,官方也提供了宏给我们使用 void Time2_cap_init(void) { /******* 输入捕获CF设置 ******* ...
- Meshlab
打开ply文件的软件,Meshlab. 下载 http://yunpan.cn/cgapukD2La9Se (提取码:37f1) http://pan.baidu.com/s/1pJLnWqJ