• The 2018 ACM-ICPC Chinese Collegiate Programming Contest Maximum Element In A Stack


     1 //利用二维数组模拟
     2 #include <iostream>
     3 #include <cstdio>
     4 #include <cstring>
     5 #include <string>
     6 #include <algorithm>
     7 #include <utility>
     8 #include <vector>
     9 #include <map>
    10 #include <queue>
    11 #include <stack>
    12 #include <cstdlib>
    13 typedef long long ll;
    14 #define lowbit(x) (x&(-x))
    15 #define ls l,m,rt<<1
    16 #define rs m+1,r,rt<<1|1
    17 using namespace std;
    18 int t,n,m,p,q;
    19 const int N=5e6+9;
    20 ll  a[N][2];//数据可能超int
    21 unsigned int SA,SB,SC;
    22 unsigned int rng61(){
    23     SA^=SA <<16;
    24     SA^=SA >>5;
    25     SA^=SA <<1;
    26     unsigned int  t=SA;
    27     SA=SB;
    28     SB=SC;
    29     SC ^=t^SA;
    30     return SC;
    31 }
    32 int  main()
    33 {
    34     scanf("%d",&t);
    35     for(int i=1;i<=t;i++){
    36         memset(a,0,sizeof(a));
    37         scanf("%d%d%d%d%u%u%u",&n,&p,&q,&m,&SA,&SB,&SC);
    38         //每次调用rng61()上面的数会变
    39         int top=1;//因为取最大值时要和a[top-1][1]比较
    40         //故top初始化为1
    41         ll ans=0;
    42         for(int i=1;i<=n;i++){
    43             if(rng61()%(p+q)<p){
    44                 a[top][0]=rng61()%m+1;//当前应该压入的值
    45                 a[top][1]=max(a[top-1][1],a[top][0]);//令栈顶元素为当前栈内最大值
    46                 top++;
    47             }
    48             else top--;//弹出,而弹出后的栈顶元素仍是弹出后的最大值
    49             if(top<=1) ans^=0,top=1;//空时不操作
    50             else {
    51                 ans^=(i*a[top-1][1]);//top始终表示栈内元素个数+1
    52             }
    53         }
    54         printf("Case #%d: %lld
    ",i,ans);
    55     }
    56     return 0;
    57 }
  • 相关阅读:
    map集合方法。
    正则表达式提取器。
    jmeter使用多台linux进行分布式压测。
    如何配置SSHKey
    为什么要做接口测试?
    npm install -g @angular/cli@latest 失败
    关于Newtonsoft.Json,LINQ to JSON的一个小demo
    mysql循环插入数据、生成随机数及CONCAT函数
    WebApi HTTP Put 405 Method not allowed
    npm install 失败
  • 原文地址:https://www.cnblogs.com/tingtin/p/9327342.html
Copyright © 2020-2023  润新知