9/8 小风吹-思维赛解题思路

Posted xiao20000605

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了9/8 小风吹-思维赛解题思路相关的知识,希望对你有一定的参考价值。

A

题意:F(x)的作用是让x+1,如果最后一位是零将零去掉,求不同F(n)的个数;

解题思路:当n只有一位时F(n)的个数一定是9,然后每一位单独处理,不同的个数有10-n%10;

代码:

#include<stdio.h>
#include<math.h>
#include<string.h>
int main()

long long n,flag=0;
while(~scanf("%lld",&n))

     if(n%10==0)
    
         flag++;
         n++;
    
     while(1)
    
         if(n<10)
            break;
         long long x=n%10;
         if(x==0)
        
             n/=10;
             continue;
        
         flag+=10-x;
         n=n/10+1;
    
     printf("%lld\n",flag+9);

return 0;

B

题意:给一串数字,可以根据下一行它的地址对应的数字对其进行修改,每个数字只能修改一次,输出修改后的最大值

解题思路:从左向右依次开始找,如果f(x)>x就改变,否则不变

代码:

C

题意:给n个数,每个数都可以进行两个操作,操作1:x+2/x-2,操作2:x+1/x-1,操作1免费,操作2花费1,求让所有数字相同的最小花费

解题思路:直接统计奇数偶数的个数,输出最小值

代码:

#include<stdio.h>
#include<math.h>
#include<string.h>
int main()

  int n,a[1000],i,b=0,c=0;
  while(~scanf("%d",&n))
 
      for(i=0;i<n;i++)
        scanf("%d",&a[i]);
        for(i=0;i<n;i++)
       
            if(a[i]%2==0)
                b++;
            else
                c++;
       
        if(b<=c)
            printf("%d",b);
        else
            printf("%d",c);
 

D

题意:求bad day的天数

解题思路:从后往前,大雨后面值的个数

代码:

#include<stdio.h>
#include<math.h>
#include<string.h>
int main()

  int t,n,a[150000],flag,b,i,j,x;
  scanf("%d",&t);
  while(t--)
 
      scanf("%d",&n);
      for(i=1;i<=n;i++) scanf("%d",&a[i]);
        b=a[n];
        flag=0;
        for(i=n-1;i>=1;i--)
       
           if(a[i]>b)
            flag++;
            else
           
                b=a[i];
           
       
      printf("%d\n",flag);
 

E

 

以上是关于9/8 小风吹-思维赛解题思路的主要内容,如果未能解决你的问题,请参考以下文章

9/21 越努力越幸运-思维赛(4.0) 解题思路

9/17 越努力越幸运-思维赛(3.0) 解题思路

2017年第六届数学中国数学建模国际赛(小美赛)C题解题思路

2021年度训练联盟热身训练赛第一场

求2012年数学建模美国赛C题解题思路或获奖论文

第十二届蓝桥杯大赛软件赛省赛第二场题解