The 2018 ACM-ICPC CCPC 宁夏 A-Maximum Element In A Stack
时间:2019-08-31
本文章向大家介绍The 2018 ACM-ICPC CCPC 宁夏 A-Maximum Element In A Stack,主要包括The 2018 ACM-ICPC CCPC 宁夏 A-Maximum Element In A Stack使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
题意
对一个栈有入栈和出栈两种操作,求每次操作后栈的最大值的异或。
分析
类似于单调栈,但是还没有那么复杂。
只需保持栈顶为最大值,如果入栈元素小于栈顶元素,则重复一次栈顶元素入栈;否则,直接入栈。
大概长这样:
#include<bits/stdc++.h> using namespace std; typedef long long ll; int n, p, q, m; unsigned int SA, SB, SC; const int maxn = 5e6 + 10; ll sta[maxn], top = 0; ll PUSH(ll x) { sta[++top] = x; return sta[top] = max(sta[top], sta[top-1]); } ll POP() { return sta[top = max(top-1, 0ll)]; } unsigned int rng61() { SA ^= SA << 16; SA ^= SA >> 5; SA ^= SA << 1; unsigned int t = SA; SA = SB; SB = SC; SC ^= t ^ SA; return SC; } ll gen() { ll ret = 0, tmp; scanf("%d%d%d%d%d%d%d", &n, &p, &q, &m, &SA, &SB, &SC); for(int i = 1;i <= n;i++){ if(rng61() % (p+q) < p) tmp = PUSH(rng61()%m + 1); else tmp = POP(); //printf("%d\n", tmp); ret ^= (i * tmp); } return ret; } int main() { int T, kase = 0; scanf("%d", &T); while(T--) { top = 0; ll ans = gen(); printf("Case #%d: %lld\n", ++kase, ans); } return 0; }
参考链接:https://blog.csdn.net/Aerry_ale/article/details/81089375
原文地址:https://www.cnblogs.com/lfri/p/11439019.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 进击的NIO!Reactor模式!
- 交换机与VLAN:以办公室为例趣讲一波!
- 超详细Netty入门,看这篇就够了!
- Netty进阶之粘包和拆包问题
- 用侦察兵的故事趣讲ICMP和Ping,看完想忘都难!
- Kubernetes 使用 ceph-csi 消费 RBD 作为持久化存储
- ZooKeeper入门,看这篇就够了
- 超详细的RabbitMQ入门
- 用向量做Mantel的几个问题
- Eclipse集成Maven打包时报错:[ERROR] Unknown lifecycle phase "mvn". You must specify a valid lifecycle phase
- Windows下使用Nginx+Tomcat做负载均衡
- CTO 写的代码,真是绝了
- 网站克隆:setoolkit社工软件
- 什么是数据驱动测试?学习创建框架
- 自动化面试题,我用来面试成功了