西安现场打铁记

打铁游记:

Day1:去寺庙烧了烧香拜了拜佛,去了去毒,然后在热身赛快速猜对,直接过了AB题暴力模拟一下100多行代码也是过了。最后80多名,感觉不错,美滋滋。

Day2:运气都用在的昨天的热身赛,今天2发才过了B,对于F题没敢去猜,3个小时才过了F,线段树模板有点小瑕疵,280分钟过了H,后来容斥一发LOL,结果错了,赛后发现题意没懂,中间弹窗一个J的样例解释,没去看,然后就GG

 

赛后去了回民街,周老师请我们吃了一顿大餐,西安小吃很棒,有点撑,感觉有点对不起这个饭钱。


赛后我甚至都不想去写总结的,这次本以为会稳铜的比赛,拿了铁。总会有错误吧,后来发现大部分打铁的队伍都是卡了F题,这个猜答案的题目。

总结这次失败总要有个总结失败的过程:倒带回顾一下这次比赛,我应该站在一个观察者的角度客观的去回忆整个比赛的过程,然后在对其中的不足之处进行反思。首先我开了最后一题,ykp学姐发现了B题好做,最后一题是B的加强版,B题qq学姐直接开敲,后来发现她理解错题意了。我上去敲了下,一wa,发现错误,和赵前学长讨论下,他选择相信我,提交ac。然后我就发现了f,直接敲,发现题意理解错误,ykp学姐读题告诉qq学姐,然后qq学姐和我讨论了一波H,发现不能暴力,不能树状数组,后来发现线段树可以做,然后qq学姐发现模板,去敲模板。开始我还没理解为什么线段树可以做,因为我线段树做题很少,赛前也主攻dp,我去和ykp学姐讨论f题,这个题好难的,我选择暴力一下,试着凑出样例,然而并没有凑出样例,赛后我发现我的打表有点小问题,ykp学姐的题意讲的很清楚,而我写程序貌似曲解了题意,从言谈中qq学姐后来貌似发现了我的错误,可能是他在专心改自己的bug,我在专心我的bug,他的线段树,我好像懵懂的知道错误的所在,我说了一下:“可能是端点的大于等于号问题。”我没看他写的代码,她应该也没理解我的意思,我在中间两位学姐应该看了其他几道不可为的题目。后来去看J题,我发现这是我玩的游戏LOL,然后就去做,ykp学姐翻译的很到位,我的英语实在是烂的扣脚。此时,听到对面想用一个瞎蒙的去试试f,我们也试了下,结果过了,想了想是容斥原理,就直接上了,我敲着敲着不想敲了,就告诉qq学姐题意,想让她去敲,然后她敲了一半,去改线段树了,ykp学姐和qq学姐一起改对了线段树。还有二十分钟,在还有接近一小时的时候,我想了想qq学姐的线段树的合理性,发现我错的离谱,这个非常合理,于是我仔细想了下容斥,并在纸上写出它的算法,两位学姐改出线段树就剩下20分钟,我15分钟敲完,改了5分钟,wa了。


过程就是这么个过程,我想了下,我的错误之处,和做的还可以的地方,B题,思路不完全,就去巧了代码,有了朦胧的思路就去敲了代码,然后wa了一下,立马想到错误之处。F题应该是我全场背锅了,因为我的思路问题,貌似还带偏了ykp学姐,这个题我的题意理解的还是曲解了,开始就曲解了题意,后来是思路问题吧,看到下面的代码就知道我思路错在了哪里,如果思路对,不出意外40内分钟出题,3,3可以看到是接近0.5,因为最后可能会流局,而且我的暴力范围也有限,所以下一步应该尝试 1 2 和2 1。立马发现规律,尝试一波。如果说直接尝试,这个风险可不是一般的大。现在让我直接尝试,我可能也不会浪费罚时。H题,我应该去帮助qq学姐改错的,我只是隐约的知道在哪里, 可能我表达的不好,他听得不对,应该解释清楚的。如何正确的交流也是一门学问,如果时间充裕,可以做出J题的,J题出了弹窗,我没看懂,应该让ykp学姐看下的。而且昨天qq学姐给我说,他不擅长模拟,我不应该让他去做J题的,我当时的想法是逃避,因为我看到的铁,入铜无门,我想逃避,想抱大腿,qq学姐应该更加不适吧,关键时候,没了担当,很是那个。。。锅大概就这么多了吧。


我个人认为做的还可以的地方:最后,qq学长敲的时候,我在看线段树模板,并推出线段树的合理性。。。反应好迟钝,并立马恢复了斗志,去想应该怎么快速敲出容斥,并在两位学姐改代码的时候,手写出了代码,并在最后敲出了代码,如果时间多半小时,或者开始让ykp学姐看了弹窗,有80%的概率会过这道题。


拿铜虽然不开心,但也不是不合理,客观的分析一下拿铁的原因,如果这是一口大锅,我肯定要背一部分,我认为这不是全部的锅,我要背60%的锅,qq学姐30%,ykp学姐10%,先分析ykp学姐要背的锅,F题的题意并没有给我讲清楚,虽然浪费时间不多,不过总体来说,学姐的翻译实在太棒辣,而且一起配合如沐春风。qq学姐,线段树从头玩到尾调试很长时间,不过能想到线段树还是很赞的,我的线段树贼烂,qq学姐作为大腿,这样我感觉不符合自己的风格,而且它具备手敲的能力,在cf上我见识过,所以这个30%的锅扔给她。我的锅很多,交流问题,理解问题,还把错误的观点带偏队友,关键时候的逃避心理,60的锅。


改进:交流问题必须改进,首先题意应该完整的讲出,发现自己和队友理解的不一样,应该解释清楚,发现自己不能理解的,应该让队友保持知情权,让他们去理解,不放过任何一个弹窗,自己应该有的担当一定不能因为自己不想去做而扔给队友。


收获:开始我以为打印代码是为了打印出来带回来给队友分享,在这次比赛中,打印代码,是为了打印出来,自己拿着改bug,给队友让位子,不能一个人占着位子。深刻理解的三思而行,谋定后动。


写一下负能量,这次去西安实属不易,开始并没有想到我能去西安,首先感谢老师,本来大三三个队伍,我去了两次现场赛,有些同学并不能去一次现场赛,如果我能够拿奖,别人心里会平衡很多,但是我打了铁,而且老师扮演了黑脸,这就很尴尬,赛后那些好吃的也让我很是内疚。然后我应该评价一下这样做的合理性,就像赛前谁都没想到这次会拿铁一样,比赛是3分运气,运气不佳吧,如果说是配合不默契,也不应该吧,比赛前一个月,虚拟进行了数次比赛,应该会有点默契了吧。

还是比赛感觉很不错的,配合也是这几次最好的一次了吧,线段树,开始就没怎么练,都没怎么练,连模板都准备的不充分,这次还是线段树专场,造化弄人吧。


如果开始敲对,并思考对这个题的话,也许直接就猜公式了。

附上后来敲的样例代码:

#include <bits\stdc++.h>
using namespace std;

int main()
{
    int n,m;
    cin>>n>>m;
    double ans=0;
  for(int i=1;i<(1<<18);i++)
  {
   int tmp=i,j=1,cnt=1;
   int n1=n,m1=m;
   while(tmp>0)
  {
    if(tmp%2)
    {
        n1+=cnt;
        m1-=cnt;
        cnt=1;
    }
    else
    {

        n1-=cnt;
        m1+=cnt;
        cnt=min(cnt*2,n1);//开始写的cnt=2*cnt,开始我在想如果输光就输光了,没去想如果赢了的话,并没有赢那么多。。。
    }
      tmp/=2;
      j*=2;
    if(n1<=0||m1<=0)break;
  }
  if(tmp==0&&m1==0)ans+=1.0/j;
  }
  printf("%.5f\n",ans);
    return 0;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值