2 条题解

  • 1
    @ 2024-5-17 21:14:51
    一世又一世,代码又一遍🎉️ 
    转呀转,终究绕在了原点🎉️
    
    using namespace std;
    int c[30][30];
    string s;
    int ans = 0;
    int main(){
        for(int i = 0; i <= 26; i++){
            for(int j = 0; j <= i; j++){
                if(j == 0) c[i][j] = 1;
                else c[i][j] = c[i - 1][j] + c[i - 1][j - 1];
            }
        }
        cin >> s;
        int len = s.length();
        for(int i = 1; i < len; i++){
            if(s[i] <= s[i - 1]){
                cout << 0;
                return 0;
            }
        }
        for(int i = 1; i < len; i++) ans += c[26][i];
        for(int i = 0; i < len; i++){
            int first = 'a';
            if(i > 0) first = s[i - 1] + 1; 
            for(int j = first; j < s[i]; j++){
                ans += c['z' - j][len - i - 1];
            }
        }
        cout << ans + 1;
    
        return 0;
    }
    
    • 1
      @ 2024-5-17 20:28:45

      世界上最好的题解😁 【思路】😊 首先从输入中读取需要编码的单词,并获取其长度。 然后,初始化一个字符为‘a’到‘z’的循环,对每一个字符,都生成一个只包含该字符的字符串, 然后以该字符串为起始,进行深度优先搜索(DFS)。 在进行DFS时,首先检查当前字符串的长度,如果长度超过了输入单词的长度,就返回,不再继续搜索。 否则,从当前字符串的最后一个字符的下一个字符开始,生成新的字符串并进行DFS。 然后将生成的字符串插入到对应长度的集合中。 在DFS结束后,从长度为1的集合开始,依次遍历每个集合中的字符串。 当遍历到的字符串等于输入的单词时,输出计数器的值并结束程序。 如果遍历完所有集合都没有找到输入的单词,就输出0。

      #include<bits/stdc++.h>
      using namespace std;
      string s;
      int f[30][10],ans,cnt;
      int main(){
      	cin>>s;
      	for(int i=1;i<s.size();i++){
      		if(s[i-1]>=s[i]){
      			cout<<0;
      			return 0;
      		}
      	}
      	//判断字符串是否合法(升序)
      	for(int i=1;i<=26;i++)f[i][1]=1;
      	//长度为1的字符串数量都是1
      	for(int j=2;j<=6;j++)
      		for(int i=27-j;i>0;i--)
      			f[i][j]=f[i+1][j-1]+f[i+1][j];
      	//由公式,我们从上至下从右至左进行计算
      	for(int j=s.size()-1;j>=0;j--){
      		cnt++;
      		for(int i=1;i<=s[j]-'a'+1;i++)
      			ans+=f[i][cnt];
      	}
      	//由以上的思路计算答案
      	cout<<ans;
      	return 0;
      }
      

      看完别忘了点赞哟😝

    • 1

    信息

    ID
    247
    时间
    1000ms
    内存
    125MiB
    难度
    3
    标签
    递交数
    7
    已通过
    4
    上传者