洛谷十月月赛 P8589『JROI-8』对了,还有花,少女,银河 题解

名字起的挺中二哈

一场比赛需要一张头图,我没得前三,本子自然也没有,但还是可以发一发犇犇题解的。

题目是这样的

「其一」
即使化身白骨,也有不想忘记的东西

这是啥?

题目描述

给定 nn,请构造一个长度为 nn 的仅包含 0,10,1 的数字串,满足 01,00,10,1101,00,10,11 出现的次数相等。或报告无解。

这里“出现”指与原字符串中连续的一部分完全相同。例如,在 10111011011101 中,01,00,10,1101,00,10,11 分别出现了 2,0,2,22,0,2,2 次。

请注意,大样例不以文件附加形式给出,而直接放在题目的 输入输出样例 中的 样例 #3

输入格式

一行一个正整数 nn。

输出格式

若有解,输出一行一个长度为 nn 的满足条件的仅包含 0,10,1 的数字串。

若无解,输出 -1

这跟题目背景有什么关系吗??

输入输出样例

输入 #1        输出 #1

3           -1

输入 #2        输出 #2

5           00110

输入 #3         输出 #3

15400        -1

思路:其实列个表就可以了。你列个表就不难发现,他是有规律的,具体是啥规律,看代码就知道了。

代码

#include
using namespace std;
int n;
int main(){
	cin >> n;
	if(n==1){
		cout << '1';
		return 0;
	}else if(n==0){
		cout << "-1";
		return 0;
	}
	if((n-1)%4==0){
		for(int i=0;i<(n-1)/4;i++){//核心代码,看不懂的可以自己打表
			cout << "0011";
		}
		cout << '0';
	}else{
		cout << "-1";
	}
	return 0;
}

这道题就是专门坑没思维或者不用草稿纸的人的,非常的变态。不过肯动手的人就可以很轻松的做出来了,所以希望大家多多用草稿纸,然后再点个赞,就可以走啦,拜拜。

你可能感兴趣的:(洛谷题解,算法)