zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    LeetCode Array Easy 414. Third Maximum Number
    LeetCode Linked List Medium 2. Add Two Numbers
    LeetCode Array Easy 283. Move Zeroes
    LeetCode Array Easy 268. Missing Number
    LeetCode Array Easy 219. Contains Duplicate II
    LeetCode Array Easy 217. Contains Duplicate
    LeetCode Array Easy 189. Rotate Array
    LeetCode Array Easy169. Majority Element
    LeetCode Array Medium 11. Container With Most Water
    LeetCode Array Easy 167. Two Sum II
  • 原文地址:https://www.cnblogs.com/cwjr/p/13542488.html
Copyright © 2011-2022 走看看