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/ ...
随机推荐
- 拨开字符编码的迷雾--MySQL数据库字符编码
拨开字符编码迷雾系列文章链接: 拨开字符编码的迷雾--字符编码概述 拨开字符编码的迷雾--编译器如何处理文件编码 拨开字符编码的迷雾--字符编码转换 拨开字符编码的迷雾--MySQL数据库字符编码 1 ...
- asp.net core策略授权
在<asp.net core认证与授权>中讲解了固定和自定义角色授权系统权限,其实我们还可以通过其他方式来授权,比如可以通过角色组,用户名,生日等,但这些主要取决于ClaimTypes,其 ...
- 关于request和response的中文乱码问题
相信大家在开发Web项目中都会遇到中文的请求乱码和响应乱码的情况,现在给大家梳理一下并提供解决方案. 1.为什么会出现乱码: 出现乱码的根本原因是浏览器和服务器的解码方式不一致引起的.所以我们统一编码 ...
- Laravel学习基础篇之--路由
终于还是决定再多学一门重量级框架,当然首选必备还是被称为最优雅的Web开发框架--Laravel 对于框架的入门,首先了解它的路由规则是先前必备的,以下是laravel 中几种常见的基础路由规则 // ...
- JAVA设计模式:状态模式
声明:转载请说明来源:http://www.cnblogs.com/pony1223/p/7518226.html 一.引出状态模式 假设我们现在有一个糖果机项目,那么我们知道正常一般糖果机提供给用户 ...
- 《深入浅出MySQL》之数据类型
MySQL提供了多种数据类型,主要包括数值型.字符串型和日期时间类型.本次博客就来谈谈MySQL中常用的数据类型吧(版本:mysql-5.7.19)! 数值类型 MySQL支持所有标准SQL中数值类型 ...
- 【1414软工助教】团队作业6——展示博客(Alpha版本) 得分榜
题目 团队作业6--展示博客(Alpha版本) 作业提交情况情况 为所欲为 团队没有提交,其余都按时提交. 往期成绩 个人作业1:四则运算控制台 结对项目1:GUI 个人作业2:案例分析 结对项目2: ...
- 201521123079《java程序设计》第8周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 2. 书面作业 本次作业题集集合 1.List中指定元素的删除(题目4-1) 1.1 实验总结 这题主要是对函 ...
- 201521123108《Java程序设计》第12周学习总结
1. 本周学习总结 2. 书面作业 将Student对象(属性:int id, String name,int age,double grade)写入文件student.data.从文件读出显示. Q ...
- Java:静态内部类的使用目的、使用限制、与非静态内部类的对比
Java之静态内部类(static class) 在一个类中创建另外一个类,叫做成员内部类.这个成员内部类可以静态的(利用static关键字修饰),也可以是非静态的. 一.静态内部类的使用目的. 在 ...