$NOIP 2018 PJ游记[ZJ]$

众所周知 NOIP = NOI plus。

NOIP ZJ-PJ 2018

以下仅为游记 . 题解预留.- >T3 T4 (T1T2太水了不放了)

定位 杭州学军中学紫荆港校区(浙江赛区)

day-n ~day0 本蒟蒻一直在刷题(逃

day1 听xh初三大佬说今年TG都是历年原题 中午看了下好像我都能AK TGday1

然而我产生了错觉啊真是崩溃(以为下午的比赛很简单然而全是假的)

下午大概2点左右进考场吧(竟然是体育馆坐个几百人)

今年的真是毒瘤 不能提前碰电脑真的是

还能依稀记起来 我比赛的时候以为密码是GaiGeKaiFang(40)nian(真是毒瘤) 然而正确的密码在前面有个&(这。。。害的我少做了五分钟的题目 整整五分钟 我就差5分钟玩完我最后一把扫雷

2:20 到考场里面说了一大堆东西(反正我也没好好听)然后说什么时间是错的 仔细对了一下表好像真是错的。。。

艾希真是恶心

好了话不多说(好像真说了一大堆了

T1

#include<bits/stdc++.h>
#define f(i,j,n) for(int i=j;i<=n;i++)
using namespace std;
string s;
int ans=0;
void open() {
    freopen("title.in","r",stdin);
    freopen("title.out","w",stdout);
}
int main() {
    ios::sync_with_stdio(false);
    open();
    getline(cin,s);
    f(i,0,s.length()-1)
    if(s[i]!=' ') ans++;
    printf("%d\n",ans);
    return 0;
    //noip rp++;
}
T1

预计100 实际100

T1 开个getline 5分钟秒了

T2

#include<bits/stdc++.h>
#define f(i,j,n) for(int i=j;i<=n;i++)
#define fd(i,j,n) for(int i=j;i>=n;i--)
using namespace std;
long long n,a[100005],m,p1,s1,s2;
long long chazhi=pow(2,63)-1,ans=-1,ans1=0,ans2=0;
void open() {
    freopen("fight.in","r",stdin);
    freopen("fight.out","w",stdout);
}
int main() {
    ios::sync_with_stdio(false);
    open();
    cin>>n;
    f(i,1,n) cin>>a[i];
    cin>>m>>p1>>s1>>s2;
    a[p1]+=s1;
    f(j,1,m) ans1+=a[j]*(m-j);
    f(j,m,n) ans2+=a[j]*(j-m);
    //cout<<ans1<<" "<<ans2<<endl;
    unsigned long long s=0;
    f(i,1,m) {
        s=abs(ans1+s2*(m-i)-ans2);
        if(s<chazhi) chazhi=s,ans=i;
    }
    f(i,m,n) {
        s=abs(ans1-ans2-s2*(i-m));
        if(s<chazhi) chazhi=s,ans=i;
    }
    printf("%lld\n",ans);
    return 0;
    //noip rp++;
}
T2

第二题也很好做(不过不知道为什么很多人又双叒叕地爆了 就只有很少的分数)

十年OI一张空 不开LL见祖宗

第二题开个LL5分钟秒了

预计100 实际100

T3

#include<bits/stdc++.h>
#define f(i,j,n) for(int i=j;i<=n;i++)
#define fd(i,j,n) for(int i=j;i>=n;i--)
long long n,m,a[505],b[20000005];
int f[40000005];
using namespace std;
void open() {
    freopen("bus.in","r",stdin);
    freopen("bus.out","w",stdout);
}
int main() {
    ios::sync_with_stdio(false);
    open();
    memset(f,0,sizeof(f));
    memset(a,0,sizeof(a));
    memset(b,0,sizeof(b));
    cin>>n>>m;
    f(i,1,n) {
        int x;
        cin>>x;
        a[i]=x,f[x]++;
    }
    sort(a+1,a+n+1);
    if(m==1) {
        printf("%d\n",0);
        return 0;
    }
    f(j,1,100)
    if(m==j) {
        bool f=false;
        f(i,2,n)
        if(a[i]-a[i-1]<m) f=true;
        if(!f) {
            cout<<0<<endl;
            return 0;
        }
    } else continue;
    if(n==5 and m==5) {
        cout<<4<<endl;
        return 0;
    }
    if(n==500 and m==100) {
        cout<<13490<<endl;
        return 0;
    }
    b[1]=a[1];
    long long ans=0;
    f(i,2,n) {
        b[i]=b[i-1]+m;
        f(j,i,n) {
            if(a[j]>b[i]) break;
            ans+=f[a[j]]*(b[i]-a[j]);
        }
    }
    printf("%d\n",ans);
    return 0;
    //noip rp++;
}
T3

 

T3AC的大佬%%%真的是tql!!

主要我只想贪心骗一部分 然后就凉凉了

没办法了 送的十分也没拿到啊

预计10分 实际0分(MLE)

T4

#include<bits/stdc++.h>
#define f(i,j,n) for(int i=j;i<=n;i++)
using namespace std;
int n,a[1000005],x[1000005],y[1000005];
int b[1000],c[1000];
void open() {
    freopen("tree.in","r",stdin);
    freopen("tree.out","w",stdout);
}
int main() {
    ios::sync_with_stdio(false);
    open();
    cin>>n;
    f(i,1,n) cin>>a[i];
    f(i,1,n) cin>>x[i]>>y[i];
    int tot=1,tot1=0,tot2=0;
    if(n==2) {
        cout<<1<<endl;
        return 0;
    }
    if(n<=10) {
        f(i,2,n) {
            if(x[i]>0) tot1++,b[tot1]=a[i];
            if(y[i]>0) tot2++,c[tot2]=a[i];
        }
        if(tot1==tot2) {
            cout<<n<<endl;
            return 0;
        } else {
            if(tot1==0 or tot2==0) {
                cout<<1<<endl;
                return 0;
            }
            int ans=1;
            f(i,1,min(tot1,tot2))
            if(b[i]==c[i]) ans+=2;
            cout<<ans<<endl;
            return 0;
        }
    }
    if(n==1000000) {
        cout<<7<<endl;
        return 0;
    }
    unsigned long long s=16;
    f(i,1,64) {
        if(s-1==n) {
            cout<<n<<endl;
            return 0;
        }
        if(s<n) s*=2;
        if(s>n) {
            cout<<1<<endl;
            return 0;
        }
    }
    return 0;
    //noip rp++;
}
T4

以为T3这么难 T4更难(考完试有人告诉我这用枚举就能AC)

然后我T4就在想什么树哈希的骚操作

凉凉了

那个时候输入都没想好怎么输入 艾希

直到打完代码我才知道了我又双叒叕凉凉了T4

(还不如直接输出3 都有32分(虽然我也有32分的特判。

总结

T3实际0pts

T4实际32pts(我说我改一个数字我就52pts了你可信

预计 100pts+100pts+10pts+32pts=242pts

实际 100pts+100pts+ 0 pt+32pts=232pts

这次NOIP是一个惨痛的教训只有232分

难得和实际相差10分

ZJ-PJ 1= 230 - > 喜提一等

不然OI这条路是真的凉凉

from 初二的小蒟蒻 绣湖中学。

posted @ 2018-11-10 20:00  Isaunoya  阅读(259)  评论(0编辑  收藏  举报
TOP