zoukankan      html  css  js  c++  java
  • Tinkoff Challenge

    A题:从两个保安中间那钞票

     1 #include <bits/stdc++.h>
     2 
     3 using namespace std;
     4 
     5 int main()
     6 {
     7     int a,b,c;
     8     scanf("%d%d%d",&a,&b,&c);
     9     int n;
    10     scanf("%d",&n);
    11     int pos;
    12     int ans = 0;
    13     for(int i=0;i<n;i++) {
    14         scanf("%d",&pos);
    15         if(pos>b&&pos<c)
    16             ans++;
    17     }
    18     printf("%d
    ",ans);
    19     return 0;
    20 }
    View Code

    B题:切胡萝卜,每个面积相等;公式化简到最简试,否则精度会损失

     1 #include <bits/stdc++.h>
     2 
     3 using namespace std;
     4 
     5 int main()
     6 {
     7     int n;
     8     double h;
     9     scanf("%d%lf",&n,&h);
    10 /*
    11     double s = h/n;
    12     double S = h;
    13     for(int i=0;i<n-1;i++) {
    14         printf("%.12lf ",h*sqrt(s/S));
    15         s +=s;
    16     }
    17     */
    18 
    19 
    20     for(int i=1;i<n;i++) {
    21         printf("%.12lf ",sqrt(i*1.0/n)*h);
    22     }
    23 
    24     return 0;
    25 }
    View Code

    C题:两个绝顶聪明的人,第一个人要字典序最小,第二个人字典序最大;

    贪心:

    第一个人从小到大排,第二个人从大到小排,

    当第一个人的最小的都大于第二个人的,那么他只能放到字符后面(否则第二个人就得逞了,他把他的放到后面),但是这样还不够,因为他反正还要继续放,那么他后面的操作将大于这次的,为何不交换一下呢? 这时,他应该从他的最大的那一个放到后面;

     1 #include <iostream>
     2 
     3 #include <cstdio>
     4 
     5 #include <cstring>
     6 
     7 #include <algorithm>
     8 
     9 using namespace std;
    10 
    11 const int maxn=300000+10;
    12 
    13 char A[maxn],B[maxn],ans[maxn];
    14 
    15 bool cmp(char a,char b) {
    16     return a>b;
    17 }
    18 
    19 int main() {
    20 
    21     scanf("%s%s",A,B);
    22     int len=strlen(A);
    23     int l1=0,l2=0;
    24     int r1,r2;
    25     int L=0,R=len-1;
    26     r1=(len+1)/2-1;
    27     r2=len/2-1;
    28     sort(A,A+len);
    29     sort(B,B+len,cmp);
    30     for(int i=0; i<len; i++) {
    31         if(i%2==0) {
    32             if(A[l1]<B[l2])
    33                 ans[L++]=A[l1++];
    34             else ans[R--]=A[r1--];
    35         } else {
    36             if(A[l1]<B[l2])
    37                 ans[L++]=B[l2++];
    38             else ans[R--]=B[r2--];
    39         }
    40     }
    41 
    42     printf("%s
    ",ans);
    43 
    44     return 0;
    45 
    46 }
    View Code
  • 相关阅读:
    配置FTP服务
    Tomcat
    LNMP环境配置(下)
    LNMP环境配置(上)
    Ansible---
    Ansible
    正则三剑客-------grep
    Docker仓库的使用与维护
    Docker 引擎的安装 -->>存储库安装
    shell脚本实例
  • 原文地址:https://www.cnblogs.com/TreeDream/p/6863485.html
Copyright © 2011-2022 走看看