zoukankan      html  css  js  c++  java
  • [考试反思]0904NOIP模拟测试37:守望

    100分并列的还有4个没粘

    总分是大脸的一半,然而还只低了2名。差距好大。。。但其实后面的分数段又很密集,和我都差不了多少。。。

    我可能也是最水的那一个,排行榜前7个里面就我没有AC。全是暴力。。。

    这次考试的时间分配有点问题,要记录一下。

    上来过了一边题目,T2的70分很好拿但是100分的暂时没有想出来,T1暴力只有30~60。

    但是T3很不一样,像一个极其简单的dp,基本上没有思维量。

    于是决定先入手T3,当我码上1k以上的时候我就知道这题没那么简单(考场上我的代码基本不上k)

    一个小时过去了,我码完了但是调不过样例。没太着急,继续慢慢调。

    8点的时候,我再次意识到了事态的严重性。100分钟一分没拿,有点危险了。

    但是它已经出现了要过样例的迹象,我最后还是没有选择放弃。

    最后在开考后128分钟我总算过了样例以及几个手模点,交了,长舒了一口气。

    这倒是为数不多的在考场上交了长达1.6k的代码还没爆零。

    但其实很危险,如果我觉得T3简单的话,那么如果T1T2难的话,剩的那么点时间岂不是要完蛋???

    然而幸亏暴力不是很难。感觉还是T2比较简单,对着式子看了半天找到了规律,正准备AC。

    然后这才600B的小玩意极其好打,匆匆忙忙23分钟搞定了。

     1 #include<cstdio>
     2 #define mod 1000003
     3 #define int long long
     4 int pow(int b,int t,int a=1){for(;t;t>>=1,b=b*b%mod)if(t&1)a=a*b%mod;return a;}
     5 int n,m,fz=1,cts,fm;
     6 main(){
     7     scanf("%lld%lld",&n,&m);int pm=m-1,cnt=0;
     8     while(pm)pm>>=1,cnt++;
     9     if(cnt>=n){puts("1 1");return 0;}
    10     if(m>=mod)goto spj;
    11     for(int i=1;i<m;++i){
    12         int cnt=0;
    13         for(int p=2;i%p==0;p<<=1,++cnt);
    14         int j=i>>cnt;cts+=cnt;
    15         fz=fz*(pow(2,n-cnt)-j)%mod;
    16     }fm=pow(2,(n%(mod-1)*(m-1)-cts+mod-1));
    17     printf("%lld %lld
    ",(fm-fz)%mod,fm);return 0;
    18 spj:for(int p=2;p<m;p<<=1)(cts+=(m-1)/p)%=(mod-1);
    19     printf("0 %lld
    ",pow(2,n%(mod-1)*(m-1)-cts+mod-1));
    20 }
    愚蠢的东西

    错误很明显:分子减分母得到了负数然而没有+mod。而spj部分虽然式子里分子的确是0但是还要拿1减一下所以分子等于分母!

    两个问题各丢了30分,剩下40。没时间检查没时间对拍。这时候是还有45分钟。
    然后去T1,感觉不是很好做,时间又是很紧迫,还想稍微检查一下不要低错。

    呼吸急促,8分钟打了一个600B的30分的纯暴力。

    然后忽然想到优化,算错了复杂度,以为是O(n)的(实际是n2),10分钟码完,700B的代码有50分了。

    然后还有20分钟左右。

    然后我以为我能AK了。

    我当时是真的这么想的:T1O(n)稳了,T2的100%数据也都会,T3手模各种毒瘤数据都没错。

    然后不能飘不能飘。急忙打了一个对拍弄T1,没问题(还是没有考虑复杂度)

    T2把样例扔进去没出锅,因为手模大点也不知道正解所以放过了(随便模两个就出负数了啊啊啊)

    T3继续手模样例,还有7分钟时挂了一个,改了,再交,用10分盖掉了30分。

    还有2分钟是又挂了一个,再改,再交,用30分又盖回来了。

    然后就结束了。

    这次关键就在于时间。T3吃掉了太多时间导致T1T2低错不断。

    复杂度算错这种事情直接葬送了我去想正解的想法。

    一定不要在其他题的能拿的分数都拿到的情况下,在一道题上肝超过80分钟!

    还是要注意细节,不要因为想到思路就松懈了导致代码实现出锅。

    打题之前一定要仔细分析思路的复杂度,要有准确的期望得分。

    唉。。。还是太弱,什么毛病都犯。

    也许是好事吧,毕竟这60多天就是用来犯错改正长记性的嘛。。。

  • 相关阅读:
    response.redirect三种新页面转向方法
    respones.redirect 打开新的页面的两个方法
    临时表
    ODBC方式操作oracle数据库
    OLEDB方式操作oracle数据库
    oracle所有的乱码解决方案
    引用HM.Util.Ioc 的时候报错
    js webstrom中svn的配置及使用
    js vs2013中允许js访问json文件的解决方案
    Oracle 字符集常见字符集及解决方案
  • 原文地址:https://www.cnblogs.com/hzoi-DeepinC/p/11474899.html
Copyright © 2011-2022 走看看