模式串为子串 KMP /* @author : victor */ #include <bits/stdc++.h> using namespace std; typedef long long ll; ; int next_[MAX]; char s1[MAX], s2[MAX], ans[MAX]; int pos[MAX]; int l1, l2, cnt; void get_next(char x[],int m,int next_[]) { int i ,j; j = next_[]…
题意: 给出一个\(n\)个点\(m\)条边的无向图,现在要给若干个点染色,使得每条边都至少邻接一个被染色的顶点.问至少要给多少各点染色才能满足条件. 分析: 注意到题目中有一个很特殊的条件: 对于图中任意一条边\(u,v\),有\(min \{ u,v \} \leq 30\) 所以最坏的情况下,最多染30个点就可以满足条件. 所以用bitset维护一下当前被染色的点的情况即可. #include <cstdio> #include <cstring> #include <…
题意:给定一个由小写字母组成的长度为 n 的字符串,首尾相连,可以从任意一个字符开始,顺时针或逆时针取这个串(长度为 n),求一个字典序最大的字符串的开始字符位置和顺时针或逆时针.如果有多个字典序最大的字符串,优先选择开始位置靠前的,如果开始位置相同,优先选择顺时针. 这种字符串的问题,第一反应是后缀数组,为了达到首尾相连的目的,所以先复制了一个两倍长的该字符串,然后再将串倒置,也弄成两倍长度,得到顺逆时针的两倍长的串,并对这两个字符串分别做后缀数组,得到 sa 数组(该串字典序第几小的后缀的开…
题目链接:http://acm.scu.edu.cn/soj/problem/4440/ 题目大意:给一个n*m的方格,求周长小于等于k的矩形有多少个. 解题思路:我之前直接暴力,显然超时,所以后来发现,可以用等差数列的求前n项和公式来代替一层for循环,这样就只有一重循环了,不会超时. AC代码: #include <cstdio> #include <cmath> #include <cstring> #include <algorithm> #incl…
题目链接:http://acm.scu.edu.cn/soj/problem/4436/ 题意:给你n个整数,求这n个数的平方根和是否是一个整数: 解题思路:如果这题每个数给他算出来,必然费时间,可能还会超精度,所以巧妙的方法就是判断这些整数是否全是完全平方数,如果有一个不是,则他们的平方根和肯定不是一个整数. AC代码: #include <cstdio> #include <cmath> #include <cstring> #include <algorit…
UOJ Round #15 大部分题目没有AC,我只是水一下部分分的题解... 225[UR #15]奥林匹克五子棋 题意:在n*m的棋盘上构造k子棋的平局 题解: 玩一下发现k=1, k=2无解,然后间隔着,上下两行相同: 010101 010101 101010 101010 这样构造下来就行了. 然后要特判n=1 或 m=1,这时候k=2可以有解 #include <iostream> #include <cstdio> #include <cstring> #i…
原文链接https://www.cnblogs.com/zhouzhendong/p/CF109D.html 题目传送门 - CF109D 题意 给定两个字符串 $a,b$ ,求一组 $i,j$ 使得 $f(a,i,j)=b$ .如果无解输出 "-1 -1" ,如果多组解,输出 i 尽量大的:如果 i 相同,输出 j 尽量小的. 其中 $f(s,i,j) = s[i+1 \cdots j-1] + r(s[0 \cdots i]) + r(s[j\cdots n-1])$ . $n$…
Censor frog is now a editor to censor so-called sensitive words (敏感词). She has a long text pp. Her job is relatively simple -- just to find the first occurence of sensitive word ww and remove it. frog repeats over and over again. Help her do the tedi…
恩,其实大家都没有报零,反正我是蒟蒻 为了纪念我第一次打过哈希,特此写一篇题解 题目描述 从前有一个的小矩阵,矩阵的每个元素是一个字母(区分大小写),突然有一天它发生了 变异,覆盖了整个二维空间,即不停自我复制产生相同的矩阵然后无隙放置.现在二维空间 已经被它占领了,但你只被告知了大小为R*C 空间的内容(可能包含不完整的原矩阵),为了 将它恢复原状,你需要找到满足条件的面积最小的原矩阵. 奇怪的是,同时有 T 个二维空间发生了变异,你需要尽快解决这些变异. 输入格式 第一行为一个整数T,表示二…
报同步赛的时候出了些意外.于是仅仅能做一做"滞后赛"了2333 DAY1 T1离线+离散化搞,对于相等的部分直接并查集,不等部分查看是否在同一并查集中就可以,code: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int t,n; int father[200001]; struct hp{ i…