首页 > 其他分享 >Yet Another Problem

Yet Another Problem

时间:2024-07-22 10:39:47浏览次数:14  
标签:前缀 奇数 sum 异或 Another Problem Yet

遇到连续段的异或和,考虑前缀异或和

对区间\([l,r]\),观察实施一次操作\([L,R]\)后,区间会变成什么样。不难发现,\([L,R]\)的异或前缀和会变成\([sum_R,sum_{L-1},sum_R,...,sum_{L-1},sum_R]\),于是可以知道,如果\(sum_R≠sum_{L-1}\),就无解;如果\([l,r]\)的长度为奇数,操作一次整个区间就可以了,答案为\(1\),如果为偶数,我们尝试转换为前面一种情况,于是如果\(sum_l=sum_r\)或者\(sum_{r-1}=sum_r\),那么就可以像前面一样操作,答案为\(1\),否则的话,此时我们看样例,就会发现,如果我们在\([l,r]\)中找到一个奇数位\(i\)(注意这里的奇数位是相对于\(l\)而言的,如果\(l\)是奇,那么奇数位指下标为奇数,否则指下标为偶数),使得\(sum_i=sum_r\),此时操作两次就可以了,其余情况无解(证:此时可以用数学归纳法证明,无论怎么改变,\([l,r]\)中的奇数位都不可能等于\(sum_r\),而最终序列的所有异或前缀和一定都为\(sum_r\)的)

标签:前缀,奇数,sum,异或,Another,Problem,Yet
From: https://www.cnblogs.com/dingxingdi/p/18315596

相关文章

  • WPF ListBox's ItemsSource depend on another's ListBoxItem and fully implemented
    //xaml<Grid><Grid.ColumnDefinitions><ColumnDefinition/><ColumnDefinition/><ColumnDefinition/></Grid.ColumnDefinitions><ListBoxGrid.Column="0"ItemsSource=&......
  • WPF ListBox's itemsource depend on another listbox's selecteditem
    //xaml<ListBoxGrid.Row="1"Grid.Column="0"ItemsSource="{Binding}"x:Name="countryLbx"DisplayMemberPath="CountryName"/><ListBoxGrid.Row="1"Grid.Column="1&......
  • problems笔记(^^)
    一些遇到的问题及其践而有效的解决方案CSND博客无法访问  解决方案 若是还无法访问......
  • 题解:CodeForces 1511 C Yet Another Card Deck[暴力/模拟]
    CodeForces1511CC.YetAnotherCardDeckDescriptionYouhaveacarddeckof\(n\)cards,numberedfromtoptobottom,i. e.thetopcardhasindex\(1\)andbottomcard —index\(n\).Eachcardhasitscolor:the\(i\)-thcardhascolor\(a_i\......
  • CF1114F Please, another Queries on Array?
    一道很好的线段树+求欧拉函数题!!!先简单理解一下题意:给你一段长度为n的区间,q次操作,输入为1时将l~r区间每个数乘上x,输入为2时求解\(\varphi(\prod_{i=l}^{r}{a_i})\)。赛时心历经过:第一眼感觉是个线段树板子题,赛时也是这么想的,打到一半发现不对劲,首先这个乘积就没法维护,随便乘......
  • Fortune Wheel - Problem
    FortuneWheel-Problem题目大意有一个上有编号\(0\)到\(n-1\)的转盘,你可以使转盘随机旋转到一个位置或者向前旋转\(k_i\)个位置,求在最优策略下的期望步数。数据范围满足,\(1\len\le10^5,\lvertk\rvert\le500\)。思路考虑先使用bfs,在\(O(n\lvertk\rvert)\)的......
  • Solution - Atcoder ABC177F I hate Shortest Path Problem
    考虑按题目所述的进行DP。设计状态\(f_{i,j}\)代表强制要求\((i,j)\)要走向\((i+1,j)\)最小的横坐标之差,这是因为对应的纵坐标之差是确定的。对于转移,考虑到对于\(j\not\in[a_i,b_i]\),直接从上面转移下来即可,即\(f_{i,j}\leftarrowf_{i-1,j}\)。对于\(j......
  • Yet Another Permutation Constructive
    这道题目不用写,因为必须要求用kotlin语言讲一下我做这道题目的过程我最开始正着想,如果\(k\)比较大的话,我们就想一次删的数少一点,所以考虑一次操作有哪些数被保留,于是我们发现,原序列的极大值点会被保留,于是一次操作被保留的数最多的情况就是如下的波浪形:然后我们就发现正着想很......
  • Nanami and the Constructive Problem
    线段树优化建图一般用动态开点线段树实现建立对称的入树和出树点击查看代码#include<bits/stdc++.h>usingnamespacestd;vector<int>a[600005];intc[100005],cnt,tot,sum,id[600005],dfn[600005],low[600005],val[100005],n,m;stack<int>s;boolv[600005],h[600005......
  • P9565 [SDCPC2023] Not Another Path Query Problem
    P9565[SDCPC2023]NotAnotherPathQueryProblem位运算+并查集从价值至少为\(V\)入手,枚举一段二进制上长为\(i\)的前缀,第\(i+1\)位取\(1\),并且比\(V\)要大,这样\(i+1\)之后的位就可以任意取了(不妨现在都先为\(0\)),设这样构成的二进制串为\(s\)。考虑按位与的性质......