zoukankan      html  css  js  c++  java
  • Tinkoff Challenge

    A:

    思路:就是找b,c之前有多个s[i]

    代码:

    #include<stdio.h>
    #define ll long long
    using namespace std;
    ll a,b,c;
    int n;
    int s[110000];
    int main()
    {
    while(~scanf("%lld%lld%lld",&a,&b,&c))
    {
    scanf("%d",&n);
    int sum=0;
    for(int i=0;i<n;i++)
    {
    scanf("%d",&s[i]);
    if(s[i]>b&&s[i]<c)
    sum++;
    }
    printf("%d ",sum);
    }
    return 0;
    }

    B:

    题意:把一个等腰三角形分成面积相等的n部分,输出h1,h1+h2,h1+h2+h3,...

    思路:先找出第一部分的高h1,然后h1+h2=sqrt(2)*h1,后面每个值都可以通过h1得到。

    代码:

    #include<stdio.h>
    #include<math.h>
    #include<stdlib.h>
    #include<algorithm>
    using namespace std;
    int n,h;
    double a[1008];
    int main()
    {
    while(~scanf("%d%d",&n,&h))
    {
    a[0]=h*1.0/sqrt(n);
    for(int i=1; i<n-1; i++)
    {
    a[i]=sqrt(i+1)*a[0];
    }
    for(int i=0; i<n-1; i++)
    i==n-2? printf("%.16f ",a[i]):printf("%f ",a[i]);
    }
    return 0;
    }

    C:

    题意:Oleg手中有个字符串a,Igor有个字符串b,他们需要构成一个新的字符串c,Oleg的希望是c这个字符串尽可能的小,lgor的希望是c这个字符串尽可能大。从Oleg开始从a中选一个字符放入c中,然后是lgor。

    思路:先将a串从小到大排序,b从大到小,如果n为偶数a选取前n/2+1位,否则a,b都选前n/2位。轮到Oleg放置时比较当前a的最小值与b的最大值,如果是小于就把当前a的最小值放在c的前面部分,否则把当前a的最大值放在c的后面部分。轮到lgor放置时比较当前a的最小值与b的最大值,如果是小于就把b当前的最大值放到c的前面部分,否则把b的最小值放在c的后面部分。

    代码:

    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    char a[300005];
    char b[300005];
    char c[300005];
    int vis[300005];
    bool cmp1(char aa,char bb)
    {
    return aa<bb;
    }
    bool cmp2(char aa,char bb)
    {
    return aa>bb;
    }
    int main()
    {
    while(~scanf("%s",a+1))
    {
    scanf("%s",b+1);
    int n=strlen(a+1);
    sort(a+1,a+n+1,cmp1);
    sort(b+1,b+n+1,cmp2);
    // puts(a+1);
    // puts(b+1);
    int k=1;
    int t=n;
    int jj=n/2;
    int ii=n/2;
    if(n&1)
    ii++;
    int i=1;
    int j=1;
    for(int l=1; l<=n; l++)
    {
    if(l==n&&(l&1))
    c[k++]=a[i++];
    if(l&1)
    {
    if(a[i]<b[j])
    c[k++]=a[i++];
    else
    c[t--]=a[ii--];
    }
    else
    {
    if(a[i]<b[j])
    c[k++]=b[j++];
    else
    c[t--]=b[jj--];
    }
    }
    c[n+1]='';
    puts(c+1);
    }
    return 0;
    }

  • 相关阅读:
    vue 倒计时返回首页
    vue2借助animate.css实现路由动画效果
    CSS3实现文本垂直排列
    button在点击时出现边框
    vue项目中设置背景图片
    Python -处理PDF
    Python学习笔记(1)-列表
    转:Redis 的安装配置介绍
    转:windows xp下如何安装SQL server2000企业版
    转:CodeCube提供可共享、可运行的代码示例
  • 原文地址:https://www.cnblogs.com/xiejiamin/p/7251151.html
Copyright © 2011-2022 走看看