C语言一菜鸟级


私信TA

用户名:LHL

访问量:63496

签 名:

AC总是意料之外 ^_^

等  级
排  名 47
经  验 11200
参赛次数 5
文章发表 56
年  龄 24
在职情况 在职
学  校 四川工商学院
专  业 通信工程

  自我简介:

C语言 蓝桥杯 ACM 新人 欢迎大佬 前来指导 交流 本人 博客https://fivecc.blog.csdn.net/

解题思路:

思路: 动态规划  与 K好数 差不多  再加上 对 大数相加 的办法 因为数字极大

//按题目要求  就是 r限定在2进制位 



注意事项:

参考代码:

#include<stdio.h>
#include<string.h>
int main()
{ 
  long int k,w,i,j,m,t=0,le,lemax=0,add;unsigned long long int dp[3000][10];//dp[i][j] 代表以第i位位高位是j时的可行方案 
  unsigned long long int sum=0;int ans[202];//储存答案 
  memset(dp,0,sizeof(dp));
  scanf("%ld%ld",&k,&w);
    t=w%k;// 获取特殊位 数值 
    w=w/k;//确定 可以按2^k 进制数完整的分组 有几组 即 除了最高位余下还有几位  2^3 7 2进制中 
             //7分成 1 3 3 有两组完整 
   
   k=(1<<k)-1;//确定进制数 k 为最大该进制数 8进制 最大进制数为 7;  
   t=(1<<t)-1;// 特殊组 的可取范围 7 分 1 3 3 特殊的是 1为2进制 最高位只能 取 1 如果是 2^3 8 的
              // 话分 2 3 3 特殊 2的2进制位 则最高为可为 1 2 3 非特殊高位为 则可为 1 2 3 4 5 6 7    
   for(i=1;i<=k;i++)//初始化 
    dp[w+1][i]=1;//以1~k 位最低位可取记 1 为 基础值 
   for(i=w;i>1;i--)//从  低位向高位处理 
    for(j=k-(w+1-i);j>=1;j--) //高位为 j  
      { for(m=j;m<k;m++)// 相邻位可行 数 
         dp[i][j]+=dp[i+1][m+1];
         sum+=dp[i][j];
         if(sum>10000000)
         {  le=0;add=0;
   while(sum)//大数 数据处理 
            {  ans[le++]+=sum%10+add;
              add=ans[le-1]/10;
              sum/=10;
               if(lemax<le)lemax=le;
            }
         }
      }
      
      for(j=1;j<=t;j++)//特殊位处理 
      { for(m=j;m<k;m++)
         dp[1][j]+=dp[2][m+1];
          sum+=dp[1][j];
           if(sum>10000000)//大数 数据处理 
         {  le=0;add=0;
   while(sum)
            {  ans[le++]+=sum%10+add;
              add=ans[le-1]/10;
              sum/=10;
               if(lemax<le)lemax=le;
            }
         }
 }
           le=0;add=0;
   while(sum)
            {  ans[le++]+=sum%10+add;
              add=ans[le-1]/10;
              sum/=10;
               if(lemax<le)lemax=le;
            }
            
           for(i=lemax-1;i>=0;i--)
   printf("%d",ans[i]); 
return 0;
}


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区