//迟早会变成【真】的

2017年11月12日,2017年全国青少年信息学奥林匹克联赛(NOIP2017)DAY2交卷后。阴天。

DAY2出来以后,大家貌似都比DAY1轻松,至少——我是这样的。

因为今天题目第一题难度很低,给了我足够时间打暴力。相比于DAY1手抖得都打不出freopen来说,好多了。

回来的路上和同学们讨论着今天的题目,感觉好像没什么问题,第一题打了bfs应该能A,第二、三题打了暴力,DAY2加起来至少有190分,第二题骗分运气好的话可能能得一点分吧。

坐上回一中的大巴后教练过来说我爸妈来接我了,于是坐上自家车去吃自助餐了,非常愉快。

回到家,打开笔记本,超级卡,卡了大概10多分钟打开了QQ,得知luogu群里有HN的代码,就去下了。期间电脑依然超级卡,浪费很多时间。

拿到代码,打开luogu,卡了半天,然后签到——特大吉。

想了想——测最有把握一道题吧:cheese(奶酪那题)。

代码如下:

#include <bits/stdc++.h>
using namespace std;
template<typename _Tp>inline void IN(_Tp&dig)
{
    char c;bool flag=0;dig=0;
    while(c=getchar(),!isdigit(c))if(c=='-')flag=1;
    while(isdigit(c))dig=dig*10+c-'0',c=getchar();
    if(flag)dig=-dig;
}
int T,n,h,r;
double x[1005],y[1005],z[1005];
bool book[1005],hbok[1005];
queue<int> que;
inline double P2(double a){return a*a;}
inline double dis(int a,int b)
{
    return sqrt(P2(x[a]-x[b])+P2(y[a]-y[b])+P2(z[a]-z[b]));
}
int main()
{
    freopen("cheese.in","r",stdin),freopen("cheese.out","w",stdout);
    IN(T);
    while(T--)
    {
        IN(n),IN(h),IN(r);
        for(int i=1;i<=n;i++)IN(x[i]),IN(y[i]),IN(z[i]);
        for(int i=1;i<=n;i++)
        {
            if(z[i]-r<=0)que.push(i),book[i]=1;
            if(z[i]+r>=h)hbok[i]=1;
        }
        while(!que.empty())
        {
            int F=que.front();que.pop();
            for(int i=1;i<=n;i++)if(!book[i])
                if(dis(F,i)<=(double)(r<<1))
                {
                    if(hbok[i]){puts("Yes");goto end;}
                    que.push(i),book[i]=1;
                }
        }
        puts("No");
        end:memset(book,0,sizeof(book));
        memset(hbok,0,sizeof(hbok));
        while(!que.empty())que.pop();
    }
    return 0;
}

去掉freopen,提交,真诚地等着一屏幕的原谅色

结果等来的却是这样一幅景象——

WTF?心头一紧,仔细检查,发现freopen关掉了啊。怎么回事?

把数据下载下来观察发现:我没有判断上下边界直接由一个洞联通!

于是,第一题0分。

强忍着心中的剧痛,交了第三题写的暴力。代码如下:

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
template<typename _Tp>inline void IN(_Tp&dig)
{
    char c;bool flag=0;dig=0;
    while(c=getchar(),!isdigit(c))if(c=='-')flag=1;
    while(isdigit(c))dig=dig*10+c-'0',c=getchar();
    if(flag)dig=-dig;
}
int n,m,q,x[300005],y[300005];
map<int,LL> mp[300005];
deque<LL> v1,v2;
void work()
{
    for(int i=1;i<=m;i++)v1.push_back((LL)i);
    for(int i=2;i<=n;i++)v2.push_back((LL)i*(LL)m);
    for(int i=1;i<=q;i++)
    {
        LL tmp=v1[y[i]-1];
        printf("%lld\n",tmp);
        deque<LL>::iterator it=v1.begin()+y[i]-1;
        v1.erase(it);
        v2.push_back(tmp);
        v1.push_back(v2[0]),v2.pop_front();
    }
}
LL getnum(int a,int b)
{
    if(mp[a][b])return mp[a][b];
    return (LL)(a-1)*(LL)m+(LL)b;
}
int main()
{
    freopen("phalanx.in","r",stdin),freopen("phalanx.out","w",stdout);
    IN(n),IN(m),IN(q);
    int MX=1;
    for(int i=1;i<=q;i++)IN(x[i]),IN(y[i]),MX=max(MX,x[i]);
    if(MX==1)work(),exit(0);
    for(int i=1;i<=q;i++)
    {
        LL tmp;
        printf("%lld\n",tmp=getnum(x[i],y[i]));
        for(int j=y[i];j<m;j++)mp[x[i]][j]=getnum(x[i],j+1);
        for(int j=x[i];j<n;j++)mp[j][m]=getnum(j+1,m);
        mp[n][m]=tmp;
    }
    return 0;
}

照理说Map应该能骗50分,但是最后只得了30分。也罢,反正第一题都挂了。。。

好吧,不得不说,这时候我已经彻底崩溃了。一个多月的停课,丢了一个多月的文化课,期中考试没考,教练和自己的努力,同学们的帮助,全部化为乌有了。

也许这就是故意的吧,我怕什么就发生什么。

但是我也总想着提高组一等奖应该完全没问题啊,就算全打暴力都可以拿吧。

但是事实证明我错了。

真不知道到时候获奖名单出来了,学校门口大红榜上偌大一块地方,却用显微镜都找不到我的名字,认识我的人都会怎么想呢。。。

毕竟去年出乎意料走运拿了一等,今年却出乎意料非洲滚粗。

唉,风水轮流转啊。

还想着拿高分呢。

也不知道为什么,进了考场,平时模拟考的气势全没了,完全没心思想题,草稿纸基本都没用。

主要还是心态问题吧,毕竟心态确实是炸了。

就DAY1来说,发现T1不会做就直接懵逼,最后吓到手抖得无法做题。

我是不是太紧张了。

但是应该还是太naive了,毕竟以前完全是抱着娱乐的心态搞OI的,很轻松。现在心态变了,有包袱了,很容易想多,什么冬令营什么省选。

看来以后还是不能想太多了,生活中也是这样吧。

以后也懒得膜人与吹比了,脚踏实地貌似是我缺少的东西。

还有要多刷题,毕竟熟能生巧啊。

在崩溃恢复后的1个小时之后,我去luogu交了DAY2T2,发现得分还不错,70分。

其实就是跑dfs枚举生成树,复杂度$O(2^m)$。其实好像还大些,懒得证了。

但是显然这样复杂度太高,大样例都没过。所以我就加了个计数器,统计程序调用了多少次dfs函数。如果计数器的值大于$10^6$就直接输出当前答案,不管答案对不对。

总之就是骗分。

可能是luogu数据水吧。。。

总之两天luogu数据我250分。真是讽刺啊,哈哈。

但愿ccf的数据也水啊,求上天保佑。。。

唉,算了,就当是一次锻炼吧。相信现在rp掉了这么多,迟早会在以后捡回来的了。

但愿以后还有机会让我再努力一把。

今天开始估计就得滚回常规了,博客基本停更(或者说就是停更),停止处理各类事项。

希望以后我还能再回来打理这个博客吧。

再见,OI。你好,常规。

分类: 所有

XZYQvQ

炒鸡辣鸡的制杖蒟蒻一枚QvQ

2 条评论

fzj · 2017年11月13日 4:45 下午

表示同感,进考场后完全没了模拟的感觉,Day1完全就是极度紧张,暴力都没打。Day2确实也比Day1轻松一点但差不多也跪了。o(╥﹏╥)o

piano · 2017年11月12日 8:41 下午

orz 我爆了好多分啊 药丸

发表评论

电子邮件地址不会被公开。 必填项已用*标注

你是机器人吗? =。= *