摘要:
【题目链接】 http://codeforces.com/contest/430/problem/B 【题目大意】 祖玛游戏,给出一个序列,表示祖玛球的颜色序列,三个或者以上的球碰在一起就会发生消除,现在有一个颜色为x的球,问最多可以消除多少球。 【题解】 消除的球一定是连续的一段,因此我们可以枚举 阅读全文
摘要:
【题目链接】 http://poj.org/problem?id=3061 【题目大意】 给出S和一个长度为n的数列,问最短大于等于S的子区间的长度。 【题解】 利用双指针获取每一个恰好大于等于S的子区间,更新答案即可。 【代码】 阅读全文
摘要:
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=5726 【题目大意】 给出数列An,对于询问的区间【L,R】,求出区间内数的GCD值,并且求出GCD值与其相等的区间总数 【题解】 首先,固定一个区间的右端点,利用GCD的递减性质,可以求出GCD相等 阅读全文
摘要:
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=5730 【题目大意】 给出一个数组w,表示不同长度的字段的权值,比如w[3]=5表示如果字段长度为3,则其权值为5,现在有长度为n的字段,求通过不同拆分得到的字段权值乘积和。 【题解】 记DP[i]表 阅读全文
摘要:
【Summarize】 1.划分为两堆的无序模型可以利用二进制枚举, 而划分为两堆的有序模型可以枚举全排列取定长 2.当搜索终态唯一时可考虑逆向搜索 POJ 1979:Red and Black AOJ 0118:Property Distribution AOJ 0033:Ball POJ 300 阅读全文
摘要:
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=5145 【题目大意】 给出一个数列,每次求一个区间数字的非重排列数量。答案对1e9+7取模。 【题解】 我们发现每次往里加入一个新的数字或者减去一个新的数字,前后的排列数目是可以通过乘除转移的,所以自 阅读全文
摘要:
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=4300 【题目大意】 给出一个序列a,求一个子序列b,使得&和不为0 【题解】 记录某个位置上为1的&序列长度的最长值,对于每个加入的数字, 更新每个数组。 __builtin_ctz(x 阅读全文
摘要:
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=5724 【题目大意】 给出一个n行,每行有20格的棋盘,棋盘上有一些棋子,每次操作可以选择其中一个棋子,将其移至最左端的空位,两个人轮流操作,无法操作者输,判断游戏胜负。 【题解】 首先对于单行20格 阅读全文
摘要:
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=1177 【题目大意】 给出一个矩阵,从中选出3个k*k且不相交的矩阵,使得其总和最大 【题解】 只要处理四个方向的前缀最大值,就可以分类比较得到答案。 【代码】 阅读全文
摘要:
【题目链接】 http://codeforces.com/problemset/problem/706/D 【题目大意】 要求实现一个集合中的三个操作,1:在集合中加入一个元素x,2:从集合中删除一个元素x(保证x存在),3:要求从集合中选出一个数,使得其与给出的数x的异或值最大,输出这个异或值。 阅读全文
摘要:
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=3374 【题目大意】 给出一个字符串,求出最小和最大表示是从哪一位开始的,并且输出数量。 【题解】 最小最大表示可以用最小最大表示法解决,数量则可以发现就是该字符串的循环节,可以用nxt数组求解。 【 阅读全文
摘要:
【题目链接】 http://poj.org/problem?id=2758 【题目大意】 给出一个字符串,支持两个操作,在任意位置插入一个字符串,或者查询两个位置往后的最长公共前缀,注意查询的时候是原串下标,插入的时候则是最近更新串的下标。 【题解】 因为插入操作只有两百次,所以考虑hash重构来处 阅读全文
摘要:
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=5782 【题目大意】 给出两个字符串,判断他们每一个前缀是否循环同构,循环同构的意思就是,字符串首位相接拼成一个环,两个环通过旋转可以相等。 【题解】 这道题用到了一个神奇的结论,如果S字符串和T字符 阅读全文
摘要:
【题目链接】 http://poj.org/problem?id=3450 【题目大意】 求k个字符串的最长公共子串,如果有多个答案,则输出字典序最小的。 【题解】 我们对第一个串的每一个后缀和其余所有串做kmp,取匹配最小值的最大值就是答案。 【代码】 阅读全文
摘要:
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=2594 【题目大意】 给出两个字符串,求第一个字符串和第二个字符串前缀和后缀的最大匹配。 【题解】 把s2串接在s1串的后面,那么这个串的前缀和后缀的最大匹配就是答案,注意在求nxt时候和失配指针和两 阅读全文
摘要:
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=3613 【题目大意】 一个字符串的价值定义为,当它是一个回文串的时候,价值为每个字符的价值的和,如果不是回文串,价值为0,现在给出每种字符的价值。给出一个字符串,要求将其划分为两个子串,要求两个子串的 阅读全文