首页 > 其他分享 >P5459 [BJOI2016] 回转寿司

P5459 [BJOI2016] 回转寿司

时间:2024-08-23 16:15:08浏览次数:13  
标签:10 log 寿司 int ll BJOI2016 P5459 INF

P5459 [BJOI2016] 回转寿司

https://www.luogu.com.cn/problem/P5459

https://www.luogu.com.cn/article/nnyrsj3m

空间,由于单点修改操作至多涉及 \(\lceil\log val\rceil\) 个区间,区间查询涉及 \(\lceil4\log val\rceil\),所以需要 \(5n\log val\),考虑到 \(\max\sum a=10^{10}\),理论上最坏要开到 \(1.7\times 10^7\),190几MB,不会超;但是远远不及,开到 \(6\times 10^6\) 可过。

#include<iostream>
using namespace std;
typedef long long ll;
const int N=100010,M=6e6;
const ll INF=1e10;
bool _u;
int n,L,R,v[M],rt,l[M],r[M],idx;
ll ans,a[N];
bool _v;
void pushup(int p){
	v[p]=v[l[p]]+v[r[p]];
}
int query(int &p,ll ql,ll qr,ll L=-INF,ll R=INF){
	if(!p)p=++idx;
	if(ql<=L&&R<=qr)return v[p];
	ll mid=L+R>>1,res=0;
	if(ql<=mid)res=query(l[p],ql,qr,L,mid);
	if(qr>mid)res+=query(r[p],ql,qr,mid+1,R);
	return res;
}
void modify(int &p,ll x,ll L=-INF,ll R=INF){
	if(!p)p=++idx;
	if(L==R){
		++v[p];
		return;
	}
	ll mid=L+R>>1;
	if(x<=mid)modify(l[p],x,L,mid);
	else modify(r[p],x,mid+1,R);
	pushup(p);
}
int main(){
	#ifdef LOCAL
	freopen("1.txt","r",stdin);
	#endif
	#ifndef LOCAL
	ios::sync_with_stdio(0);
	cin.tie(0),cout.tie(0);
	#endif
	cerr<<(&_v-&_u)/1024.0/1024.0<<'\n';
	cin>>n>>L>>R;
	for(int i=1;i<=n;++i){
		int x;
		cin>>x;
		a[i]=a[i-1]+x;
	}
	modify(rt,0);
	for(int i=1;i<=n;++i){
		ans+=query(rt,a[i]-R,a[i]-L);
		modify(rt,a[i]);
	}
	cout<<ans;
	return 0;
}

标签:10,log,寿司,int,ll,BJOI2016,P5459,INF
From: https://www.cnblogs.com/wscqwq/p/18376315

相关文章

  • P2150 [NOI2015] 寿司晚宴
    思路:注意到对于每个数,其\(>19\)的质因数最多只有\(1\)个,称为大质数;对于\(\le19\)的质因数有\(8\)个,称为小质数。设第\(i\)个数的小质数集合为\(h_i\)。那么考虑对于所有数按照大质数从小到大排序,那么对于大质数相同的一段,只能放在两个集合中的一个。考虑状态压缩......
  • 「清新题精讲」P2150 [NOI2015] 寿司晚宴
    P2150[NOI2015]寿司晚宴Statement给定\(n-1\)个数分别为\(2\simn\),从中选出交集为空的两个集合\(A,B\)(集合的并集不必须为\(\{2,\dots,n\}\),且集合可为空)使得不存在\(a\inA,b\inB\)满足\((a,b)\ne1\)(即任意两个数均互质),将方案数对\(p\)取模后输出。\(2\len\le......
  • 华为OD机试Java - 转盘寿司
    转盘寿司前言:本专栏将持续更新互联网大厂机试真题,并进行详细的分析与解答,包含完整的代码实现,希望可以帮助到正在努力的你。关于大厂机试流程、面经、面试指导等,如有任何疑问,欢迎联系我,wechat:steven_moda;email:[email protected];备注:CSDN。题目描述寿司店周年庆,正在举办......
  • 寿司晚宴
    这道题目挺综合的。。首先看到互质,可以知道这是约数一类的题目,而约数一类的题目,可以考虑分解质因数所以我们给每个数分解质因数,我们发现,要让两个人选的数字全部互质,那么有一个显然的充要条件:甲选的数字的质因数集合和乙选的数字的质因数集合没有交集(要么从单个数考虑,要么从整体......
  • [NOI2015] 寿司晚宴
    P2150[NOI2015]寿司晚宴翻译一下,题目其实就是给你\(2-n\)这些数,从其中选出两个集合(可以为空),求使两个集合中的数两两互质的方案数。那么就相当于说两个集合中的数的质因数的集合不能有重合。先看前\(\%30\)的数据,\(n<=30\),里面的质因数不多,考虑状压\(DP\)。我们不妨设\(DP[i]......
  • P2150 [NOI2015] 寿司晚宴
    写了两天。。。就是说,状态压缩DP可以不用显示写出考虑到第i个数,直接每次考虑加入一个数会对当前状态造成的影响即可。这道题发现了大质因数只有1个之后,就需要考虑有相同的大质因数之间的转移,和大质因数不同的之间的转移。然后会发现没有大质因数的数需要特殊处理……然后就好......
  • 【题解】[六省联考 2017] 寿司餐厅
    题目描述:Kiana最近喜欢到一家非常美味的寿司餐厅用餐。每天晚上,这家餐厅都会按顺序提供\(n\)种寿司,第\(i\)种寿司有一个代号\(a_i\)和美味度\(d_{i,i}\),不同种类的寿司有可能使用相同的代号。每种寿司的份数都是无限的,Kiana也可以无限次取寿司来吃,但每种寿司每次只能......
  • 【洛谷】P2150 [NOI2015] 寿司晚宴(状压dp+根号分治)
    原题链接题意有序列\(2,3,4\cdotsn\),对于序列中的每一个数,它可以被放入两个集合中的任意一个,或者不选。最后需要满足两个集合间的数两两互质(集合内部的数不需要满足互......
  • Luogu P2150 [NOI2015]寿司晚宴
    题目链接:​​传送门​​太难了太难了题意就是问有多少种分案把一个到的排列分配为两组并使组间元素两两互质首先我们只需要考虑根号内的质因子对答案的影响,因为根号外的因......