• noip2016自测报告


    随便测了一下2016的提高组,发现自己还是太菜了。。。

    day1

    T1:玩具谜题

    一个模拟题,打挂了,只有95分,错的很傻逼

    code:

    #include<bits/stdc++.h>
    using namespace std;
    int n,m;
    int add(int x){
        if(x>n) x%=n;
        if(x<=0) x+=n;
        return x;
    }
    const int N=200001;
    int t,a[N];
    char str[N][11];
    int main() {
        scanf("%d%d",&n,&m);
        for(int i=1; i<=n; i++)
            scanf("%d%s",&a[i],str[i]+1);
         int k=1;
         int move;
        for(int i=1;i<=m;i++){
            scanf("%d%d",&t,&move);
            if(a[k]==1&&t==1) k=add(k-move);
            else if(a[k]==1&&t==0) k=add(k+move);
            else if(a[k]==0&&t==1) k=add(k+move);
            else if(a[k]==0&&t==0) k=add(k-move);
        }    
        int len=strlen(str[k]+1);
        for(int i=1;i<=len;i++)
        cout<<str[k][i];
        return 0;
    }
    View Code

    T2:天天爱跑步

    压根就不会,只打了20分的子任务,第一次交还挂了,太菜了。。。,就不放代码了

    T3:换教室

    蓝题+期望?,直接放弃

    95+20+0=115,估计比大众分还低

    day2

    T1:组合数问题

    暴力乱操,正解想不出,40分

    code:

    #include<bits/stdc++.h>
    #define d cout<<"nmsltonyma";
    using namespace std;
    long long num[1001];
    int main() {
        long long n,m,t,k;
        scanf("%lld%lld",&t,&k);
        num[0]=1;
        num[1]=1;
        for(long long i=2; i<=100; i++)
            num[i]=num[i-1]*i;
        while(t--) {
            long long n,m,ans=0;
            scanf("%lld%lld",&n,&m);
            for(long long i=1; i<=n; i++)
                for(long long j=1; j<=min(i,m); j++) {
                    
                    if((num[i]/(num[j]*num[i-j]))%k==0) ans++;
                }
            printf("%lld
    ",ans);
        }
    }
    View Code

    T2:蚯蚓

    第一眼看到题就想到了堆,并且神奇地想出了怎样维护蚯蚓的增长

    写到一半突然发现需要在堆里多放一个参数维护,就不会写了

    然而,过了一会儿我脑子突然开窍了,发现只要把第一个参数改一下就不需要维护第二个参数了,80分到手,剩下几个点常数太大T了

    code:

    #include<bits/stdc++.h>
    using namespace std;
    const int N=2e5+20;
    int a[N];
    int n,m,cnt;
    double u,v;
    int t;
    priority_queue<int>q;
    int main() {
         int grow=0;
        scanf("%d%d%d%d%d%d",&n,&m,&cnt,&u,&v,&t);
        for(int i=1; i<=n; i++)
            scanf("%d",&a[i]);
        for(int i=1; i<=n; i++)
            q.push(a[i]);
        for(int i=1; i<=m; i++) {
            int x=q.top();
            x+=grow;
            q.pop();
            int x1=(u/v)*x;
            int x2=x-x1;
            q.push(x1-grow-cnt);
            q.push(x2-grow-cnt);
            if(i%t==0) printf("%d ",x);
            grow+=cnt;
        }
        cout<<endl;
        for(int i=1; i<=(n+m); i++) {
            if(i%t==0) {
                int x=q.top();
                printf("%d ",x+grow);
            }
            q.pop();
        }
    }
    View Code

    T3:愤怒的小鸟

    又是数学题,不想写,保灵

    总分:95+20+0+40+80+0=235,压一等

    不能再颓了,再颓就要成狒狒了(然而我又打开了fifa online 3)

  • 相关阅读:
    手工杀毒笔记
    中国黑客名单
    SQL Server 2005 数据库知识大全
    sql server和oracle行转列的一种典型方法
    <h1><span>标签在SEO中的作用及用法
    传说能加快vs编译速度(vs2008+cf3.5)
    WPF版调色器
    SQL经典案例
    Silverlight 2 相关文章汇总
    国内一些黑客高手的联系方式
  • 原文地址:https://www.cnblogs.com/cwjr/p/13542488.html
Copyright © 2020-2023  润新知