随笔分类 -  组队赛#18(13多校#4)

摘要:题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4639题目思路: 首先我们取出所有he这样的东西,考察连续的k个“he"串,通过找规律+数学归纳法容易证明有f【k】种方式,其中f为Fibonacci数列, 那么再统计这个串中有多少个这样的块就可以了,他们乘起来。代码:#include #include using namespace std;; int p[10000]; void pre() { p[1]=1; p[2]=2; for(int i=3;i>T; string s; int index=0; ... 阅读全文
posted @ 2013-09-03 22:26 814jingqi 阅读(176) 评论(0) 推荐(0)
摘要:题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4642题解思路: 很容易得到,谁先把所有的硬币翻成反面朝上,谁就害得对方没办法继续下去,自己就获胜了,假设进行了K局,使得第一次全部的硬币都反面朝上了。事实上,k在比赛的一开始就确定好了,因为每次操作都会改变最右下角的那个1,0的奇偶性,那么最后一个数一开始是1,k必然是奇数,Alice获胜,一开始是0,k必然是偶数,Bob获胜。 嗯嗯,就这一点巧,感谢ChoiceZ的神YY~代码:#include #include #include using namespace std; int main(.. 阅读全文
posted @ 2013-09-03 22:03 814jingqi 阅读(160) 评论(0) 推荐(0)
摘要:比赛地址:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=30596#overview解题报告:(来自杭电ACM微博)1001注意到任意一个回文子序列收尾两个字符一定是相同的,于是可以区间dp,用dp[i][j]表示原字符串中[i,j]位置中出现的回文子序列的个数,有递推关系:dp[i][j]=dp[i+1][j]+dp[i][j-1]-dp[i+1][j-1]如果i和j位置出现的字符相同,那么dp[i][j]可以由dp[i+1][j-1]中的子序列加上这两个字符构成回文子序列,也就是dp[i][j]+=dp[i+1][j-1],注意 阅读全文
posted @ 2013-08-31 22:48 814jingqi 阅读(134) 评论(0) 推荐(0)