noip模拟赛 浮游大陆的68号岛
题目描述
妖精仓库里生活着黄金妖精们,她们过着快乐,却随时准备着迎接死亡的生活。
换用更高尚的说法,是随时准备着为这个无药可救的世界献身。
然而孩子们的生活却总是无忧无虑的,幼体的黄金妖精们过着天真烂漫的生活,自然也无暇考虑什么拯救世界之类的重任。

有一天小妖精们又在做游戏。这个游戏是这样的。
妖精仓库的储物点可以看做在一个数轴上。每一个储物点会有一些东西,同时他们之间存在距离。



分析:x相对于[l,r]有3种可能的情况,要么在区间里,要么在区间左边,要么在区间右边。分类讨论,如果x在区间左边,ans = bi*(xi - x) + bi+1*(xi+1-x) + ...... + br*(xr - x).其中xi是第i个点的位置,x是x的位置.将结构相同的放在一起:ans=Σbixi - xΣbi.同理,如果x在区间右边:ans=xΣbi - Σbixi,在区间中的话就分左半区间和右半区间分别处理.得到这个式子就好办多了,前缀和就能搞定.只是要mod一个数,在做减法的时候一定要+模数,否则就会出现负数!!!
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm> using namespace std; typedef long long ll; const ll mod = ; ll n, m, d[], a[], sum[]; int main()
{
scanf("%lld%lld", &n, &m);
for (int i = ; i <= n; i++)
{
scanf("%lld", &d[i]);
d[i] += d[i - ];
d[i] %= mod;
}
for (int i = ; i <= n; i++)
scanf("%lld", &a[i]);
for (int i = ; i <= n; i++)
{
sum[i] = sum[i - ] + ((d[i] * a[i]) % mod);
sum[i] %= mod;
a[i] += a[i - ];
a[i] %= mod;
}
for (int i = ; i <= m; i++)
{
long long x, l, r;
scanf("%lld%lld%lld", &x, &l, &r);
if (x <= l)
{
long long temp3 = (a[r] - a[l - ] + mod) % mod;
long long temp = (temp3 * d[x]) % mod;
long long temp2 = (sum[r] - sum[l - ] + mod) % mod;
long long ans = (((temp2 - temp + mod) % mod) + mod) % mod;
printf("%lld\n", ans);
}
else
if (x >= r)
{
long long temp3 = (a[r] - a[l - ] + mod) % mod;
long long temp = (temp3 * d[x]) % mod;
long long temp2 = (sum[r] - sum[l - ] + mod) % mod;
long long ans = (((temp - temp2 + mod) % mod) + mod) % mod;
printf("%lld\n", ans);
}
else
{
long long temp5 = (a[r] - a[x] + mod) % mod;
long long temp6 = (a[x - ] - a[l - ] + mod) % mod;
long long temp3 = (sum[x - ] - sum[l - ] + mod) % mod;
long long temp4 = (sum[r] - sum[x] + mod) % mod;
long long temp1 = (temp5 * d[x]) % mod;
long long ans1 = (((temp4 - temp1 + mod)%mod) + mod) % mod;
long long temp2 = (d[x] * temp6) % mod;
long long ans2 = (((temp2 - temp3 + mod) % mod) + mod) % mod;
printf("%lld\n", (ans1 + ans2) % mod);
}
} return ;
}
noip模拟赛 浮游大陆的68号岛的更多相关文章
- P3932 浮游大陆的68号岛 【线段树】
P3932 浮游大陆的68号岛 有一天小妖精们又在做游戏.这个游戏是这样的. 妖精仓库的储物点可以看做在一个数轴上.每一个储物点会有一些东西,同时他们之间存在距离. 每次他们会选出一个小妖精,然后剩下 ...
- P3932 浮游大陆的68号岛
P3932 浮游大陆的68号岛 妖精仓库的储物点可以看做在一个数轴上.每一个储物点会有一些东西,同时他们之间存在距离. 每次他们会选出一个小妖精,然后剩下的人找到区间[l,r]储物点的所有东西,清点完 ...
- 线段树 洛谷P3932 浮游大陆的68号岛
P3932 浮游大陆的68号岛 题目描述 妖精仓库里生活着黄金妖精们,她们过着快乐,却随时准备着迎接死亡的生活. 换用更高尚的说法,是随时准备着为这个无药可救的世界献身. 然而孩子们的生活却总是无忧无 ...
- [Luogu3932] 浮游大陆的68号岛
题目背景 大样例下发链接: https://pan.baidu.com/s/1nuVpRS1 密码: sfxg 浮游大陆的68号岛,位于浮游大陆的边境地带.平时很少有人造访. 岛上被浓厚的森林覆盖. ...
- LuoguP3932 浮游大陆的68号岛 题解
Content 在一个无限长的数轴上有 \(n\) 个点.第 \(i\) 个点上面有 \(a_i\) 件物品,且第 \(i\) 个点到第 \(i+1\) 个点的距离为 \(b_i\). 定义从第 \( ...
- [洛谷P3932]浮游大陆的68号岛
题目大意:有一行物品,每两个物品之间有一个距离.每个物品有一个价值.现在问你若干问题,每个问题问你把l~r所有物品全部搬到物品x处需要多少价值. 把物品a搬到物品b处的价值为物品a的价值乘a到b的距离 ...
- NOIP模拟赛 by hzwer
2015年10月04日NOIP模拟赛 by hzwer (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...
- NOIP模拟赛-2018.11.6
NOIP模拟赛 今天想着反正高一高二都要考试,那么干脆跟着高二考吧,因为高二的比赛更有技术含量(我自己带的键盘放在这里). 今天考了一套英文题?发现阅读理解还是有一些困难的. T1:有$n$个点,$m ...
- NOI.AC NOIP模拟赛 第六场 游记
NOI.AC NOIP模拟赛 第六场 游记 queen 题目大意: 在一个\(n\times n(n\le10^5)\)的棋盘上,放有\(m(m\le10^5)\)个皇后,其中每一个皇后都可以向上.下 ...
随机推荐
- java异步编程
异步编程提供了一个非阻塞事件驱动的模型.通过异步消除阻塞,可以让web服务响应更多请求.可以让系统更高效的执行.比如log框架,记录日志或异常时异步执行可避免影响正常业务流程的执行. 异步变成如何把线 ...
- STM32:TIMER PWM 输入检测
PWM输入检测是输入捕获的一个特例,可以测量频率与占空比 与输入捕获不同的是PWM输入模式会将同一个输入信号(TI1或TI2)连接到两个捕获装置(IC1和IC2).这两个捕获装置一个捕获上升沿一个捕获 ...
- Factstone Benchmark(数学)
http://poj.org/problem?id=2661 题意:Amtel在1960年发行了4位计算机,并实行每十年位数翻一番的策略,将最大整数n作为改变的等级,其中n!表示计算机的无符号整数(n ...
- windows2003下svn的安装
Windows2003下svn平台搭建 编辑:dnawo 日期:2010-08-03 转自http://www.mzwu.com/article.asp?id=2557 字体大小: 小 中 大 ...
- [Swift通天遁地]二、表格表单-(2)创建右侧带有索引的UITableView(表单视图)
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- [Swift通天遁地]六、智能布局-(2)视图对象的尺寸和位置相对约束
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- XML解析-Dom4j的DOM解析方式更新XML
Dom4j工具,是非官方的,不在jdk中. 使用步骤: 1)导入dom4j的核心包. dom4j-1.6.1.jar 2)编写Dom4j读取xml文件的代码 1.更新XML 1.1.写出内容到xml文 ...
- dropdownlist显示树形结构
/// <summary> /// 递归 /// </summary> /// <param name="deplist"></param ...
- JS——void(0)
a标签中阻止跳转: <a href="javascript:;">跳转</a> <a href="javascript:void(0)&qu ...
- java设计模式02观察者模式
观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象.这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己. 这里主要讲一下学习内置观察者的记录,在JA ...