20181030NOIP模拟赛T3
2017种树
2017共有N棵树从0到N-1标号。现要把这些树种在一条直线上,第i棵树的种植位置X[i]如下确定:
X[0] = X[0] MOD L;
X[i] = (X[i-1]*A+B) MOD L。
每棵树种植的费用,是所有标号比它小的树与它的距离之和。2017请你计算各棵树的费用之积,最后对1000000007取余。
输入:
共五行:
第一行为N
第二行为L
第三行为X[0]
第四行为A
第五行为B
输出:
总费用
Input1:
5
10
3
1
1
Output1:
180
样例解释:
5棵树的位置分别为: 3, 4, 5, 6, 7.
费用分别为: 1, 3, 6, 10. (从第一棵树开始)
总费用为: 1 × 3 × 6 × 10 = 180.
数据范围:
10%的数据:N<=10;
60%的数据:N<=5×10^4;
100%的数据:N,L<=200000; X[0] ,A, B<=10^9.
思路:
权值线段树好题
一个点和他前面某个点的距离
等于这个点坐标减去前面那个点的坐标
那么,前面所有点到这个点的距离和
等于前面这些点的数量*当前点坐标-前面点的坐标和
对于这个问题,我们开一颗权值线段树维护即可
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define rs 262143
#define p 1000000007
#define rii register int i
#define rij register int j
#define int long long
using namespace std;
long long n,l1,y[],a,b,ans;
struct tree{
long long cnt,sum;
}x[rs*];
void add(int wz,int l,int r,int bh)
{
if(wz==l&&wz==r)
{
x[bh].cnt++;
x[bh].sum+=wz;
return;
}
int mid=(l+r)/;
if(wz<=mid)
{
add(wz,l,mid,bh*);
}
else
{
add(wz,mid+,r,bh*+);
}
x[bh].cnt=x[bh*].cnt+x[bh*+].cnt;
x[bh].sum=x[bh*].sum+x[bh*+].sum;
}
tree query(int l,int r,int nl,int nr,int bh)
{
if(l<nl)
{
l=nl;
}
if(r>nr)
{
r=nr;
}
if(nl==l&&nr==r)
{
return x[bh];
}
int mid=(nl+nr)/;
tree kkk;
tree lzn;
lzn.cnt=,lzn.sum=,kkk.sum=,kkk.cnt=;
if(l<=mid)
{
kkk=query(l,r,nl,mid,bh*);
}
if(r>mid)
{
lzn=query(l,r,mid+,nr,bh*+);
}
kkk.cnt+=lzn.cnt;
kkk.sum+=lzn.sum;
return kkk;
}
signed main()
{
freopen("gg.in","r",stdin);
freopen("gg.out","w",stdout);
scanf("%lld%lld%lld%lld%lld",&n,&l1,&y[],&a,&b);
y[]%=l1;
add(y[],,rs,);
ans=;
for(int i=;i<=n-;i++)
{
long long an=;
y[i]=(y[i-]*a+b)%l1;
tree kkk;
kkk=query(,y[i],,rs,);
an+=kkk.cnt*y[i];
an%=p;
an-=kkk.sum;
an+=p;
an%=p;
kkk=query(y[i],l1-,,rs,);
an+=kkk.sum;
an-=kkk.cnt*y[i];
an+=p;
an%=p;
ans*=an;
ans%=p;
add(y[i],,rs,);
}
printf("%lld\n",ans);
}
20181030NOIP模拟赛T3的更多相关文章
- 体育成绩统计——20180801模拟赛T3
体育成绩统计 / Score 题目描述 正所谓“无体育,不清华”.为了更好地督促同学们进行体育锻炼,更加科学地对同学们进行评价,五道口体校的老师们在体育成绩的考核上可谓是煞费苦心.然而每到学期期末时, ...
- 20180520模拟赛T3——chess
[问题描述] 小美很喜欢下象棋. 而且她特别喜欢象棋中的马. 她觉得马的跳跃方式很独特.(以日字格的方式跳跃) 小芳给了小美一张很大的棋盘,这个棋盘是一个无穷的笛卡尔坐标. 一开始\(time=0\) ...
- 20161005 NOIP 模拟赛 T3 解题报告
subset 3.1 题目描述 一开始你有一个空集,集合可以出现重复元素,然后有 Q 个操作 1. add s 在集合中加入数字 s. 2. del s 在集合中删除数字 s.保证 s 存在 3. c ...
- ztz11的noip模拟赛T3:评分系统
代码: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> ...
- 20180711模拟赛T3——聚变
文件名: fusion 题目类型: 传统题 时间限制: 3秒 内存限制: 256MB 编译优化: 无 题目描述 知名科学家小A在2118年在计算机上实现了模拟聚变的过程. 我们将她研究的过程简化. 核 ...
- 4.26 省选模拟赛 T3 状压dp 差分求答案
LINK:T3 比较好的题目 考试的时候被毒瘤的T2给搞的心态爆炸 这道题连正解的思路都没有想到. 一看到题求删除点的最少个 可以使得不连通. 瞬间想到最小割 发现对于10分直接跑最小割即可. 不过想 ...
- NOIP欢乐模拟赛 T3 解题报告
3.小澳的葫芦 (calabash.cpp/c/pas) [题目描述] 小澳最喜欢的歌曲就是<葫芦娃>. 一日表演唱歌,他尽了洪荒之力,唱响心中圣歌. 随之,小澳进入了葫芦世界. 葫芦世界 ...
- 字符串模拟赛T3
只看我的做法就够了 #include<iostream> #include<cstdio> #include<string> #include<cstring ...
- 神奇的NOIP模拟赛 T3 LGTB 玩THD
LGTB 玩THD LGTB 最近在玩一个类似DOTA 的游戏名叫THD有一天他在守一座塔,对面的N 个小兵排成一列从近到远站在塔前面每个小兵有一定的血量hi,杀死后有一定的金钱gi每一秒,他都可以攻 ...
随机推荐
- window下Jekyll建站过程
> 前言 最近决定要写一个博客,先后注册了博客园和CSND的博客,但是他们的界面主题都不是很符合自己的要求,还没有足够个性化的发挥空间,遂决定自己建一个博客. 网上找了一下教程,感觉都不太详细, ...
- 多盟、Testin云测、K9test,助阵阿里云1218 移动开发者狂欢
经过双十一.双十二全民剁手狂欢后,阿里巴巴旗下的云计算业务,也为IT程序员们打造一场独特的盛宴. 阿里云计算12月18日对旗下主力云计算产品进行打折促销,云服务商.风投机构等都将参与到这场狂欢中.“我 ...
- Anaconda 执行命令报ssl错误
- Spring返回json数据
第一种形式:使用注解@ResponseBody @RequestMapping(value = "/admin/jq", method = RequestMethod.GET) @ ...
- tcp三次握手和四次挥手(2)
背景描述 通过上一篇中网络模型中的IP层的介绍,我们知道网络层,可以实现两个主机之间的通信.但是这并不具体,因为,真正进行通信的实体是在主机中的进程,是一个主机中的一个进程与另外一个主机中的一个进 ...
- SQL点点滴滴_常用函数
该文章转载自http://www.cnblogs.com/jiajiayuan/archive/2011/06/16/2082488.html 别人的总结,很详细. 以下所有例子均Studnet表为例 ...
- deepin ubuntu等创建桌面快捷方式
Linux网上下载软件一般只会有.sh结尾执行程序.并不会像商店下载一样自动创建桌面图标.此时需要自行进行编辑. #创建一个桌面图标后缀名为.desktop touch myDesktop.deskt ...
- 利用kali嗅探周围发送的短信
设备清单: 摩托罗拉 C118 (25块) FT232RL USB TO TTL (30元) 摩托罗拉 Motorola C118专用数据连接线 (10块) MiniUSB 链接线(10元,这个大家手 ...
- 永中Office的ibus输入法问题
我在永中Office下无法调用ibus输入法,但是在其他窗口中都没有问题,如:gVIM,LeafPad,OpenOffice等等.我按照网上的方法在.bashrc文件中也添加了以下内容,可是还是不行. ...
- PhoneGap Geolocation 获取地理位置 api
一. PhoneGap Geolocation 对象介绍 1.使应用程序可以访问地理位置信息.geolocation 对象提供了对设备 GPS 传感器的访问.Geolocation 提供设备的位置信息 ...