zoukankan      html  css  js  c++  java
  • BZOJ1258 三角形tri

    三角形tri

    找规律神题……

    发现如果以4结尾,把4改成1、2、3输出就行了。

    如果不以4结尾:

    把结尾改成4输出即可,因为一定与三角形的中心相邻。

    规律1:如果把串的末尾删去,那么会回到上一层。

    如果这个串里只有1种数字,那么它一定在某个角上,只和自己这层的4相邻。

    如果这个串里有2种数字,那么他在某条边上,和某层的4相邻,和自己的中心相邻。

    如果这个串里有3中数字,那么它在大三角形里面,和这层的4,某层的4,另一层的4都相邻。

    于是

    规律2:这个串内有几种不同的数字,就和几个三角形相邻,并且一定以4结尾。

    这还不够,接着找……

    规律3:从后往前扫,第一次出现的数字前的子串+4是个答案不要问我怎么搞出这个规律的

    代码:

    #include<bits/stdc++.h>
    using namespace std;
    const int N=55;
    char s[N];
    int n;
    bool appear[4];
    int main()
    {
    	scanf("%s",s);
    	n=strlen(s)-1;
    	if(s[n]=='4')
    	{
    		for(int i=0;i<n;++i)printf("%c",s[i]);puts("1");
    		for(int i=0;i<n;++i)printf("%c",s[i]);puts("2");
    		for(int i=0;i<n;++i)printf("%c",s[i]);puts("3");
    		return 0;
    	}
    	for(int i=n;i>=1;--i)
    	{
    		int tmp=s[i]-'0';
    		if(!appear[tmp])
    		{
    			for(int j=0;j<i;++j)printf("%c",s[j]);puts("4");
    			appear[tmp]=true;
    		}
    	}
    	return 0;
    } 
    
    路漫漫其修远兮,吾将上下而求索
  • 相关阅读:
    5.JavaSE之数据类型详解
    4.JavaSE之标识符
    2.Java程序运行机制
    1.HelloWorld 仪式感
    10.安装开发环境
    【模板】后缀数组
    Luogu P3808 【模板】AC自动机(简单版)
    Luogu P3375 【模板】KMP字符串匹配
    LNSY集训
    Luogu P2580 于是他错误的点名开始了 (Trie树模板)
  • 原文地址:https://www.cnblogs.com/zzctommy/p/12350490.html
Copyright © 2011-2022 走看看