Liers 树状数组+中国剩余定理
Liers
Problem Description
Input
多组数据,每组数据:
第一行,N(1 <= N <= 10^6),总人数
从2到N + 1行,每行两个正整数,L,R,表示第i个人说的,舞会总人数为[L,R]中的一个数 -2^31 <= L,R <= 2^31 - 1(int)
Output
Sample Input
3
1 1
1 1
1 1
3
0 2
0 2
0 2
Sample Output
3
6
Hint
#include <iostream>
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <algorithm>
using namespace std;
#define mod 20140717LL
#define ll long long
typedef struct people
{
int l,r;
} people;
people p[];
int b[],n;
short int a1[][]= {},a2[][]= {},a3[][]= {};
void init()
{
int i,j;
a1[][]=a2[][]=a3[][]=;
for(i=; i<; i++)
{
a3[i][i]=a3[i][]=;
for(j=; j<i; j++)
a3[i][j]=a3[i-][j-]+a3[i-][j],a3[i][j]%=;
}
for(i=; i<; i++)
{
a2[i][i]=a2[i][]=;
for(j=; j<i; j++)
a2[i][j]=a2[i-][j-]+a2[i-][j],a2[i][j]%=;
}
for(i=; i<; i++)
{
a1[i][i]=a1[i][]=;
for(j=; j<i; j++)
a1[i][j]=a1[i-][j-]+a1[i-][j],a1[i][j]%=;
}
}
int lowbit(int x)
{
return x&(-x);
}
void update(int x,int z)
{
while(x>)
{
b[x]+=z;
x-=lowbit(x);
}
}
int query(int x)
{
int sum=;
while(x<=n)
{
sum+=b[x];
x+=lowbit(x);
}
return sum;
}
int fun1(int m,int x,int y)
{
int ans=;
while(x)
{
if(y==)
ans*=a1[m%y][x%y];
else if(y==)
ans*=a2[m%y][x%y];
else ans*=a3[m%y][x%y];
m/=y,x/=y;
}
return ans;
}
int fun(int m,int x)
{
ll m1,m2,m3;
m1=fun1(m,x,);
m2=fun1(m,x,);
m3=fun1(m,x,);
int ans=((m1*8842266LL)%mod+(m2*1129386LL)%mod+(m3*10169066LL)%mod)%mod;
return ans;
}
int main()
{
// freopen("in.txt","r",stdin);
init();
int i,j,ans,m;
while(scanf("%d",&n)!=EOF)
{
for(i=; i<n; i++)
{
scanf("%d%d",&p[i].l,&p[i].r);
if(p[i].l<=)p[i].l=;
if(p[i].l>n)p[i].r=n;
if(p[i].r<=)p[i].r=;
if(p[i].r>n)p[i].r=n;
}
memset(b,,sizeof(b));
for(i=; i<n; i++)
{
update(p[i].r,);
update(p[i].l-,-);
}
ans=;
for(i=; i<=n; i++)
{
m=query(i);
if(m>=i)
ans+=fun(m,i),ans%=mod;
}
printf("%d\n",ans%mod);
} }
Liers 树状数组+中国剩余定理的更多相关文章
- 【XSY2727】Remove Dilworth定理 堆 树状数组 DP
题目描述 一个二维平面上有\(n\)个梯形,满足: 所有梯形的下底边在直线\(y=0\)上. 所有梯形的上底边在直线\(y=1\)上. 没有两个点的坐标相同. 你一次可以选择任意多个梯形,必须满足这些 ...
- 2018中国大学生程序设计竞赛 - 网络选拔赛 1010 YJJ's Salesman 【离散化+树状数组维护区间最大值】
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6447 YJJ's Salesman Time Limit: 4000/2000 MS (Java/O ...
- BZOJ2924 [Poi1998]Flat broken lines 【Dilworth定理 + 树状数组】
题目链接 BZOJ2924 题解 题面有误..是\(45°\) 如果两个点间连线与\(x\)轴夹角在\(45°\)以内,那么它们之间连边 求最小路径覆盖 = 最长反链 由于\(45°\)比较难搞,我们 ...
- HDU 4911 (树状数组+逆序数)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4911 题目大意:最多可以交换K次,就最小逆序对数 解题思路: 逆序数定理,当逆序对数大于0时,若ak ...
- POJ 2464 Brownie Points II (树状数组,难题)
题意:在平面直角坐标系中给你N个点,stan和ollie玩一个游戏,首先stan在竖直方向上画一条直线,该直线必须要过其中的某个点,然后ollie在水平方向上画一条直线,该直线的要求是要经过一个sta ...
- Bzoj 3339: Rmq Problem && Bzoj 3585: mex 莫队,树状数组,二分
3339: Rmq Problem Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 833 Solved: 397[Submit][Status][D ...
- 求逆序对常用的两种算法 ----归并排 & 树状数组
网上看了一些归并排求逆序对的文章,又看了一些树状数组的,觉得自己也写一篇试试看吧,然后本文大体也就讲个思路(没有例题),但是还是会有个程序框架的 好了下面是正文 归并排求逆序对 树状数组求逆序对 一. ...
- 求逆序对 ----归并排 & 树状数组
网上看了一些归并排求逆序对的文章,又看了一些树状数组的,觉得自己也写一篇试试看吧,然后本文大体也就讲个思路(没有例题),但是还是会有个程序框架的 好了下面是正文 归并排求逆序对 树状数组求逆序对 一. ...
- 用归并排序或树状数组求逆序对数量 poj2299
题目链接:https://vjudge.net/problem/POJ-2299 推荐讲解树状数组的博客:https://blog.csdn.net/int64ago/article/details/ ...
随机推荐
- Docker 集群环境实现方式
Docker 集群环境实现的新方式 近几年来,Docker 作为一个开源的应用容器引擎,深受广大开发者的欢迎.随着 Docker 生态圈的不断建设,应用领域越来越广.云计算,大数据,移动技术的快速发展 ...
- 别只用hive写sql -- hive的更多技能
hive是Apache的一个顶级项目,由facebook团队开发,基于java开发出面向分析师或BI等人员的数据工具(常用作出具仓库),它将文件系统映射为表,使用SQL实现mapreduce任务完成分 ...
- 使用vs2015编写c语言程序
使用vs2015编写c语言程序 转载Yanky--博客园 http://www.cnblogs.com/yankyblogs/p/7058036.html 编写c语言程序的软件有很多,当年刚开始学 ...
- CCIE-MPLS VPN-实验手册(上卷)
看完了看完了看完了,豪爽豪爽豪爽,一个月了,写得挺棒.总共14个mpls vpn的实验,为留下学习的痕迹,原封不动献出. CCIE实验手册 (路由部分-MPLSVPN基础篇) [CCIE] JUST ...
- 转深入Java虚拟机 之四:类加载机制
转载请注明出处:http://blog.csdn.net/ns_code/article/details/17881581 类加载过程 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个 ...
- 201521123060 《Java程序设计》第10周学习总结
1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 异常: 1.不要乱用异常: 2.异常发生时:确定异常类型,异常位置: 3.尽量使用已有的异常类. 多线程: 2 ...
- 第二部分----CSS的基础语法
PART-1 CSS的基础常识 一.什么是CSS? W3C标准中,倡导有3:其一为内容与表现分离,其二为内容与行为分离,其三为内容结构的语义化.其倡导中第一条的"表现"指的便可以说 ...
- 第三节课:简单的网络命令和ARP欺骗
MTU :最大传输单元 RX:收包 TX: 发包 Ifconfig: IP配置命令,config是linux中用于显示或配置网络设备(网络接口卡)的命令 ifconfig eth0 192.168 ...
- 7z命令行 极限压缩指令
摘抄自http://www.cnblogs.com/qanholas/archive/2011/10/03/2198487.html 7za a -t7z bag.7z "/home/fil ...
- 部署maria数据库到linux(源码编译安装)
maria数据库是mysql原作者另外开发的一个版本,使用方法和mysql一样,可以直接用mysql的库连接. 在这下载包并解压: https://mariadb.org/download/ 建立数据 ...