摘要: 这道题折腾了好长时间,必须写一下。大致题意:主要提议是要在一个数组种找一个数列满足这个数列相邻两个数之间一定有约束即(gcd>1)。思路:一看就是dp的题目,数据1e5显然不能暴力。所以类似于最长上升子序列的思想,我用了一个数组表示当前约束为prime[i]最大连续长度。接下来就好做了dp[i] = max(tag[k])k为num[i]所有约数。每次状态转移完更新tag数组就是将他所有的约束都更新为当前最大值。最后扫描一边dp数组最大值即为答案。注意所有的约数必须都为素数,我一开始就错在了这里,然后就是编程上注意,我好tle了一次。代码如下: 1 #include 2 #include 阅读全文
posted @ 2013-11-20 23:09 张小豪 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 也是时候写一篇博客反思总结一下,顺便给自己立一个flag,不管有没有人看至少可以一年之后自己回过来看能否按计划进行。首先是acm感想,然后是对于这次两场现场赛的总结,主要还是反思吧。回想起大一暑假开始接触acm,那时候根本不知道acm是一样什么东西,以为只是c语言课程的进阶版。夏季学期的选拔赛我并没有通过,但是抱着初生牛犊不怕虎的热情从李青老师那了解了暑假集训的安排,义无反顾的走进了这个神奇的世界。刚开始一个暑假的集训几乎就是云里雾里由于基础太差,什么也听不懂。只记得当初只是想要坚持下来,经常连水题都做不出来。唯一的乐趣也就是和周尼玛比一比水做的题多了,那时候感觉boss和五子棋还有小贤好强啊 阅读全文
posted @ 2013-11-20 22:04 张小豪 阅读(479) 评论(0) 推荐(1) 编辑
摘要: Problem A Good Number找出数组中包含所有小于等于k的数字的数。水题代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 8 using namespace std; 9 10 int n, k, vis[11];11 12 bool judge(long long num)13 {14 memset(vis, 0, sizeof vis);15 while(num){16 vis[num%10] = 1;17 num/=... 阅读全文
posted @ 2013-11-20 01:59 张小豪 阅读(257) 评论(0) 推荐(0) 编辑