• Noip2014提高组真题Day1,2 校模拟7.7


    ?????这就是教练一天开两场模拟赛的原因吗??????

    尽管看到这个东西,我今天一天的模拟赛都格外格外格外的小(慌)心(张),然而还是免不了翻了Day2的T1。翻车天注定,工地去打拼。

    Day 1

    T1: 生活大爆炸版 石头剪刀布

    这题应该是被LuoGu放到普及组试炼场里了的吧?

    #include<iostream>
    using namespace std;
    int a[4300];
    int b[4300];
    int ansa,ansb;
    int Ruler[5][5]={2,0,1,1,0,
                     1,2,0,1,0,
                     0,1,2,0,1,
                     0,0,1,2,1,
                     1,1,0,0,2};
    int main(){
        //freopen("rps.in","r",stdin);
        //freopen("rps.out","w",stdout);
        int n,na,nb;
        cin>>n>>na>>nb;
        for(int i=1;i<=na;i++){
            cin>>a[i];
        }
        a[na+1]=-1000;
        for(int i=1;i<=nb;i++){
            cin>>b[i];
        }
        b[nb+1]=-1000;
        int pa,pb;
        pa=pb=1;
        for(int i=1;i<=n;i++,pa++,pb++){
            if(pa==na+1){
                pa=1;
            }
            if(pb==nb+1){
                pb=1;
            }
            //int res=Compare(a[pa],b[pb]);
            int res=Ruler[a[pa]][b[pb]];
            if(res==1){
                ansa++;
            }
            if(res==0){
                ansb++;
            }
        //    cout<<"A出 "<<a[pa]<<" B出 "<<b[pb]<<" 判定结果 "<<res<<endl;
        }
        cout<<ansa<<" "<<ansb<<endl;
    } 

    T2: 联合权值

    T3: 飞扬的小鸟

     

    Day 2

    T1:无线网络发射器选址

    暴力模拟,太简单了吧!!

    #include<iostream>
    using namespace std;
    int Map[2000][2000];
    int F[2000][2000];
    int ans;
    int MAXA;
    const int offset=40;
    int main(){
        int d,n;
        int x,y,k;
        cin>>d>>n;
        for(int i=1;i<=n;i++){
            cin>>x>>y>>k;
            Map[x+offset][y+offset]=k;
        }
        for(int i=0+offset;i<129+offset;i++){
            for(int j=0+offset;j<129+offset;j++){
                for(int l=1;l<=d;l++){
                    F[i][j]=Map[i+l][j]+Map[i-l][j]+Map[i][j+l]+Map[i][j-l]+Map[i+l][j+l]+Map[i-l][j-l]+Map[i+l][j-l]+Map[i-l][j+l];
                }
                F[i][j]+=Map[i][j];
                MAXA=max(MAXA,F[i][j]);
            }
        }
        for(int i=0+offset;i<129+offset;i++){
            for(int j=0+offset;j<129+offset;j++){
                if(F[i][j]==MAXA){
                    ans++;
                }
                
            }
        }
        cout<<ans<<" "<<MAXA;
    }

    ……

    (摆出了做T3的阵仗)

    为什么会错呢?

    还不是因为你LuoGu大凶

    啊!原来我只计算了几个边边角,而题目是让你算整块面积的嘛!

    人是惰性动物。既然走上了暴力枚举的道路,就不会回头!

    #include<iostream>
    using namespace std;
    int Map[2000][2000];
    int F[2000][2000];
    int ans;
    int MAXA;
    const int offset=40;
    int main(){
        int d,n;
        int x,y,k;
        cin>>d>>n;
        for(int i=1;i<=n;i++){
            cin>>x>>y>>k;
            Map[x+offset][y+offset]=k;
        }
        for(int i=0+offset;i<129+offset;i++){
            for(int j=0+offset;j<129+offset;j++){
                for(int s=i-d;s<=i+d;s++){
                    for(int o=j-d;o<=j+d;o++){
                        F[i][j]+=Map[s][o];
                    }
                }
                MAXA=max(MAXA,F[i][j]);
            }
        }
        for(int i=0+offset;i<129+offset;i++){
            for(int j=0+offset;j<129+offset;j++){
                if(F[i][j]==MAXA){
                    ans++;
                }
                
            }
        }
        cout<<ans<<" "<<MAXA;
    }

    改完之后,我对脑科和眼科医院产生了极大的兴趣。

    T2:寻找道路

    我承认做这题的时候我已经心烦意乱了。因为热的冒汗(鬼晓得为什么在空调机房里我会热的冒汗)

    写了好久,连样例都算不出来。最后实在受不了,出去洗了把脸,才勉强写出来个20分的莫名暴力。

    #include<iostream>
    #include<vector>
    using namespace std;
    const int MAXN=10001;
    int n,m,x,y,s,t;
    bool HaveEdge[MAXN];
    int Map[MAXN][MAXN];
    bool NoWay[MAXN];
    vector<int>Fmap[MAXN];
    int main(){
        //freopen("road.in","r",stdin);
        //freopen("road.out","w",stdout);
        cin>>n>>m;
        for(int i=1;i<=m;i++){
            cin>>x>>y;
            HaveEdge[x]=true;
            if(Map[x][y]!=1){
                Fmap[y].push_back(x);            
            }
            Map[x][y]=1;
        }
        cin>>s>>t;
        //HaveEdge[s]=true;
        //HaveEdge[t]=true;
        for(int i=1;i<=n;i++){
            Map[i][i]=0;
            if(!HaveEdge[i]&&i!=s&&i!=t){
                for(int j=0;j<Fmap[i].size();j++){
                    NoWay[Fmap[i][j]]=true;
                }
            }
        }
        for(int i=1;i<=n;i++){
        //    if(NoWay[i]||!HaveEdge[i]){
            if(NoWay[i]){
                for(int j=1;j<=n;j++){
                    Map[j][i]=114514;
                }
            }
            for(int j=1;j<=n;j++){
                if(i!=j&&Map[i][j]==0){
                    Map[i][j]=114514;
                }
            }
        }
        //cout<<Map[s][t]<<endl;
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                for(int k=1;k<=n;k++){
                    Map[i][j]=min(Map[i][j],Map[i][k]+Map[k][j]);
                }
            }
        }
        //cout<<Map[s][t]<<endl;
        if(Map[s][t]>=114514){
            cout<<-1;
        }
        else{
            cout<<Map[s][t];
        }
    }

    我也是牛逼233一天的考试用两次弗洛伊德。弗洛伊德狂热粉。

    由题解易得,这是一道送分题(滑稽)

    所以也看了看LuoGu题解。然后仔细一看………………

    我!第!一!遍!写!的!是!正!解!!!!!!!

    我把正解推了然后重写了个20分的暴力???????

    我*智勇双全说的就是我吧???!!?!

     T3 : 解方程

    听说要上高精度…(高精度厌烦综合征)

  • 相关阅读:
    (转)用Ajax技术让IE Web Control Tree View实现大数据量读取
    您试图从目录中执行CGI、ISAPI 或其他可执行程序,但该目录不允许执行程序
    oracle数据库中ORA28000: the account is locked问题
    C#动态生成html页面
    oracle 用户权限解释
    HCPC2013校赛训练赛 2
    ZOJ2770 Burn the Linked Camp 差分约束
    POJ2570 Fiber Network 状态压缩+floyd
    ZOJ3088 Easter Holidays 最短路
    POJ1364 King 差分约束
  • 原文地址:https://www.cnblogs.com/Uninstalllingyi/p/11147448.html
Copyright © 2020-2023  润新知