题意:找到一个最长的子串,使得原串的前缀和后缀都和这个子串相同,且3者无交叉。
对原串求一次next,我们发现若顺着next[n]走下去,得到的前缀一定和原后缀匹配,这样就满足了前后相等。
然后只要暴力查找中间是否出现了这个前后缀就够了。
理论复杂度n^2,但是实际不会出现那种情况。
#include
#include
#include
using namespace std;
#defi...
分类:
其他好文 时间:
2014-08-28 11:32:17
阅读次数:
171
/*
题目大意:求解给定两个数之间的完数的数目
解题思路:打一个求一个数所有因子之和的表。
关键点:找出一个数的所有因子,注意给定你两个数的大小关系
解题人:lingnichong
解题时间:2014-08-28 10:25:16
解题体会:注意题意啊
*/
完数
Time Limit: 2000/1000 MS (Java/Others) Memory L...
分类:
其他好文 时间:
2014-08-28 11:31:49
阅读次数:
254
UVA 538 - Balancing Bank Accounts
题目链接
题意:给定一些人的欠钱关系,要求在n-1次内还清钱,问方案
思路:贪心,处理出每个人最后钱的状态,然后直接每个人都和最后一个人操作即可
代码:
#include
#include
#include
#include
#include
using namespace std;
co...
分类:
其他好文 时间:
2014-08-28 11:29:29
阅读次数:
214
题意 给你一些牌 全部正面朝下放桌子上 你选一个起点 翻开那张牌 牌上的数字是几就向前走几步 J,Q,K 都是向前走10步 A向前走11步 知道向前走对应的步数后超过了终点 输入n m 和n个数 代表你以第m张牌为起点 依次掀开了n张牌就不能再掀了 然后同样的牌 Alice以1-10张牌中的任意一个为起点 求Alice最后的终点与你的终点相同的...
分类:
其他好文 时间:
2014-08-28 11:29:19
阅读次数:
254
题意:给出n个矩形,求矩形中被覆盖K次以上的面积的和。解法:整体与求矩形面积并差不多,不过在更新pushup改变len的时候,要有一层循环,来更新tree[rt].len[i],其中tree[rt].len[i]表示覆盖次数大于等于i的线段长度,以便求面积,最后只要每次都用tree[1].len[K...
分类:
其他好文 时间:
2014-08-28 11:08:19
阅读次数:
315
原题地址:http://www.cnblogs.com/x1957/p/3373994.html题意:Given an array of integers, every element appearstwiceexcept for one. Find that single one.要求:线性时间复...
分类:
编程语言 时间:
2014-08-28 11:04:19
阅读次数:
274
http://poj.org/problem?id=3169题意:一堆牛在一条直线上按编号站队,在同一位置可以有多头牛并列站在一起,但编号小的牛所占的位置不能超过编号大的牛所占的位置,这里用d[i]表示编 号为i的牛所处的位置,即要满足d[i]-d[i+1]如果是喜欢关系:即需要满足d[b]-d[a...
分类:
其他好文 时间:
2014-08-28 09:38:09
阅读次数:
154
【题意简述】:给出N和C,让我们求出N以内的包括N的素数,然后根据若N以内的素数为奇数个,就将中间2*c-1个素数输出;若为偶数个,就将中间2*c个素数输出。
【分析】:只要题意理解就简单了。
详见代码:
// 224K 16Ms
#include
using namespace std;
#define N 2000
bool isprime[N];
int prime[N],nprime...
分类:
其他好文 时间:
2014-08-28 08:29:39
阅读次数:
172
题意:题意我都快记不清了!!!被坑好久。。就是从根结点开始,每往左走一步,横坐标减1,往右走一步横坐标加1。然后统计同一横坐标下的data值之和。
思路:这个我特地先想了能不能用递归建树的,后来发现在建树过程中其实就可以算了。用一个数组来存各横坐标的data值,然后每来一个该横坐标的结点就直接加上就可以了,完了再遍历输出。
很简单的,思路也很清晰。本来以为可以一次过的,结果4次TLE+6次WA...
分类:
其他好文 时间:
2014-08-28 03:14:08
阅读次数:
288
UVA 11748 - Rigging Elections
题目链接
题意:n个人选举,给出m个人的投票人对于每个人的优先级,现在你想让第c个人赢,问能不能
思路:对于两个人上场,如果a能赢b,就建一条a->b的边,然后问题其实就变成能否以c为根节点是一棵树,直接dfs一遍即可
代码:
#include
#include
#include
using names...
分类:
其他好文 时间:
2014-08-28 02:07:18
阅读次数:
226