上一页 1 2 3 4 5 6 7 8 9 10 ··· 14 下一页
摘要: 集合最多为1600的字符串,hash了N个进制//hash基础题, 转化为 nc进制#include <stdio.h>#include <string.h>#define MAX 1600000char s[MAX];int Hash[MAX*10]={0},a[130];int main(){ int i,j,h,sum,n,nc,num,len; scanf("%d%d%s",&n,&nc,s); memset(a,-1,sizeof(a)); len=strlen(s); for(i=0;i<len;++i) if(a[ 阅读全文
posted @ 2013-05-15 19:43 小仪在努力~ 阅读(114) 评论(0) 推荐(0) 编辑
摘要: #include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<string>#include<queue>using namespace std;int mark[120][120],dp[120][120];int max(int a,int b,int c){ if(a<b) a=b; if(a<c) a=c; return a;}void init() //初始化{ m 阅读全文
posted @ 2013-05-14 09:21 小仪在努力~ 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 有限制条件的DP:首先其实能堆叠起来,下面砖头的长和宽比上面的严格要大。#include<iostream>#include<cstdio>#include<algorithm>#include<cmath>#include<cstring>#include<string>using namespace std;struct point { int x,y,z;}p[1005];bool cmp(point a,point b){ if(a.x==b.x) return a.y>b.y; return a.x> 阅读全文
posted @ 2013-05-13 10:17 小仪在努力~ 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 这次省赛完,该反思和总结的事情好多。比如说,最主要的原因队伍间没有配合,做题目完全单挑,无法集思广益,一旦大思路发生错误那就一直错下去,这叫做错误的延伸。然后平时做题不多思考,直接就翻题解,导致对题型的理解不深。ACM是团体的活,如果你想依靠个人的实力单挑全场,你想太多了,除非你是楼教主转生。 这次比赛,对面坐着一个中大的队,每次抬头看他们,都看到他们在一起讨论题目,但是感觉我们队完全没有这样的情况。这说明我们队还是太年轻,队伍建设相对落后。 个人训练方向:模拟、DP、贪心、数学、字符串,外加各种数据结构 阅读全文
posted @ 2013-05-13 09:33 小仪在努力~ 阅读(179) 评论(0) 推荐(0) 编辑
摘要: /*求形成循环节需要增加颜色珠子。*/#include<iostream>#include<cstring>#include<string>#include<cmath>#include<cstdio>#include<algorithm>#include<vector>using namespace std;int lena,lenb,Max;int nt[100005];void getnt(string b){ int j=0,k=-1; nt[0]=-1; while(j<lenb) { if(k 阅读全文
posted @ 2013-05-11 21:26 小仪在努力~ 阅读(149) 评论(1) 推荐(0) 编辑
摘要: /*求循环节和循环周期已经保证一定是循环字符串*/#include<iostream>#include<cstring>#include<string>#include<cmath>#include<cstdio>#include<algorithm>#include<vector>using namespace std;#define M 1000005int lena,lenb,Max;int nt[M];char b[M];void getnt(char *b){ int j=0,k=-1; nt[0]= 阅读全文
posted @ 2013-05-11 21:20 小仪在努力~ 阅读(160) 评论(0) 推荐(0) 编辑
摘要: /*题意:求循环节最长长度nt[]数组的分布:abcd -1 0 0 0 0 aaaa-1 0 1 2 3abab-1 0 0 1 2注意-1后再也没有出现过-1啦*/#include<iostream>#include<cstring>#include<string>#include<cmath>#include<cstdio>#include<algorithm>#include<vector>using namespace std;#define M 1000005int lena,lenb,Max;in 阅读全文
posted @ 2013-05-11 21:10 小仪在努力~ 阅读(152) 评论(0) 推荐(0) 编辑
摘要: /*题意:求公共前缀和后缀相同的部分是什么Input:ababcababababcababaaaaaOutput:2 4 9 181 2 3 4 5*/#include<iostream>#include<cstring>#include<string>#include<cmath>#include<cstdio>#include<algorithm>#include<vector>using namespace std;#define M 400005int lena,lenb,Max;int nt[M];c 阅读全文
posted @ 2013-05-11 20:56 小仪在努力~ 阅读(122) 评论(0) 推荐(0) 编辑
摘要: o(︶︿︶)o 烦躁,看了半天没看懂这个O(n)的回文串算法是什么东西,直接套上模板就交了。然后AC了题目:Description据说如果你给无限只母牛和无限台巨型便携式电脑(有非常大的键盘),那么母牛们会制造出世上最棒的回文。你的工作就是去这些牛制造的奇观(最棒的回文)。在寻找回文时不用理睬那些标点符号、空格(但应该保留下来以便做为答案输出),只用考虑字母'A'-'Z'和'a'-'z'。要你寻找的最长的回文的文章是一个不超过20,000个字符的字符串。我们将保证最长的回文不会超过2,000个字符(在除去标点符号、空格之前)。In 阅读全文
posted @ 2013-05-10 17:03 小仪在努力~ 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 首先考虑,若分解成k段,则n的值至少为1+2+3+4+...+k=(k+1)*k/2所以本题k的最大值为315假定dp[k][n]表示为可以分成k段和为n的方案数,情况分为两种:1、只有一个1的,则等于dp[k-1][n-k],相当与从n里拿走k个1,可以分成k-1段的方案数2、没有1的,则等于dp[k][n-k],相当于从n里拿走k个1,可以分成k段的方案数所以 dp[k][n]=dp[k-1][n-k]+dp[k][n-k]#include<iostream>#include<cstdio>#include<algorithm>#include<c 阅读全文
posted @ 2013-05-08 15:35 小仪在努力~ 阅读(176) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 14 下一页