2017.11.3测试

来源:互联网 发布:龙腾世纪2 知乎 编辑:程序博客网 时间:2024/05/22 13:23

分数:0+50+0+0+0=50
红色,是WA的颜色(滑稽)
没错,今天考5题
noip选手只考3题


题解

T1 interval

给出一组序列及M组询问
对于每组询问,给出xy,问序列中x的个数等于y的个数的区间数
baoli死于部分离散化(滑稽)

留坑待填

T2 premu

已知一组由数字1~N组成的序列各个位置上的数的逆序数,求出这组唯一的序列
逆序数:在这个数之前的比它大的数的数量

从后往前扫,可以保证当前位的数在剩下所有数中的位置是准确的
因此我们考虑维护一个队列,能够实现动态取数及排列,当然选择vector
死于不会写vector

#include<bits/stdc++.h>using namespace std;int read(){    int x=0,f=1;    char c=getchar();    while(!isdigit(c)){        if(c=='-')f=-1;        c=getchar();    }    while(isdigit(c)){        x=(x<<3)+(x<<1)+c-'0';        c=getchar();    }    return x*f;}int n;int p[100005],a[100005];vector<int> v;vector<int>::iterator it;int main(){//  freopen("premu.in","r",stdin);//  freopen("premu.out","w",stdout);    n=read();    for(int i=1;i<=n;i++){        p[i]=read();        a[i]=p[i]-p[i-1];        v.push_back(i);    }    for(int i=n;i>=1;i--){        it=v.begin()+i-a[i]-1;        p[i]=*it;        v.erase(it);    }    for(int i=1;i<=n;i++)cout<<p[i]<<" ";}

T4 side

没错今天我们只考了这仨
但是这题属于没看的

留个坑儿

原创粉丝点击