zoukankan      html  css  js  c++  java
  • “盛大游戏杯”第15届上海大学程序设计联赛夏季赛暨上海高校金马五校赛 H

    给定一个长度为 的非负整数序列,下标为 , ,…,n

    定义:sequence(K : 由下标为 的倍数组成的子序列,即下标为 , ,2 ,...,[n1/k]

    query(K,S : 询问sequence(K 中的第 大的数字

    第一行一个整数 ,表示测试组数。
    对于每组数据,第一行输入两个整数 ,1<=n<=20000  , 1<=m<=100000  表示序列的长度, 表示询问个数。
    接下来一行是 个整数0 ,1 ,..,n1 ,0<=<31   , i=0,1,,n ,表示序列。
    接下来 行,每行两个整数K,
    <=  10   , 1<=S<=

    每组数据对于每个询问输出一行,若sequence(K 的元素个数小于 ,输出 ;否则输出query(K,S

    复制
    1
    5 2
    2 5 3 4 1
    2 4
    2 1
    
    -1
     3
    解法:
    1 预处理,对于每一个数字我们都根据题意进行保存,应该复杂度n*logn
    2 排序
    2.1 k大于n,s==1 数字最小也>=1,输出a[0]
    2.2 k<=n k的序列不足S,输出-1,可以的输出保存值
     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 #define LL long long
     4 #define ULL unsigned long long
     5 vector<int>Ve[52345];
     6 int a[52345];
     7 bool Vesort(int x,int y){
     8     return x>y;
     9 }
    10 int main(){
    11     int t;
    12     cin>>t;
    13     while(t--){
    14         int n,m;
    15         for(int i=0;i<=52345;i++){
    16             Ve[i].clear();
    17         }
    18         scanf("%d%d",&n,&m);
    19         for(int i=0;i<n;i++){
    20             scanf("%d",&a[i]);
    21         }
    22         for(int i=1;i<=n;i++){
    23             for(int j=0;j<n;j+=i){
    24                 Ve[i].push_back(a[j]);
    25             }
    26             sort(Ve[i].begin(),Ve[i].end(),Vesort);
    27         }
    28         while(m--){
    29             int k,s;
    30             scanf("%d%d",&k,&s);
    31             if(k>n){
    32                 if(s==1){
    33                     printf("%d",a[0]);
    34                 }else{
    35                     printf("-1");
    36                 }
    37             }else{
    38                 if(Ve[k].size()<s){
    39                     printf("-1");
    40                 }else{
    41                     printf("%d",Ve[k][s-1]);
    42                 }
    43             }
    44             cout<<endl;
    45         }
    46     }
    47     return 0;
    48 }
  • 相关阅读:
    python安装requests
    Python多线程基本操作
    Python连接mysql基本操作
    Python中文问题
    Python 3.6.5 导入pymysql模块出错:No module named 'pymysql'
    python安装pyMysql
    HTML, CSS. JS的各种奇葩bug
    css移动元素的几种方法
    三张图看懂 clientheight、offsetheight、scrollheight
    伪类和伪元素的区别
  • 原文地址:https://www.cnblogs.com/yinghualuowu/p/7163759.html
Copyright © 2011-2022 走看看