[CDOJ]1587_失恋772002天

链接:http://acm.uestc.edu.cn/#/problem/show/1587

题意:失恋772002天

给定一个整数N,对一个仅有三种字符组成的长度为N的字符串,问有多少种排列满足  任意三个连续的字符x,y,z中,x=y或者x=z或者y=z成立(也就是三个不能不同)

得到结果要取模后输出



题解:

水题0。0 ( 啪 x )

显然n=1的时候结果为3

假设S(n)表示长度为n(n>1)的所有满足题意的字符串的集合,那么我构造两个子集(划分):

S1(n):S中的字符串里最后两个字符不一样的字符串组成的集合

S2(n):S中的字符串里最后两个字符一样的字符串组成的集合

显然S1(n)与S2(n)不相交,而且S(n)等于S1(n)并上S2(n)

记D(n)为S1(n)的元素个数,A(n)为S2(n)的元素个数

那么我们可以知道,当n>2时

S(n-1)中的字符串同样也可以划分为S1(n-1)和S2(n-1):

  1.对于S1(n-1)中的字符串:

    1.1添加跟倒数第二个字符一样的那个字符可以变成S1(n)中的字符串

    1.2添加跟最后一个字符一样的那个字符可以变成S2(n)中的字符串

  2.对于S2(n-1)中的字符串:

    2.1添加跟后面那个字符不一样的那个字符可以变成S1(n)中的字符串(每个字符串都有两种添加的选择)

    2.2添加跟后面那个字符一样的那个字符可以变成S2(n)中的字符串

由1.1和2.1,有D(n) = D(n-1) + 2*A(n-1) (n>2)

由1.2和2.2,有A(n) = D(n-1) + A(n-1) (n>2)

而 D(2) = 6,A(2) = 3

为此,得到了递推式,最后结果为

3  (n=1)

D(n)+A(n) (n>=2)

其实对于上面那两个式子可以根据递推关系推导出只跟n有关的关系式,不过我懒得了(x)

#include<cstdio>
#include<cmath>
#include<cctype>
#include<cstring>
#include<iostream>
#include<string>
#include<sstream>
//stringstream ss(line)
#include<algorithm>
//sort(a,a+n,cmp)
//p=lower_bound(a,a+n,x)-a+1(大于或等于x的第一个位置)
#include<vector>
#include<bitset>
//bitset<N> xx

using namespace std;
const int MOD = 554056561;

int main(){
	int N;
	scanf("%d",&N);
	int D[2],A[2];
	if(N==1)	printf("%d",3);
	else if(N==2)	printf("%d",9);
	else{
		D[0]=6,A[0]=3;
		for(int i=3;i<=N;i++){
			A[i%2]=(A[(i+1)%2]+D[(i+1)%2])%MOD;
			D[i%2]=(2*A[(i+1)%2]+D[(i+1)%2])%MOD;
		}
		printf("%d",(A[N%2]+D[N%2])%MOD);
	}
	return 0;
}

  

时间: 2024-08-06 01:11:14

[CDOJ]1587_失恋772002天的相关文章

cdoj1587 失恋772002天

地址:http://acm.uestc.edu.cn/#/problem/show/1587 题目: 失恋772002天 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit Status 日天失恋了,为了安慰他,锅爷决定带他去抓娃娃.锅爷买了111个币,连抓108把却一无所获.锅爷说:"这个娃娃机很邪",于是把剩下3个币给了日天.日天仅用33把,就抓获一只海

CDOJ 1273 God Qing&#39;s circuital law

暴力枚举+idea.做的时候mod写错了,写成了1000000009,找了两个多小时才发现...... a[1],a[2],a[3]....a[N] b[1],b[2],b[3]....b[N] 首先需要枚举b[1]...b[N]与a[1]进行组合. 然后对a[2]...a[N]从小到大排序 对b[1],b[2],b[3]....b[N] 除当前与a[1]组合的以外,剩下的从大到小排序 然后找出每一个a[i]在不破坏a[0]最大值的情况下最大能与哪一个b[i]配对. 然后从第N个人开始往第2个人

1009 失恋的小 T

1009: 失恋的小 T 时间限制: 1 Sec  内存限制: 128 MB提交: 160  解决: 76[提交][状态][讨论版] 题目描述 小 T 最近失恋了,开始怀疑人生和爱情,他想知道在这世界中去伪存真后还剩多少. 小 T 在网上拿到了代表大千世界的长字符串,删掉了所有换行空格和标点符号,只剩下了小写字母. 现在字符串中有好多重复的子串,相同子串里只有一个是 Real 的. 为了让小 T 走出失恋,你一定要告诉他这个世界上 Real 的东西有多少. (子串:串中任意个连续的字符组成的子序

《失恋33天》从绝境中走出来的故事

最近有点喜欢小说啊,今晚整理了一些小说放进手机里面,里面包括了钱钟书.马尔克斯.沈从文这样的大作家的作品,也有当代一些有名的青春小说,比如今晚看的这部<失恋33天>. 这是一部短篇小说,描写了女主黄小仙在失恋后33天里经历的种种,从感觉被整个世界抛弃了甚至有了轻生的念头到渐渐走了出来的过程,在这个过程中,冤家同事王小贱起了不可或缺的作用,最后的结局耐人寻味,也许是他们两人最终在一起了. 我之前看过<失恋33天>的电影,电影相对于原版小说来说,有了一些小幅度的改动,在尾声,小说中准备

关于格子之可失恋不可犯贱

飞碟说89期:<可以失恋不可犯贱>优酷视频在线观看.失恋的伤痛很像毒瘾,脑中的“可卡因区域”会被点亮,想复吸的心瘾难熬,于是各种犯贱行为就出现了.失恋就像戒毒,心瘾难熬,总想复吸.周五这么开心的日子,来聊聊那些年,你们因失恋犯过什么贱? 飞碟说:可以失恋不可犯贱 文字版台词 你哭着对ta说童话里都是骗人的,ta挥一挥手不留下一片云彩,被分手总是悲剧故事的主角,看到ta留下的纪念品,偶尔问道某种香水味,听到几句歌词,甚至某个你们一起吐槽过的电视广告,都会变成子弹击中你的心,让你哭喊着“我忘不掉”

hdu-5833 Zhu and 772002(高斯消元)

题目链接: Zhu and 772002 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1006    Accepted Submission(s): 348 Problem Description Zhu and 772002 are both good at math. One day, Zhu wants to test the

CDOJ 26 遮挡判断(shadow) 解题报告

题目链接http://acm.uestc.edu.cn/#/problem/show/26 出题目的给我说清东边是哪一边啊魂淡! 分析样例可得,东边是先读入数据的那一边. 这题主要考察排序,然而感谢上苍我有<algorithm> 另外,CDOJ是可以用C++11标准的匿名函数的,所以sort的比较函数我就打了匿名的 这题只要记录一下扫到的柱子中投影最西边最靠西的那根,不妨设为柱子h 如果这根柱子h能完全遮住当前扫到的柱子i,那么柱子h仍然是影子最靠西的柱子 如果这根柱子h不能完全遮住当前扫到的

男生失恋了怎么安慰

男人的心呢?是不是根本就打不开?也许你就缺乏一句恋爱的咒语而已.说他最喜欢听的话,让他服下美丽的迷咒,相信你们未来的相处将越来越顺利喔! 秘诀一:真正的男人害怕被拒绝 希望得到肯定,害怕被拒绝,特别是被自己最亲密的女人拒绝,这是男人的通病. 调查显示绝大多数男人感到女人对他们总是挑三拣四,因而他们担心一开口说心事,得到的就是嘲笑,这会令他们备感羞辱.男人的自尊心像鸡蛋壳一样属于易碎品一类,你给他越多的承认,他就越容易开口讲心事. 这并不意味着你没有观点或你对这件事没有看法.爱一个男人是接受他,不

失恋了怎么办调理心态

如果你懂得了男人们在想什么,女追男就会容易得多. 男性朋友给大胆姑娘们的建议是,女追男当然可以!重点是你要让他觉得他有戏,但并非100%确定有戏. 人负责发信号,男人负责行动 失恋了怎么办调理心态 很显然,男人们的心理是:给我一点信号吧,但是请不要行动,让我来行动吧. 就是说,的核心是,你深深喜欢上了一个男人,可以追他,但是你要采取的行动是,让他知道你注意到他了,然后诱导他行动,也许是你追的他,但一定要让他觉得是他在追你. 如果你一直冷若冰霜,冰清玉洁到高傲,那么他内心可能会喜欢你,会敬重你,甚