JZOJ 6800.NOIP2020.9.19模拟spongebob】的更多相关文章

题目链接: https://jzoj.net/senior/#main/show/5178 题目: 题解: 我们定义$f[pos]$表示以位置pos为后缀的字符串对答案的贡献,答案就是$\sum_{i=1}^{n} f[i]$ 考虑怎么得到f数组,我们有$f[i]=f[nxt[i]]+[i是偶数]$ 其实蛮显然的,$f[i]$和$f[nxt[i]]$除了多出前缀i这个贡献没什么区别 #include<algorithm> #include<cstring> #include<…
题目链接: https://jzoj.net/senior/#main/show/5177 题目: 题解: 首先选出的泡泡怪一定是连续的一段 L,R 然后 L 一定属于虫洞左边界中的某一个 R 也同样是这样的 这样就可以枚举 L 和 R,$O(N)$判断是否可行(显然不可能重复经过某个点),总复杂度 $O(NM^2)$ 我们看到 R<=1e6 选择二分 R 而不是枚举,这样就可以了 #include<algorithm> #include<cstring> #include&…
Begin (题目的排序方式:Unkown其实是按心情排的) 异或:(摘自百度百科) 异或(xor)是一个数学运算符.它应用于逻辑运算.异或的数学符号为“⊕”,计算机符号为“xor”.其运算法则为: a⊕b = (¬a ∧ b) ∨ (a ∧¬b) 如果a.b两个值不相同,则异或结果为1.如果a.b两个值相同,异或结果为0. 异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),…
3453.[NOIP2013中秋节模拟]连通块(connect) Time Limits: 1000 ms Memory Limits: 262144 KB (File IO): input:connect.in output:connect.out Description 你应该知道无向图的连通块的数量,你应该知道如何求连通块的数量.当你兴奋与你的成就时,破坏王Alice拆掉了图中的边.当她发现,每删去一条边,你都会记下边的编号,同时告诉她当前连通块的个数. 然而,对边编号简直就是个悲剧,因为…
题目链接: http://172.16.0.132/senior/#main/show/5852 题目: 题目大意: 多组询问,每次询问树上两条链是否相交 题解: 两条链相交并且仅当某一条链的两个端点的LCA在另一个端点上 对于每次询问,我们分别处理出两条链端点的LCA,通过倍增判断是否存在一条链的LCA在另一条链上 #include<algorithm> #include<cstring> #include<cstdio> #include<iostream&g…
题目链接: http://172.16.0.132/senior/#main/show/5875 题目: 题解: 注意这题只能经过开放的港口 我们考虑用vector存下每个点不能到的点,并把并让vector里面的元素升序排序,这样我们就可以二分查找一个点是否与另外一个点相连 接下来我们对于每一个开放的港口bfs,每次bfs都把属于这个连通块的港口去掉 考虑开两个队列来bfs,队列1存储的是当前连通块里还没有拓展的点,队列2里存储的是还剩下的点,看看代码就可以理解了 #include<algori…
题目大意: 判断一个序列是否是另外一个序列删除若干个数字之后得到的. 正文: 我们可以定义两个指针,分别指向长序列和短序列. 拿样例来举例: 如果指针指的数相同,两个指针都往右跳: 如果不同,则指向长序列的指针往右跳: 以此类推. 超时,得分 \(\texttt{30}\) 分. 考虑将长序列每一个出现过的数的位置存起来,然后用二分找合适的位置.可以用 \(vector\) 来存,再用一个变量 \(last\) 记录短序列每一个数字在长序列出现的位置,二分时就可以找大于上一个数的 \(last\…
Google.Youtube.Facebook等均支持IPv6访问,IPv4网络的用户大部分都无法访问,比如Gmail,Google Docs等等各种相关服务.而该类网站大部分均已接入IPv6网络,因此通过IPv6访问则不受任何限制,尤其是对教育网用户来说,使用IPv6更是免费的服务. 而接入IPv6网络,也不仅仅只有教育网用户才能享受,普通公网用户也都可以通过隧道或软件来接入IPv6网络,但根据所处的网络环境.接入方式,访问IPv6的速度通常取决于本地网络宽带提供商与所接入的IPv6隧道服务器…
一.这篇文章讲了什么? 这篇文章很有参考性哈.本来是想等一段时间有更多条技巧后在发布的,不过,突然发现,我是去年的今天在博客园落户了,祝我的博客一周岁快乐,希望以后多分享一些文章啦.所以就把草稿箱的其中一篇很实用性的linux小技巧分享给运维的基友们.后续该篇文章会一直更新新技巧哟.感谢童鞋们的关注哈. 二.干货开始啦! 1.查看端口监听 [root@opm ~]# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a,S[a]…
这是两个关键字,用于异步编程.我们传统的异步编程方式一般是Thread.ThreadPool.BeginXXX.EndXXX等等.把调用.回调分开来,代码的逻辑是有跳跃的,于是会导致思路不是很清晰的问题,在.NET 4.5中,新推出的async.await关键字,可以帮助我们像写同步方法一样去写异步方法(保证代码的整齐清晰). 先来看个传统同步方法例子: 1 static void Main(string[] args) 2 { 3 // 同步方式 4 Console.WriteLine("同步…