zoukankan      html  css  js  c++  java
  • 测试赛3部分题题解及总结

      A,贪心题,思路是遇到1就翻转,看最后能不能把所有的反成0

      B,找规律,不考虑黑白的话总共有ans = (n-7)*(m-7)种情况。如果ans是偶数,则正好有ans/2个。如果是奇数,则要根据右下角而定,右下角是0则有ans/2 + 1个,否则有ans/2个

      C,数学题,Polla昨晚后给我讲的,分两种情况,设半径为r。一、w做圆柱体的高,此时r <= w/2 &&  2*pi*r <= (h - 2*r) => r = min(w/2, h/(2*pi + 2)); 二,h那条边作为圆柱的高。

    2*pi*r <= w并且得到体积方程:F(r) = pi*r*r*(h - 2*r) = -2*pi*r*r*r + pi*r*r*h. 求导得 f(r) = -6*pi*r*r + 2*h*pi*r 领f(r) = 0求出F(r)取最大值时r = h/3; 所以r = min(w/2, h/3);

      然后从这两种情况里边找一个体积最大的情况。

      D,水题

      E,二叉树。Polla的代码相当简洁,自惭行愧啊。。。

    附代码

    View Code
    #include <iostream>
    #include <cstdio>
    #include <cstring>

    using namespace std;

    const int N = 10010;

    struct node {
    char data;
    node *lc, *rc;
    };

    typedef struct node *Bintree;

    Bintree q[N*100];
    char s[N], ans[N];
    int n;

    void creat(Bintree &T) {
    if(islower(s[n])) {
    T = new node;
    T->data = s[n--]; T->lc = NULL; T->rc = NULL;
    } else {
    T = new node;
    T->data = s[n--];
    creat(T->rc);
    creat(T->lc);
    }
    }

    /*void disp(Bintree T) {
    if(T) {
    disp(T->lc);
    printf("%c", T->data);
    disp(T->rc);
    }
    }
    */

    void bfs(Bintree T) {
    int f = 0, r = 0;
    q[r] = T; ans[r++] = T->data;
    Bintree u;
    while(f < r) {
    u = q[f++];
    if(u->lc != NULL) {q[r] = u->lc; ans[r++] = u->lc->data;}
    if(u->rc != NULL) {q[r] = u->rc; ans[r++] = u->rc->data;}
    }
    for(int i = r-1; i >= 0; --i) printf("%c", ans[i]);
    cout << endl;
    }

    void clear(Bintree &T) {
    if(T->lc) clear(T->lc);
    if(T->rc) clear(T->rc);
    delete T;
    }

    int main() {
    //freopen("data.in", "r", stdin);

    int t;
    scanf("%d", &t);
    while(t--) {
    Bintree T;
    memset(s, 0, sizeof(s));

    scanf("%s", s);
    n = strlen(s) - 1;

    creat(T);
    bfs(T);
    clear(T);
    }
    return 0;
    }


      F,estar过的,据说是RMQ。本菜还没搞出来。

      开学以来第一次组队做比赛,还没有太多组队做的感觉。以后的多练习,多配合。开始分题是Polla(强哥)前三,我中三,estar后二。

      应该是运气好,D题是道水题。不过还是20分钟才过,如果这种题在TC上的也用20分钟的话,那我那场比赛就不用做了,等着rating暴跌吧!手速!手速!手速!!然后没几分钟Polla过B题,是道找规律的题。estar一直在看F,而且很神的以为F是最后一题,还很猥琐的跟我说F是道RMQ,以前做过。我过了D题后也在看F。数据量很大,第一反应就是线段树区间合并。可是我的线段树水平烂的就像刚烤熟的地瓜,突然掉到地上,然后被踩了一脚一样。。。在我纠结有没有其他方法避开线段树时。estar跟我说F过了。Polla在做C题,计算几何,不知道是精度问题还是怎么回事,一直没过。然后我看E题,编译原理里边的算法。建二叉树,然后从右往左,从上往下层次遍历,不过没能没能实现,话说本菜连最后只纠结出怎么建树来。后来跟Polla讨论,没几分钟他敲过了。最后省得时间也不多了,Polla还是在做C题,最后用高数里的推公式求导过了。不得不说这题真的很神。很遗憾的是A题没过。官方说那是道贪心。碰到黑的就翻,能翻过就输出次说,翻不过就输出-1。。。这纯属折腾人!这么像搜索的一道题,比赛的时候谁敢这样写。

      总体感觉就是本菜太水了!编码能力,思路,各种能力。有大牛说100行以内的代码不用调,100行以上的代码2,3分钟调完。差距啊!

  • 相关阅读:
    [Docker] Windows 宿主环境下,共享或上传文件到容器的方法
    [Docker]
    [Docker]
    [Docker]
    [Windows]
    [Linux] 树莓派 4B 安装 Ubuntu 19.10 (Eoan Ermine) IOT 版
    [Linux]
    [.Net] 什么是线程安全的并发集合
    [IOT]
    c++库大全
  • 原文地址:https://www.cnblogs.com/vongang/p/2390247.html
Copyright © 2011-2022 走看看