自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 CF1187E Tree Painting 换根dp

题目传送门这题一看就很换根dp(换根dp其实挺有意思的。这题只需在草稿纸上画画就能推出式子了。记得开longlong!!#include<bits/stdc++.h>#define int long longusing namespace std;int n,head[205000],cnt,size[205000],f[205000],s[205000];int ans;struct edge{ int v,next;}e[405000];void add(int u,

2021-09-14 12:53:36 75

原创 洛谷P3482 [POI2009]SLO-Elephants 思维题

题目传送门Description给你两个长度为 nnn 的排列 aaa 与 bbb ,每次可以将 aia_iai​ 与 aja_jaj​ 互换,代价为 wi+wjw_i+w_jwi​+wj​ ,请问最小代价是多少。n≤106,100≤wi≤6500n\leq 10^6,100 \leq w_i\leq6500n≤106,100≤wi​≤6500。Solution这类在数列内交换的题,有个很套路的trick:拆分成环。在本题中具体来说就是将 aaa 与 bbb 之间下标或值相等的位置相连。(

2021-08-22 21:11:39 95

原创 牛客11245A 括号串 思维题

题目传送门Description有两个字符串 ttt 和 sss ,问你 ttt 能否通过添括号的方式修改成 sss ,使得 sss 是匹配的。给定 sss 和 ttt,多组数据。Solution如果考虑一步一步让 ttt 变成 sss ,就会比较复杂(我一开始也是这么想的),但我们可以换个思路,即只需考虑 ttt 能否变成 sss ,就很简单了,只需判断一下 ttt 是否是 sss 的字串就可以了。另外还需判断一下 sss 本身是否是匹配的。Code#include<bits/s

2021-08-21 17:19:03 70

原创 P6306 「Wdsr-1」小铃的书 思维题

题目传送门真的不知道是什么类型的题所以说成思维题。。Description给定两个数 nnn 和 kkk 及一个数列,求出该数列中哪一个数出现的次数不是 kkk 的倍数。(保证只有一个)Solution有一个显然易见的结论:当 k=2k=2k=2 时,结果相当于全部异或一遍,能获得 252525 分的好成绩。我们将这个结论推广一下,答案即为在 kkk 进制下做一遍不进位加法,时间复杂度为 O(nlog⁡kai)O(n \log_k a_i )O(nlogk​ai​) ,能得 757575 分。

2021-08-17 18:51:18 114

原创 洛谷P4551 最长异或路径 01trie

题目传送门Description给你一棵有边权的树,求最长异或路径。Solution和这题基本没区别。不妨令 pip_ipi​ 为 iii 号节点到一号的路径异或值。则点 uuu 和点 vvv 的路径异或值为 pu⊕pvp_u \oplus p_vpu​⊕pv​。Code#include<bits/stdc++.h>using namespace std;int n,a[105000],vis[105000];int head[105000],cnt;struct edg

2021-08-12 22:10:42 65

原创 LOJ 10051「一本通 2.3 例 3」Nikitosh 和异或 01trie

题目传送门Descripton给定一个数列,求区间最大异或和。Solution被一个数异或两次的结果为 000 ,相当于没异或,所以a[l]⊕a[l+1]⊕...⊕a[r]=(a[1]⊕a[2]⊕...⊕a[l−1])⊕(a[1]⊕a[2]⊕...⊕a[r])a[l]\oplus a[l+1]\oplus...\oplus a[r]=(a[1]\oplus a[2] \oplus ...\oplus a[l-1])\oplus(a[1]\oplus a[2] \oplus ...\oplus a[

2021-08-12 22:06:02 94

原创 LOJ 10050 「一本通 2.3 例 2」The XOR Largest Pair 01trie

题目传送门Description给定一个数列,从中选出两个数,求异或的最大值。Solution01trie模板题。我们将数据以二进制形式储存在trie树中,每次查询时,从大位到小位尽可能选与当前相异的数据。code#include<bits/stdc++.h>using namespace std;int n,a[1050000];int trie[10500000][2],tot=0,ans=-1;void insert(int x){ int p=0; for(in

2021-08-12 21:30:23 115

原创 AtCoder ABC129E Sum Equals Xor 动态规划

题目传送门Describtion以二进制给定一整数 LLL ,求有多少二元组 (a,b)(a,b)(a,b) 满足 a+b=a⊕b≤La+b=a\oplus b\leq La+b=a⊕b≤L 。Solution对 a,ba,ba,b 的二进制形式的每一位进行讨论。因为异或是不进位加法,所以 a+b=a⊕ba+b=a\oplus ba+b=a⊕b 相当于 aaa 和 bbb 的同一位不能同为 111。令 dp[i][0]dp[i][0]dp[i][0] 为 a⊕ba\oplus ba⊕b 的前 i

2021-08-07 20:42:53 202

原创 洛谷P3398 斐波那契 思维题

题目传送门标签里的lca是什么鬼,用lca不就炸了吗?观察可知,子节点减去父节点为子节点在斐波那契数列中的前继。于是我们可以二分查找第一个小于子节点的斐波那契数,从而实现向上跳一级。(实现过程和lca有一点点像)跳的时候选大的,即深度深的那个节点跳。记得开longlong。#include<bits/stdc++.h>#define int long longusing namespace std;int t,a,b,f[100];int find(int x){ int

2021-08-07 19:04:38 71

原创 UVA 12716 XOR 找规律题

题目传送门题意:给定整数 nnn ,求满足1≤b≤a≤n1 \leq b \leq a \leq n1≤b≤a≤n且gcd⁡(a,b)=a⊕b\gcd(a,b)=a \oplus bgcd(a,b)=a⊕b的二元组 (a,b)(a,b)(a,b) 的数量.因为当 a=ba=ba=b 时无解,所以下面默认 a>ba>ba>b.这里我们有两个结论,下面依次给出并证明:结论1 :gcd⁡(a,b)≤a−b\gcd(a,b)\leq a-bgcd(a,b)≤a−b证明:令 gcd⁡(a,

2021-08-07 16:28:44 192

原创 介绍qwq

介绍Js某弱校OIer,现在初二。会不定期更新,但会鸽(如果您发现了一些错误,可以私信qq3393334982。谢谢您的观看qwq

2021-08-06 20:47:58 62

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除