90 pts TLE on #4
  • 板块P1591 阶乘数码
  • 楼主YC_Lyy
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/12/4 21:28
  • 上次更新2024/12/5 12:47:01
查看原帖
90 pts TLE on #4
939020
YC_Lyy楼主2024/12/4 21:28
#include <bits/stdc++.h>
#define Written return
#define by 0
#define YC_Lyy ;
using namespace std;

int t, n, ans;
char a;
string ss1, ss2;

string f(string s1, string s2)
{
	string str;
	int len1 = s1.length();
	int len2 = s2.length();
	if (len1 < len2)
	{
		for (int i = 1; i <= len2 - len1; i++)
		{
			s1 = '0' + s1;
		}
	}
	else
	{
		for (int i = 1; i <= len1 - len2; i++)
		{
			s2 = '0' + s2;
		}
	}
	len1 = s1.length();
	int cf = 0;
	int temp;
	for (int i = len1 - 1; i >= 0; i--)
	{
		temp = s1[i] - '0' + s2[i] - '0' + cf;
		cf = temp / 10;
		temp %= 10;
		str = char(temp + '0') + str;
	}
	if (cf != 0) str = char(cf + '0') + str;
	return str;
}

string fs(string str1, string str2)
{
	if (str1 == "0" || str2 == "0")
		return "0";
    string str;
    int len1 = str1.length();
    int len2 = str2.length();
    string tempstr;
    for (int i = len2 - 1; i >= 0; i--)
    {
        tempstr = "";
        int temp = str2[i] - '0';
        int t = 0;
        int cf =  0;
        if (temp != 0)
        {
            for (int j = 1; j <= len2 - 1 - i; j++)
            	tempstr += "0";
            for (int j = len1 - 1; j >= 0; j--)
            {
                t = (temp * (str1[j] - '0') + cf) % 10;
                cf = (temp * (str1[j] - '0') + cf) / 10;
                tempstr = char(t + '0') + tempstr;
            }
            if (cf != 0) tempstr = char(cf + '0') + tempstr;
        }
        str = f(str, tempstr);
    }
    str.erase(0, str.find_first_not_of('0'));
    return str;
}

int main()
{
	cin >> t;
	for (int i = 1; i <= t; i++)
	{
		cin >> n >> a;
		ans = 0;
		ss1 = "1";
		for (int j = 2; j <= n; j++)
		{
			int k = j;
			ss2 = "";
			while (k)
			{
				ss2 = char(k % 10 + '0') + ss2;
				k /= 10;
			}
			ss1 = fs(ss1, ss2);
		}
		for (int j = 0; j <= ss1.size(); j++)
			if (ss1[j] == a)
				ans++;
		cout << ans << endl;
	}
	Written by YC_Lyy
}

2024/12/4 21:28
加载中...