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题解题思路或获奖论文
第十二届蓝桥杯大赛软件赛省赛第二场题解