自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Codeforces——949B. A Leapfrog in the Array.

949B看到这个数据范围,我的第一想法是找找规律,看看最后的排列和n有没有什么关系。果不其然,有规律:奇数位置loc的值就是 (loc+1)/2。偶数呢??如果忽略奇数位置的值,只看偶数位置的排列。如果n为奇数(1、3除外):例如:n=5,只看偶数位置的排列: 5 4 n=7,只看偶数位置的排列: 6 5 7 n=9,...

2020-04-21 16:41:34 189

原创 AtCoder Contest 156 E - Roaming

第一次觉得自己组合数学还可以,也可能是题目太明显了大致题意:有n个房间,每个房间里面都有1个人,然后发生了k次移动,问现在可能的情况有多少。先思考,在k次移动后,可能会出现多少个房间的人数为0,很显然,房间人数为0的房间个数的取值范围是[0,min(k,n)]。再思考,在有 i 个房间人数为0后,就需要把这 i 个人分配到 n-i 个房间中,所以问题就变成了:把 i 个人分配到 n-i...

2020-02-24 16:50:51 257

原创 Codeforces 1272E——E. Nearest Opposite Parity

1272E题意:给一个数组arr,然后对于数组中1到n的位置pos,都可以跳向pos+arr[pos] 和pos-arr[pos],现在问题是:每一个位置跳向和它奇偶性相反的位置,最少需要几步。无法跳到则输出-1。简单分析看题解分析:这个可以看成是对奇性点和偶性点跑多源最短路。那么,可以用超级源加上反向建边跑最短路 或者 是反向建边直接多源最短路跑bfs。1.超级源,奇性超级源连接所有...

2020-01-18 18:43:33 310

原创 bzoj——4260

大致题意:给一个数组,找出这个数组的两个不相交区间的值 的最大和,区间的值是区间中的值的异或和。说得很奇怪,实在不清楚就耐心看题目中的公式。大致思路:想办法得到每个位置 前面的 最大 连续区间异或值,和 后面的 最大连续区间异或值。怎么得到?字典树就起了很大的作用,在遍历数组的时候,每次往01字典树中添加从前缀异或和(计算后面 的最大连续区间异或值的时候是用后缀异或和)。所以字典树中存的就是...

2019-10-15 20:17:10 262

原创 Codeforces——914F Substrings in a String

大致题意:给一个字符串str,再给n次操作,其中1操作是改变str中pos位置的字符,2操作是查询 [l,r] 中字符串s出现的次数。第一次用bitset,感觉真是个好东西。真好用。洛谷上面有人写了题解,但是没有写的很具体,所以从来没写过bitset的我就只能一直猜他代码的意思,花了一点时间才搞懂了bitset,其实就是先暴力统计每种字符的位置,然后再用一个temp(bitset类型)去统计每...

2019-09-28 21:06:55 164

原创 洛谷P1879——[USACO06NOV]玉米田Corn Fields

大致题意:有一块地,然后,不对,这是中文题,不用说题意,还是说一下,不然这篇博客看起来就像是划水的博客一样,就是选则一些为1的区域去种草,不能在相邻的区域种草,问种草的方案有多少种。很明显的状压DP,首先预处理出每一行中 可以种草的情况,就是处理出那些草不相邻的并且没有在0上种草的合法情况。然后再对每一行的合法情况:去加上前一行的合法情况的种类,当然,要判断能否从前一行转移到当前行。最后,代码...

2019-09-27 20:45:59 244

原创 洛谷P2574——XOR的艺术

就不说题意了,毕竟中文的简单题意,很显然的线段树,用 lazy数组去维护一下区间被修改多少次,每次区间被修改,区间中1的个数就变成区间长度减去原来区间中1的个数,然后就能解决这道题了。感觉洛谷评分有问题,这明明是道很简单的题,为什么这能是蓝题。状态太差了,我要刷题!!!最后,代码:#include<bits/stdc++.h>using namespace std;s...

2019-09-24 15:40:11 436

原创 Codeforce.787——D. Legacy 线段树上优化建图

大致题意:有n个星球,现在编号为m的星球是地球,然后有三种传送方式,1是从v星球到u星球,2是从v到 [l,r] 区间的星球,3是从 [l,r]区间的星球到v星球。现在求地球到其他星球的最短距离。很明显,暴力建边肯定是不行的。不然也对不起这2600分。这题意就告诉我们该去思考区间建图,而区间的问题就需要用到线段树了。所以大致思路就是线段树上优化建图再跑最短路就可以了。有空想起来再详细的写写...

2019-09-23 17:40:41 272

原创 Codeforces——1219C.Periodic integer number

大致题意:给一个大数num,要求找一个存在着长度为L的循环的数ans,并且要求ans严格大于num。解释一下循环,比如数"123123",就可以看出长度为3的循环。注:9999可以循环长度可以看成是1,也可以看成2,还可以看成4。其实这个不重要,只是我一直wa的时候开始怀疑这个了。。。。因为这道题有一点点细节的地方没有考虑到,所以就一直wa,一直wa。。所以写篇博客记录一下自己是如何犯蠢的。...

2019-09-18 23:53:59 265

原创 2019ICPC上海网络赛——G.substring

大致题意:给一个主串S,再给Q个字符串str,判断每个str在Q中的出现次数,这里的str出现的条件是:只要求最前面和最后面的字符必须与S中相同,中间的字符可以打乱顺序。比如abcbd 和abbcd可以看成是相同的。很明显的哈希,最朴素的想法,先对S哈希一次,再对每次的str哈希,最后去S中计算出现了多少次。对于每个str,要花费的时间复杂度是O(n),str的个数是20000,肯定超时。。。...

2019-09-17 16:32:12 175

原创 ICPC徐州网络赛——J. Random Access Iterator

大致题意:某个人写了一个dfs的函数,这个函数的作用是去找一棵树的高度,但是这个函数中 每次去找子节点的时候都是等概率随机的选择一个节点进行访问,求无法正确得到树的高度的概率。当我看到这道题的时候就觉得这道题是个简单题,比赛的时候想的就是从底往上递推就行了,但很可惜,我dp学得太垃圾了,而且比赛的后半段已经没有很好的状态去思考这道题了,赛后再看觉得这道题是真的简单。。。。。有点坑的地方是这里给的边...

2019-09-09 15:07:12 132

原创 ICPC徐州网络赛——M.Longest subsequence

大致题意:在第一个字符串str1中找一个最长的子序列,要求这个子序列的字典序严格大于第二个字符串。题解上面说的是维护一下以当前位置的字符结尾的 满足的子序列 的最长长度,感觉说起来好奇怪。反正不知道因为什么原因,在比赛的时候就是没有想到这种写法,但是看完题的第一眼,直觉告诉我应该用线段树。所以二话不说上手写一发,然后wa了。。最后手写了几组数据,把细节处理了就A了。主要是这两组数据aaaaa ...

2019-09-09 08:55:57 156

原创 hdu-4333

大致题意:给一个字符串,然后不断得把第一位的字符放到最后一位构成新的字符串,判断可以构成的字符串中有多少种不同的字符串比原字符串小、相等或者大。很基本的思路就是把字符串扩长,由字符串S变成SS,然后跑exkmp,用exkmp处理出SS的每一个后缀与SS本身的最长公共前缀LCP。然后就变成了判断每个后缀和原串不同位置的大小了,怎么去重??可以知道,S的循环节长度之后,再判断的那些串都是重复的了。怎么...

2019-09-03 20:09:13 165

原创 纪念一下我最近降智的这些日子——codeforces D2. Equalizing by Division

大致题意:给n个数,求通过操作,让数组中的有K个相同的数的最少操作次数。操作:将数字右移一位,就是除二取整啦。感觉最近中了降智打击,脑袋昏昏沉沉的,还有思考问题的时候像个HP一样。。。。。。。可能是太紧张了,而且休息的不够吧。解题思路,枚举一下每个数通过操作后的可能值,再用map统计一下不就完了,当然,先对原数组排序一下。最近是真的蠢,这个简单题当时都没有秒。。。。。。。#incl...

2019-09-03 20:08:03 89

原创 bzoj——1100

大致题意:给一个多边形,判断这个多边形的对称轴有多少条。把多边形的边和角字符化,然后用马拉车算法或者KMP算法判断字符串中有多少个回文。字符化这个操作是有点秀的。en,有点秀。最后,代码:#include<bits/stdc++.h>using namespace std;const int maxn=1e5+100;long long int s[maxn*4...

2019-08-30 20:29:03 149

原创 快速傅里叶变换(FFT)

GYM 101002.EK-Inversions#include<bits/stdc++.h>using namespace std;const double PI=acos(-1.0);typedef complex<double> cp;const int maxn=3e6+100;cp arr[maxn],b[maxn];cp omega[maxn...

2019-08-27 19:38:22 179

原创 2019HDU集训——6625 three arrays

大致题意:给两个数组a,b,现在可以把a,b分别重排,也就是a,b中的元素可以任意改变位置。然后把a,b中每个位置的数异或起来。要求最终得到的数 组成的 数组中元素的字典序最小。(感觉自己描述地好垃圾,算了,看了题的都知道是什么意思)。很明显,要用到字典树,因为字典树中的“前缀”性质就简直是这道题的利器。思路:把a数组中的数分解成二进制去建一棵字典树。b也同样建一棵。然后根据在纸上画出来的字典...

2019-08-23 22:09:31 131

原创 poj1410——Intersection

大致题意:就是判断矩形有没有和线段相交的水题,等等,为什么别人说还要判断是不是在矩形内???但是我没判断啊???我怎么就过了????可能是数据水吧,其实判断线段在不在矩形内也很简单,大不了就多一点点代码量判断一下。算了,不添了,就当是生活给的一点小乐趣吧。最后,代码:#include<iostream>using namespace std;struct line{ ...

2019-08-16 14:43:12 126

原创 poj——2653 Pick-up sticksPick-up sticks

大致题意:给一个n代表n根棍子,接下来n行代表这些棍子的两端坐标,输入的顺序就是棍子摆放的顺序,最后输出那些没有被压在下面的棍子。题中还说了,在顶上的棍子不超过1000,所以开个东西记录一下每次摆放完棍子后,顶端的棍子是哪些不就随便过了。没有1a的原因是因为cin超时。。。。。。最后,代码:#include<iostream>#include<queue>#i...

2019-08-16 14:43:03 124

原创 poj1269——Intersecting Lines

大致题意:就是给你两条直线,判断直线的关系,如果相交,就输出交点坐标,如果平行,就输入NONE,如果共线,就输出LINE。这些东西位置关系判断都很简单,用个叉乘就随便搞了。感觉大部分博客都好像没什么详细说一下直线求交点,大部分都是线段求交点,然后再瞎扯一下,就把直线求点扯过去了,当然,很可能是我水平不够没看懂才觉得奇怪,不过我觉得如果加一点点的注释就好了,毕竟定义的东西意思要明确啊。最后,代码...

2019-08-14 23:17:07 110

原创 poj 3304——Segments

大致题意:给n条线段,判断是否存在一条线段,使得所有的线段在它上面的投影是否有公共交点。大致思路:既然是投影,那很明显在纸上画一下就知道,以某条线段作为x轴建立直角坐标系,那就可以轻松的画出每条线段在x轴上的投影,也就很容易就知道,判断投影有没有公共点,其实就是看有没有一条直线可以穿过所有的线段。这里其实稍微跳了一点,但是画图就很容易知道我在说什么。看题目的数据范围n为100,所以暴力...

2019-08-13 21:50:04 97

原创 poj2318——TOYS

基础的计算几何入门题,对几何题有一种说不出的畏惧感,一直没怎么做过几何题,所以从今天开始刷刷几何。大致题意:在一个盒子里面有n个隔板,再给m个玩具的坐标,最后输出每个区域内玩具的数目,很明显的二分加叉乘就随便过的水题。留个纪念 ;)#include<iostream>#include<cstring>#include<stdio.h>using ...

2019-08-11 15:16:25 123

原创 2019HDU多校集训——Operation

大致题意:给n给数字,再给m次操作,操作类型有1操作或者0操作。0是查询操作,1是添加数字操作。假设每次查询的结果是ans,0操作是查询 (l^ans)%n+1到(r^ans)%n+1 区间的数字异或的最大值(如果l^ans)%n+1大于(r^ans)%n+1 ,就互相交换),1操作是往n个数字后面添加一个数字 x^ans。 如果懂得前缀线性基,那么这道题就没什么意思了。代码:#inc...

2019-08-10 17:25:48 131

原创 恭喜您作为幸运用户被抽中阅读这篇博客——线性基

讲讲线性基吧(说ji不说ba,文明你我他)引入:在二维平面内,只需要用x轴、y轴的两个单位向量,就可以表示出平面内的所有向量。就是说,任何一个二维平面的向量,都可以表示成。这是高中都知道的东西。(表示x轴的单位向量,表示的是y轴的单位向量。)那就可以称()是这个二维空间的基,大概口胡一下基的意思,就是用这个基就可以表示出这个空间里面的所有值了。现在正式开始线性基:现在有n个数...

2019-08-09 16:52:28 207

原创 2019HDU多校集训——string matching

题目大意:给一个字符串s,计算从下标1开始一直到字符串末的子串 与 原串s的最长公共前缀lcp(如果子串的长度与lcp不相同,则需要额外的+1)。exkmp的板子题,很无聊。#include<bits/stdc++.h>using namespace std;const int maxn=1e6+100;char s[maxn];int Next[maxn];void ...

2019-08-06 17:35:38 270

原创 2019HDU多校集训——Minimal Power of Prime

题目大意,输出一个数n的质因数的最小次幂。想到了先筛出小部分的质因数,后面又想到了开方之类的操作,但是脑子不正常,把开方这里想歪了。。。。。。感觉最近状态太差了,有时候想题的时候像个憨憨一样。好像以前也有这种情况出现过,然后多睡觉就好了??解题思路:根据唯一分解定理,一个合数必然是某些素数次方的乘积。所以先线性筛 筛出1e4范围内的素数,再去分解n,同时得到一个当前的最小次幂ans,如果最后n...

2019-08-04 16:07:52 164

原创 Miller_Rabin :)

Miller_Rabin:读作米勒罗宾。知道这个名字是学习这个算法的唯一难点。在某些文章里看到过,说是人类目前大部分信息加密,都是基于大数分解。没学过密码学,大概猜测一下可能是根据唯一分解定理,把数分解成质数之乘(比如 10=2*5,24=2*2*2*3)???扯远了。怎么判断一个数p是否是素数???最容易想到的就是去判断从2到的整数中,有没有可以整除p的数。(因为素数的定义就是从只有...

2019-08-03 23:19:54 370

原创 HDU-2196-Computer 树形DP

大致题意:每一台电脑和某些电脑相连,所有电脑构成了一颗树。现在,需要求每台电脑传送信息的最大距离,也就是到达叶子节点的最大距离。很经典的一道树形DP,大致思路:任选一个节点作为根节点,然后用DFS跑出每个节点向下的最大距离和次大距离。然后再进行一次dfs,找出每个节点向父节点可以走的距离,最后比较一下就是结果了。(解题过程不能说得太清楚了,略加提示,请仔细思考)。#include<bi...

2019-07-26 20:55:17 167

原创 中国剩余定理=.=

中国剩余定理(孙子定理)前置知识:逆元,取模运算。先说说这个定理可以干什么吧。例题:设一个非负整数X,X%3的值为2,X%5的值为3,X%7的值为6。那么X的值是多少??即%3%5%7计算:1.先求出3,5,7的公倍数M,M也就是105.2.对于第一个式子,设=M/3,也就是35.(别问为什么这么蠢的在这里绕,耐心看),再求在模3下的逆元 。(逆元...

2019-07-25 22:12:44 209

原创 震惊,全中国有十亿人都不知道它————笛卡尔树(Cartesian_tree)

笛卡尔树学习笛卡尔树的完整步骤:1.打开音乐播放器,播放《你是人间四月天》2.看完这篇博客笛卡尔树:笛卡尔树是带有一些特殊性质的树形结构,好像说了和没有说一样。性质:笛卡尔树中有这样的二元组(key,value)。其中key满足二叉搜索树的性质(即父节点的key值大于左儿子,父节点的key值小于右儿子 )。value满足堆的性质(即父节点的value值小于子节点的...

2019-07-23 14:37:54 1130 2

原创 矩阵快速幂——入门篇

矩阵入门:一、矩阵乘法(很简单,自行了解)二、矩阵性质:矩阵没有交换律、但是矩阵有结合律结合律:现有矩阵A、B、C。 (A*B)*C=A*(B*C)。进入正题:斐波拉契数列:1、1、2、3、5、8、13、21……也就是当n>2时,问题:我们现在要求第1000000000000000个斐波拉契数,那么我们该怎么求呢,根据公式一直递推下去...

2019-04-29 21:20:51 447

空空如也

空空如也

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

TA关注的人

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