MasssA


私信TA

用户名:1294309339

访问量:36612

签 名:

城市学院的渣渣

等  级
排  名 109
经  验 8140
参赛次数 6
文章发表 73
年  龄 0
在职情况 学生
学  校 城市学院的渣渣
专  业

  自我简介:

城市学院的渣渣

解题思路: 开始没有考虑到会爆long long int = =

注意事项:

参考代码:

#include<iostream>using namespace std;int f[10][10];int k,ans[500]={1},l=1;void wk(int x){
   for (int i=0;i<l;i++)
   ans[i]*=x;
   for (int i=0;i<l;i++)
   if (ans[i]>=10)
   {
       ans[i+1]+=ans[i]/10;
       ans[i]%=10;
   }
   while (ans[l]>0)
   {
       ans[l+1]=ans[l]/10;
       ans[l]=ans[l]%10;
       l++;
   }}int main(){
   string s;
   cin>>s>>k;
   int x,y,len;
   int t[10];
   for (int i=1;i<=k;i++)
   {
       cin>>x>>y;
       f[x][y]=1;
   }
   for (int i=0;i<=9;i++)
   f[i][i]=1;
   for (int k=1;k<=9;k++)
   for (int i=0;i<=9;i++)
   for (int j=1;j<=9;j++)
   if (f[i][k]==1&&f[k][j]==1) f[i][j]=1;
   for (int i=0;i<=9;i++)
   {
       int tj=0;
       for (int j=0;j<=9;j++)
       if (f[i][j]==1) tj++;
       t[i]=tj;
   }
   for (int i=0;i<s.length();i++)
   wk(t[s[i]-'0']);
   for (int i=l-1;i>=0;i--)
   cout<<ans[i];
   return 0;}

 

0.0分

0 人评分

  评论区

  • «
  • »