码迷,mamicode.com
首页 > 其他好文 > 详细

第一次noip

时间:2017-12-10 17:38:24      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:优化   false   表示   bool   out   memset   ==   数据   int   

2017noip是我参加的第一次大赛

话说初赛我都不知道是怎么过的,感觉就是去写了个名,wxy说要是进不了复赛就当省钱了

说高一是去感受,只要不爆零就行,其实心里还是特别想拿奖,可能因为那是对前一段努力的肯定吧

(不拿奖怎么交代啊,基友们都说我去玩了,还要我不买吃的回来就见不到你的床了,请个假吧老班还不给好脸色,老爹都说我去败家了。)宝宝心里苦

第一天的第一题不难,谁知是道小学生奥数题。我没想推公式,就是想着各种优化的搜索,然后我发现这样好像不行,最后还是只用了暴力,而且还是分类讨论hh,如果输入的小于10000,就暴力来做,否则就用我那估计不对的方法。

即使这样,第一题也耗费了我大量时间(反正后两题也挺难的),后两题,一个编译就没过(T T),一个全输出-1(T T)。结果毫无疑问,第一题只有30分,后两道都是0。

然而旁边一哥们玩了差不多俩小时的扫雷(小哥表示无所畏惧)

住拿宾馆啥玩意吧。

晚上定的表是第二天早上七点。然后六点五十wxy和fyw过来叫我和qz。她俩刚到那一层说了两句话,还没正经叫,就直接把俺俩吵醒了!!无奈。。当她俩真正开始喊的时候,我俩在一脸懵逼地看着对方。她俩喊着起来了没?我一边喊着没,一边只穿个小裤衩满地找衣服。。然后。。。然后。。。。wxy直接扒在小窗户上往里看(房间和走廊只有一面墙,而这个小窗户在这面墙上)。。。。啊啊啊我也是无语了。。

虽然早上很是惊恐,但竞赛时我淡定了许多,看着题不难,也不简单,图论,图形搜索,我貌似都只学过一点点,按正解肯定是写不出来的,然后我就用我自己独特的方法写了写,宝藏那题我冲着三四十分写,最后拿了40分,奶酪那题我的方法也真是可谓独特,感觉差不多。我把大量时间放到了最后一题,应该是模拟,我写出来以后感觉比前面的题都好,结果是0分。。

美好的时间总是短暂的。回到学校以后,好多地方都有模拟的参考数据,学君和洛谷上我评测的奶酪那题是直接A掉的,当时激动得我不要不要的,别人看了我的代码都惊了,你是怎么做到的?我也不知道。

 

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
struct czzs
{int x,y,z,f;}a[10000];
int ww[1005][1005]={};
int main()
{
freopen("cheese.in","r",stdin);
freopen("cheese.out","w",stdout);
std::ios::sync_with_stdio(false);
memset(ww,0,sizeof(ww));
int t,n,h,r;
bool ff=0,fff=0;
double dis;
cin>>t;
for(int i=1;i<=t;i++)
{
cin>>n>>h>>r;
ff=0;
fff=0;
memset(a,0,sizeof(a));
for(int j=1;j<=n;j++)
{
cin>>a[j].x>>a[j].y>>a[j].z;
a[j].f=0;
}
for(int j=1;j<=n;j++)
for(int k=1;k<=n;k++)
{
dis=(a[j].x-a[k].x)*(a[j].x-a[k].x)+(a[j].y-a[k].y)*(a[j].y-a[k].y)+(a[j].z-a[k].z)*(a[j].z-a[k].z);
dis=sqrt(dis);
if(dis<=r*2) ww[j][k]=1;
}
for(int j=1;j<=n;j++)
if(a[j].z+r>=h)
{
a[j].f=1;
for(int k=1;k<=n;k++)
{
if(ww[j][k]==1)
{
ww[j][k]=2;
ww[k][j]=2;
a[k].f=1;
}
}
}
for(;;)     //这个死循环有意思,搜索与这个洞连着的,szx看了说我这招贱。。
{
ff=0;
for(int j=1;j<=n;j++)
for(int k=1;k<=n;k++)
{
if(ww[j][k]==1&&ww[j][k]==2)
{
if(a[k].f==1) a[j].f=1;
if(a[j].f==1) a[k].f=1;
ff=1;
}
}
if(ff==0) break;
}
for(int j=1;j<=n;j++)
if(a[j].z-r<=0)
if(a[j].f==1)
{
cout<<"Yes"<<endl;
fff=1;
break;
}
if(fff==0) cout<<"No"<<endl;
}
return 0;
}

 

期待总是折磨人的。按说我得了170分,在省里排70名左右,按说拿二等是稳稳的,当时我还觉得要是第一题也去推公式的话搞不好能拿一等。

结果出来了以后,我却只得了110分(为啥人家的分都是更高了),奶酪那题得了40分,我到现在还不明白我的代码哪里有问题。唉。

怅然若失的感觉,我掉到了一百三十六名。现在能不能拿二等都是个问题,学长觉得省二一百五十多名都有希望,老师觉得不好说。

又陷入了紧张的等待。。。。

分数线划出来以后,省二排到了132名。。。。有种想打人的冲动。

。。。。

牛皮都吹出去了啊。。。

。。。。

怎么交代啊。。。

。。。。

怎么收场啊。。。

。。。。

怎么办啊。。。

。。。。

啊啊啊啊。。。

。。。。

欲哭无泪啊。。。

。。。。

努力吧。。。

。。。。

明年noip才是关键吧。。。

。。。。

明年再失败就真的GG了!!!

第一次noip

标签:优化   false   表示   bool   out   memset   ==   数据   int   

原文地址:http://www.cnblogs.com/victor2020/p/8017438.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!