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

A

题意:给一组数据和一个k,求比k小的数的个数,比较只能从最左边或者最右边开始,当数据比k大时结束

解题思路:找出数据中的最大值,如果最大值比k小,输出数据的个数,否则从前和后判断两次,输出两次比k小的个数之和

代码:

#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
   int n,k,i,a[100],ans=0,flag=0,max,b=0;
   while(~scanf("%d%d",&n,&k))
   {
       for(i=0;i<n;i++)
        scanf("%d",&a[i]);
        max=a[0];
        for(i=0;i<n;i++)
        {
            if(a[i]>max)
                max=a[i];
        }
        if(k>=max)
        {
            for(i=0;i<n;i++)
            {
                if(a[i]<=k)
                    b++;
            }
            printf("%d\n",b);
        }
        else
        {
               for(i=0;i<=n;i++)
               {
                   if(a[i]<=k)
                    ans++;
                    else
                        break;
               }
               for(i=n-1;i>=1;i--)
               {
                   if(a[i]<=k)
                    flag++;
                    else
                        break;
               }
               printf("%d\n",flag+ans);
        }
   }
return 0;
}

B

题意:给一组数代表的是爬山的步数,求爬山的步骤和每一个步骤的步数

解题思路:判断1的个数为爬山步骤,当a[i]>a[i+1]时记录a[i]到一个新的数组,输出新的数组和数组a的最后一个值

代码:

#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
  int n,i,a[1000],ans=0,b[1000],tot=0;
  while(~scanf("%d",&n))
  {
      for(i=0;i<n;i++)
      {
        scanf("%d",&a[i]);
      if(a[i]==1)
        ans++;
      }
      printf("%d\n",ans);
     for(i=0;i<n-1;i++)
     {
         if(a[i]>=a[i+1])
         {
             b[tot]=a[i];
             tot++;
         }
     }
     b[tot]=a[n-1];
     for(i=0;i<=tot;i++)
        printf("%d ",b[i]);
  }
return 0;
}

C

题意:给一组数和一个k,将这组数随机分为k份,找出每一份的最小值,然后找出这些最小值的最大值,使输出的最大值最大

解题思路:当k等于1时直接输出最小值,当k大于等于3时直接输出最大值,当k==2时比较第一个值和最后一个值的大小,输出最大值

代码:

#include<stdio.h>
#include<math.h>
#include<string.h>
  int a[1000010];
int main()
{
  int n,k,i,min,max;
  while(~scanf("%d%d",&n,&k))
{
for(i=1;i<=n;i++)
        scanf("%d",&a[i]);
        min=a[1];
        max=a[1];
      for(i=1;i<=n;i++)
      {
          if(a[i]<min)
              min=a[i];
              else
              if(a[i]>max)
                max=a[i];
      }
      if(k==1)
        printf("%d\n",min);
      else if(k>=3)
        printf("%d\n",max);
        else
            if(k==2)
        {
        if(a[1]>a[n])
            printf("%d\n",a[1]);
        else
            printf("%d\n",a[n]);
        }
  }
return 0;
}

D

题意:解密字符串,加密规则为每次翻转字符1-n,n为字符串长度的因子

解题思路:翻转字符串,翻转顺序1-n,n为因子

代码:

#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
  int n,i,j,x,flag=0;
  char a1[110],a2[110],b[100];
  while(~scanf("%d%s",&n,a1))
  {
    for(i=2;i<=n;i++)
    {
        if(n%i==0)
        {
            b[flag++]=i;
        }
    }
    for(i=0;i<flag;i++)
    {
        for(j=0;j<b[i];j++)
        {
          a2[b[i]-j-1]=a1[j];
        }
        for(j=0;j<b[i];j++)
            a1[j]=a2[j];
    }
    printf("%s\n",a1);
  }
return 0;
}

E

题意:给两串字符串,从左到右依次删除字符使两串字符相等,求删除的字符个数之和

解题思路:从后面比较两串字符是否相等,如果相等记下相等字符的个数,输出两串字符的长度之和减去相等字符个数的二倍

代码:

#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
  int i,j,x,y,flag=0;
  char a[200010],b[200010];
  gets(a);
  gets(b);
  x=strlen(a);
  y=strlen(b);
  if(a[x-1]!=b[y-1])
    printf("%d\n",x+y);
  else
  {
    for(i=x-1,j=y-1;i>=0,j>=0;i--,j--)
    {
        if(a[i]==b[j])
            flag++;
        else
            break;
    }
    printf("%d\n",x+y-2*flag);
  }
return 0;
}

F

题意:给一个字符串和一个数k,k是从字符串中删掉的字符个数,删除顺序为a到z,将每一个字符都删除完后再从下一个字符开始删

解题思路:扫描整串字符,找寻a[i]==‘a‘==ch时k--,ch++,当k==0时结束,输出剩余的字符串

代码:

#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
  int n,k,i,min;
  char a[400050],ch=‘a‘;
  while(~scanf("%d%d%*c",&n,&k))
  {
      gets(a);
    while(k)
    {
        for(i=0;i<n;i++)
        {
            if(a[i]==ch)
            {
                k--;
                a[i]=‘0‘;
                if(k==0)
                    break;
            }
        }
        ch++;
    }
    for(i=0;i<n;i++)
    {
        if(a[i]!=‘0‘)
            printf("%c",a[i]);
    }
  }
return 0;
}

原文地址:https://www.cnblogs.com/xiao20000605/p/11622615.html

时间: 2024-11-11 18:05:01

9/15 越努力越幸运-思维赛(2.0)解题思路的相关文章

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

A 题意:给4个数,它们为3个数其中两两相加之和和三个数相加之和,求这三个 解题思路:先找出所给的4个数的最大值,然后用最大值从后面分别减去另外三个数输出的就是所求的三个数 #include<stdio.h> #include<math.h> #include<string.h> int main() { int a,b,c,d,max=0,x[4],i; while(~scanf("%d%d%d%d",&a,&b,&c,&a

越努力越幸运 —— 51CTO PMP百日备考记

越努力越幸运 -- 51CTO PMP百日备考记 (PMP4期VIP备考群180908 唐尧) 经历一个月的漫长等待后,终于收到PMI发来的邮件,当第一眼看到"congratulations"时,兴奋和激动的心情已难以抑制,紧握拳头对着自己喊了句"YES!"再一次印证了我的座右铭"越努力越幸运". 上一次有这种经历和感受还是在15年前,2003年国庆节后,毅然决定准备考研,从10月到来年1月,同样只有100天左右的备考时间,功夫不负有心人,100

越努力越幸运~加油

在这个世界上,总有那么一些人,他们智商不高,却总是傻傻地努力,笨笨的坚持,现实从不偏爱这样的笨小孩,但因为他们总是在锲而不舍的敲门,希望的大门也就渐渐的不得不向他们敞开…… 觉得自己做的到和不做的到,其实只在一念之间. 越努力越幸运,加油!!

越努力越幸运

未来充满了一切的可能,而所有的可能都存在蝴蝶效应,也许是曾经某一个小的发端,最后造就了当下所有感觉好,或者不好的事情. 当下我们的处境一般不会是最好的,当然也最有可能不是最坏的,所以学会善待当下是对自己最好的肯定.努力为自己的下一步做好规划,成就更好的自己,而不是把所谓的成功交给别人定义,因为即使是社会所认可的成功,对于成功的人本身来说,不一定是最好的人生阶段.所以我们不必通过对比来获得即时的满足感,否则也会通过对比带来更多的将会是挫败感.因为人的眼睛总是喜欢向上看的,有时候甚至忘记了脚下的路和

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

这篇文章主要是介绍下C题的解题思路,首先我们对这道C题进行一个整体的概括,结构如下: C题:经济类 第一问:发现危险人群. 发现:欺诈的方式开始.雇佣或浪漫的承诺. 数据→确定特定的经济萧条地区→确定最危险的人群→针对这些人群的预防活动 被贩卖的因素(卷入人口贩运的风险因素): 贫困.失业.移民.逃避政治冲突.战争. 第二问:受害者身份和位置 发现:人口贩运网:动态的 贩毒者:频繁地改变分布.运输路线 (以避免被发现) ↓(信息不完整) 执法人员和分析人员→试图识别.摧毁 人口贩卖网络→(信息不

越努力越幸运--2018年7月22日周记

本周过的很快,记录下本周. 1. 上一家公司,听前同事说方哥也跑路了,感触颇多,程序员这一行,到了后面,路越来越窄,方哥,山哥能力没得说,都是大神级别的,却找不到自己的安乐之地. 2. 本周遇到有趣. 问题 :TCP协议,SOCKET其的短连接,c端被动断掉,出现了CLOSE_WAIT状态. 环境: : C ->  性能F5 -> S 现象: 1. 调用write,errno 返回104,错误说明connection reset by peer.连接被重置     2. 程序直接退出,啥现象看

总结2017,希望2018越挫越勇

从2018年到来就开始意识到2017年挺失败,自己不满意,不满意到心态已经崩了.在攀登科研之峰的路上越走越慢,越慢越抑郁. 今天大哭了一场,和男票聊了好久终于想开了,踏踏实实慢慢走吧,只要坚持总能看到一点点转机.励志的鸡汤就不写了,记录一下聊天的心得吧: 方法论: 男票说:"现在的论文主要都是一个思路:把先验知识融入到网络结构中.网络擅长学习分类分割等任务,但是有些先验知识很难学到或者学不好,需要设计到网络结构中,比如用乘法(attention).加法.位移(STN, Deformable Co

大四狗:我的java历程——越努力,越幸运。

大二的时候写过一篇博客,< 作为一名计算机学院普通的大学生如何提高兴趣敲代码 >,没想到当时引起了很多同学的共鸣,有的人觉得受到了鼓舞,有的人觉得看到这篇文章已经大四,要改变也太晚了.然而对于我,写完那篇博客之后发生了很多事情,在java学习上有坚持,有懈怠,有前进,亦有低谷.好在现在,起码是这会儿,我还在低头看路,还在走上坡路.那会儿到现在大概一年半的时间,我就来说说这一年半的时间我的java历程吧,还是和上次一样,希望大家在看完我的故事之后,可以留下感想.或是鼓励,分享自己学习java的经

职场丨努力越说越不值钱

努力值钱吗?值钱!!!但是他存在一个怪圈,就是越说越不值钱. 职场上,有一种人,他们只是看起来很努力 每天第一个来公司,最后一个下班,每天都感觉忙忙碌碌勤勤恳恳的.成绩却寥寥无几.网上有很多文章称这种努力只是看起来很努力.其实你的努力一文不值,因为你没把它变现. 这也让很多主管对这样的职员又爱又恨,提拔他吧,没有成绩,辞退他吧,毕竟他也这么努力. 我们身边的通过努力而成功的励志人物和故事不胜枚举,但是相信努力就会成功的话,你就输了. 结果是第一位的,努力只是成功的解释. 没有功劳,努力就是“白劳