【Luogu P3794】签到题IV

【BZOJ-2201】彩色圆环 题目描述 小 A 喜欢收集宝物。一天他得到了一个圆环,圆环上有 N 颗彩色宝石,闪闪 发光。小A很爱惜这个圆环,天天把它带在身边。 一天,小 A 突然发现圆环上宝石的颜色是会变化的。他十分惊讶,仔细观察这 个圆环后发现,圆环上宝石的颜色每天变化一次,而且每颗宝石的颜色都等概率地 为特定的M种颜色之一。小A发现了这个秘密后,对圆环更是爱不释手,时时刻刻都 在研究。 又经过了一段时间,小... 阅读详情

题目链接

题目描述

给定一个长度为n的序列a1,a2…an其中每个数都是正整数。
你需要找出有多少对(i,j),
1 ≤ i ≤ j ≤ n 1\leq i\leq j \leq n 1≤i≤j≤n 且 g c d ( a i , a i + 1 . . . a j ) x o r ( a i o r a i + 1 o r . . . o r a j ) = k gcd(a_i,a_{i+1}...a_j) xor (a_i or a_{i+1} or ... or a_j)=k gcd(ai​,ai+1​...aj​)xor(ai​orai+1​or...oraj​)=k其中xor表示二进制异或,or表示二进制或。

Sol

显然我们会发现一个性质:
假设我们固定一个左端点然后往后扫右端点 , gcd是单调不升的 , 或和 是单调不降的

这个可以用来二分合法区间 , 但比较麻烦

考虑一个更加优秀的性质:
对于一个最大值为 X 的序列gcd最多只有 logX 种 , 因为每次更改gcd这个数至少会除掉2
类似的,对于一个最大值为 X 的序列 OR和 也最多只有 logX 种 , 因为每次更改或和这个数的二进制至少会增加一个 1

这个就可以用来暴力了

考虑CDQ分治 , 对于过中点的区间 , 暴力把左右两边不同的gcd和or都抠出来,然后平方匹配

复杂度好像很多个log…

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<queue>
#include<set>
#define gcd GCD
#define log LOG
using namespace std;
const int N=5e5+10;
typedef long long ll;
inline int gcd(int a,int b){return b? gcd(b,a%b):a;}
inline int read()
{
	int x=0;char ch=getchar();int t=1;
	for(;ch>'9'||ch<'0';ch=getchar()) if(ch=='-') t=-1;
	for(;ch>='0'&&ch<='9';ch=getchar()) x=(x<<1)+(x<<3)+(ch-48);
	return x*t;
}
int w[N];int n,k;
ll ans=0;
int G[N],O[N];int num1[N],num2[N],dat1[N],dat2[N];
void Div(int l,int r)
{
	if(l>r) return;
	if(l==r) return (void)(k? ans=ans:ans=ans+1);
	int mid=l+r>>1;
	Div(l,mid);Div(mid+1,r);
	for(int i=l;i<=r;++i) G[i]=O[i]=w[i];
	int cnt1=1,cnt2=1;
	num1[cnt1]=1;num2[cnt2]=1;
	dat1[cnt1]=mid;dat2[cnt2]=mid+1;
	for(int i=mid-1;i>=l;--i) {
		G[i]=gcd(G[i],G[i+1]),O[i]|=O[i+1];
		if(G[i]==G[i+1]&&O[i]==O[i+1]) ++num1[cnt1];
		else num1[++cnt1]=1,dat1[cnt1]=i;
	}
	for(int j=mid+2;j<=r;++j) {
		G[j]=gcd(G[j],G[j-1]),O[j]|=O[j-1];
		if(G[j]==G[j-1]&&O[j]==O[j-1]) ++num2[cnt2];
		else num2[++cnt2]=1,dat2[cnt2]=j;
	}
	for(int i=1;i<=cnt1;++i){
		for(int j=1;j<=cnt2;++j){
			if((gcd(G[dat1[i]],G[dat2[j]])^(O[dat1[i]]|O[dat2[j]]))==k) ans+=1ll*num1[i]*num2[j];
		}
	}
	return;
}
int main()
{
	n=read();k=read();bool flag=1;
	for(int i=1;i<=n;++i) {w[i]=read();if(w[i]!=w[1]) flag=0;}
	if(flag){
		if(k) puts("0");
		else printf("%lld\n",1ll*(n-1)*n/2+n);
		return 0;
	}
	return Div(1,n),printf("%lld\n",ans),0;
}

【CF 285E】Positions in Permutations(容斥原理/二项式反演) 洛谷链接 题目描述 称一个 1∼n1\sim n1∼n 的排列的完美数为有多少个iii 满足 ∣Pi−i∣=1|P_i-i|=1∣Pi​−i∣=1 求有多少个长度为n 的完美数恰好为 m 的排列。 Sol 设 f(k)f(k)f(k) 表示长度为 nnn 的排列恰好有 kkk 个完美数的方案数 但是发现不好算 , 我们先往容斥上想 设 F(k)F(k)F(k) 表示至少有 kkk 个的方案 先考虑... 阅读详情

相关推荐

【Luogu P2127】序列排序

题目链接 题目描述 小C有一个N个数的整数序列,这个序列的中的数两两不同。小C每次可以交换序列中的任意两个数,代价为这两个数之和。小C希望将整个序列升序排序,问小C需要的最小代价是多少? 题解 这是一道经典的贪心题。 思路: 首先我们知道,每个数都有他要到的唯一的一个位置,这可以预处理出来。 且到了这个位置应该后不会再去移动他。 我们还能够知道,如果一个数不在他的目标位置上...

Yu Gi Oh! 615

December 10th 模拟赛C T1 分发糖果 Solution

一个傻逼写的题解。

打工是不可能打工的,这辈子不可能打工的。 557

【BZOJ 4361】isn(dp计数+容斥)

题目链接 题目描述 给出一个长度为n的序列A(A1,A2…AN)。如果序列A不是非降的,你必须从中删去一个数, 这一操作,直到A非降为止。求有多少种不同的操作方案,答案模10^9+7。 Sol 初看这题觉得很神仙啊 , 看到那个非降后立即停止就感觉不好做 所以我们要想着我们要知道些什么东西才能让问题变得好做起来 难点有2: 1.求出能够使得非降的操作序列个数 2.满足这些操作序列的合法性 对于第一...

Yu Gi Oh! 610

P3794 签到题IV

题目 P3794 签到题IV 来切道水题放松一下吧 做法 或是单调不下降的,\(gcd\)是单调不上升的 \(a_i≤5×10^5\)分成权值不同的块数应该很小,所以随便乱搞就出来了 My complete code #include<bits/stdc++.h> using namespace std; typedef long long LL; const LL maxn=1e6;...

weixin_30437337的博客 190

【BZOJ 5311】贞鱼

题目链接 题目描述 众所周知,贞鱼是一种高智商水生动物。不过他们到了陆地上智商会减半。 这不?他们遇到了大麻烦! n只贞鱼到陆地上乘车,现在有k辆汽车可以租用。 由于贞鱼们并不能在陆地上自由行走,一辆车只能载一段连续的贞鱼。 贞鱼们互相有着深深的怨念,每一对贞鱼之间有怨气值。 第i只贞鱼与第j只贞鱼的怨气值记为Yij,且Yij=Yji,Yii=0。 每辆车载重不限,但是每一对在同辆车中的贞鱼都会产...

Yu Gi Oh! 538

AXI4-Stream FIFO IP核实战指南——从配置到跨时钟域处理

本文是AXI4-Stream FIFO IP核的实战指南,详细讲解了其作为数据流缓冲核心的作用。文章重点涵盖从Vivado环境下的IP核配置、关键参数(如深度与宽度)设定,到跨时钟域处理的完整流程。深入解析了TVALID/TREADY握手协议及TLAST等信号,并提供了常见问题排查与调试技巧,帮助开发者高效实现FPGA/SoC系统中可靠的数据流缓冲与同步。

weixin_29251567的博客 480

CSP--四道签到题(面向CSPT1\T2)

CSP——面向T1/T2签到题 知识简介 由于CSP的题目设置,T1/T2两道签到题成为了冲击高分的基础,即使大模拟和后续题目求解受挫,也能保证一定的下限分数。本篇带来四个不同类型的签到题,希望能够给你带来收获。 题目一 蒜头君从现在开始工作,年薪 N 万。他希望在蒜厂附近买一套 6060 平米的房子,现在价格是 200200 万。假设房子价格以每年百分之 K增长,并且蒜头君未来年薪不变,且不吃不...

qq_43942251的博客 645

DataHub 架构设计与核心工作原理

DataHub 是一个第三代数据目录系统,专为现代数据栈设计,支持数据发现、协作、治理和端到端可观测性。其架构采用模型优先的设计理念,注重不同工具和系统之间的互操作性。

北斗云的博客 1223

斐波那契数列【签到题】Rating

题目描述: 思路: 此题的重点就是对于几种特殊情况要特判,严谨即可。 #include <cstdio> #include <cstring> #include <cmath> #include <iostream> #include <algorithm> using namespace std; typedef unsigned l...

weixin_45619734的博客 164

U8采购入库单CO接口开发实战:加载、新增与删除操作详解

本文详细解析了用友U8采购入库单CO接口的开发实战,重点介绍了加载、新增与删除三大核心操作的实现方法。通过C#代码示例和实际项目经验,帮助开发者高效处理采购入库单,提升企业供应链管理效率。文章还涵盖了环境配置、异常处理、性能优化等关键技巧,适合U8二次开发人员参考。

weixin_33462927的博客 373

LMK04821时钟芯片SPI配置避坑指南:从寄存器读写到频率校准全流程

本文详细解析了LMK04821时钟芯片的SPI配置全流程,涵盖寄存器读写、频率校准及JESD204B系统设计中的关键技巧。通过实战案例和避坑指南,帮助工程师高效解决时钟输出异常、同步失败等常见问题,提升高速数据采集系统的时钟稳定性。

weixin_29172963的博客 158

洛谷3794:签到题IV(套路题,常识题)

题面 题意:给出一个序列,问有多少个区间满足(该区间的gcd)xor(区间或)=k。 n,k≤5e5。像我这种没有常识,数据结构想不出就想分治+数据结构的蒟蒻自然是想不出的。显然,当右端点r确定了后,不同区间或与gcd都只有logN种,且相同的一段的区间的左端点为一个区间。我们就维护这logN段就可以了。从小到大枚举r,先更新这logN个区间,再单调地统计答案就可以了。#include <ios

KKiseki的博客 485

别再手动算重量了!用C++给UG/NX写个自动计算零件质量与质心的插件(附完整源码)

本文详细介绍了如何使用C++为UG/NX开发智能质量分析插件,实现零件质量与质心的自动计算。通过结合NXOpen和UF_MODL API,设计高效的数据结构和批量处理机制,大幅提升机械设计效率。文章包含完整源码和实用技巧,帮助工程师告别手动计算,适用于复杂装配体的自动化工程计算。

weixin_30247307的博客 130

20190716NOIP模拟赛T1 礼物(概率dp+状压)

题目描述 夏川的生日就要到了。作为夏川形式上的男朋友,季堂打算给夏川买一些生 日礼物。 商店里一共有种礼物。夏川每得到一种礼物,就会获得相应喜悦值Wi(每种 礼物的喜悦值不能重复获得)。 每次,店员会按照一定的概率Pi(或者不拿出礼物),将第i种礼物拿出来。 季堂每次都会将店员拿出来的礼物买下来。没有拿出来视为什么都没有买到,也 算一次购买。 众所周知,白毛切开都是黑的。所以季堂希...

weixin_30520015的博客 238

YOLOv13|损失函数优化篇:Focal EIOU 保持良好性能的同时,提供更高效的计算和更稳定的训练过程-包源码

Focal IoU与EIoU:目标检测中的损失函数优化 摘要:本文深入探讨了目标检测中两种重要的边界框回归损失函数优化方法。Focal IoU借鉴Focal Loss思想,通过(1-IoU)^γ因子调节损失权重,使模型更关注难样本(低IoU预测框),有效解决了传统IoU Loss对难易样本权重相同的问题。EIoU则在CIoU基础上改进,通过简化长宽比计算、分离宽高损失项,提升了计算效率和训练稳定性。两种方法分别从样本权重分配和损失函数结构优化角度,显著提升了目标检测性能,为实际应用提供了更高效的解决方案。文

FJN110的博客 1864

玩转Docker | 使用Docker部署Trilium Notes知识库工具

玩转Docker | 使用Docker部署Trilium Notes知识库工具

qq_59334230的博客 1441

【LuoguP3329&4123】[ZJOI2011]最小割&[CQOI2016]不同的最小割

链接1 链接2 题意简述 第一个题 : 问图中有多少不同的最小割数值 第二个题 : qqq 次询问图中多少对点对之间的最小割小于 xxx 。 Sol 两个都是模板题就放一起了。 求完最小割树直接暴力 O(n2)O(n^2)O(n2) 弄出所有点对间最小割 , 然后该干嘛干嘛。 最小割树的构建: Gemory−Hu&amp;amp;ThickSpace;TreeGemory-Hu\; TreeGemory...

Yu Gi Oh! 1246

【数字IC验证进阶】正则表达式(Regular Expression)快速入门指南

在芯片开发过程中,正则表达式的使用非常常见。初次上手晦涩难懂,多用几次爱不释手!

悟已往之不谏 知来者之可追 1440

【BZOJ 2669】局部极小值

局部极小值题目链接 蓄水池题目链接 (双倍经验) 题目描述 有一个n行m列的整数矩阵,其中1到nm之间的每个整数恰好出现一次。如果一个格子比所有相邻格子(相邻是指有公共边或公共顶点)都小,我们说这个格子是局部极小值。给出所有局部极小值的位置,你的任务是判断有多少个可能的矩阵。 Sol 诈一看不可做… 回归问题本质 假设啥要求都没有,我们知道答案就是(n∗m)!(n*m)!(n∗m)! ,这是因为一...

Yu Gi Oh! 882

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【LuoguP4156】论战捆竹竿

题目链接 题意简述 你有一个长度为 n 的字符串 , 将它复制任意次 , 复制出的串的前缀可以与之前的串的后缀重叠在一起 , 问最后总共可能的长度数目 , 长度不能超过 www 多组数据。 n≤5∗105,w≤1018n\leq 5*10^5 ,w\leq 10^{18}n≤5∗105,w≤1018 Sol 显然每次可以重叠的部分是原串的一个 boder 假设这个boder长度为 LLL , 那么...

Yu Gi Oh! 720

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【BZOJ 3232】圈地游戏

题目链接 题目描述 DZY家的后院有一块地,由N行M列的方格组成,格子内种的菜有一定的价值,并且每一条单位长度的格线有一定的费用。 DZY喜欢在地里散步。他总是从任意一个格点出发,沿着格线行走直到回到出发点,且在行走途中不允许与已走过的路线有任何相交或触碰(出发点除外)。记这条封闭路线内部的格子总价值为V,路线上的费用总和为C,DZY想知道V/C的最大值是多少。 Sol 分数规划 一个封闭图形可以...

Yu Gi Oh! 697

【BZOJ-3262】陌上花开(三维偏序)

题目链接 题目描述 有n朵花,每朵花有三个属性:花形(s)、颜色(c)、气味(m),用三个整数表示。 现在要对每朵花评级,一朵花的级别是它拥有的美丽能超过的花的数量。 定义一朵花A比另一朵花B要美丽,当且仅Sa&amp;gt;=Sb,Ca&amp;gt;=Cb,Ma&amp;gt;=Mb。 显然,两朵花可能有同样的属性。需要统计出评出每个等级的花的数量。 题解 CDQ分治模板题 其实CDQ分治的思...

Yu Gi Oh! 674

【NOI.ac#31】MST

题目链接 题目描述 小 D 最近学习了最小生成树的有关知识。为了更好地学习求最小生成树的流程,他造了一张 n 个点的带权无向完全图(即任意两个不同的点之间均有且仅有一条无向边的图),并求出了这个图的最小生成树。 为了简单起见,小 D 造的无向图的边权为 [1,n(n−1)/2][1,n(n−1)/2] 之间的整数,且任意两条边的边权均不一样。 若干天后,小 D 突然发现自己不会求最小生成树了。于是...

Yu Gi Oh! 637

【Luogu5294】[HNOI2019]序列

题目链接 题意 给定一个序列,要求将它改造成一个非降序列,修改一个数的代价为其改变量的平方。 最小化总代价。 另有QQQ 次询问,每次修改一个位置上的数。(询问之间独立,互不影响) Sol 神仙 保序回归 问题,完全不会。 首先是一个暴力的每次 O(n)O(n)O(n) 做法。 结论是: 最后的结果序列一定是一段段的相同的数,其值为段中所有元素的平均数。 所以暴力就是维护一个单调栈。 每次加入一个...

Yu Gi Oh! 602

【BZOJ 4455】ZJOI2016小星星

题目链接 题意 给出一棵树和一张图,求出树和图的可能的映射个数,即保证当点映射完后,树是图的一颗生成树 (n&lt;=17) Sol 数据范围较小,于是我们想到了状态压缩 可以暴力映射,用树形Dp去转移 但是可能一个点被映射了多次,于是我们设dp[i][j][k]表示当前点i映射到了图上的点j,子树内映射的集合为k的方案数 然后这样的化每一棵子树内都要暴枚状态,会T掉 我...

Yu Gi Oh! 572

【LuoguP1772】 [ZJOI2006]物流运输

题目链接 题目描述 物流公司要把一批货物从码头A运到码头B。由于货物量比较大,需要n天才能运完。货物运输过程中一般要转停好几个码头。物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格的管理和跟踪。由于各种因素的存在,有的时候某个码头会无法装卸货物。这时候就必须修改运输路线,让货物能够按时到达目的地。但是修改路线是—件十分麻烦的事情,会带来额外的成本。因此物流公司希望能够订一个n天...

Yu Gi Oh! 500
上一篇: 【CF809D】Hitchhiking in the Baltic States
下一篇: 【BZOJ 5019】[Snoi2017]遗失的答案
NeosKnight
博客等级 码龄9年 21粉丝 151原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值