https://codeforc.es/gym/102222/problem/F

注意到其实用unsigned long long不会溢出。

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef long long ll;
  4. inline int read() {
  5. int x=0;
  6. int f=0;
  7. char c;
  8. do {
  9. c=getchar();
  10. if(c=='-')
  11. f=1;
  12. } while(c<'0'||c>'9');
  13. do {
  14. x=(x<<3)+(x<<1)+c-'0';
  15. c=getchar();
  16. } while(c>='0'&&c<='9');
  17. return f?-x:x;
  18. }
  19. inline void _write(int x) {
  20. if(x>9)
  21. _write(x/10);
  22. putchar(x%10+'0');
  23. }
  24. inline void write(int x) {
  25. if(x<0) {
  26. putchar('-');
  27. x=-x;
  28. }
  29. _write(x);
  30. putchar('\n');
  31. }
  32. void TestCase(int ti);
  33. int main() {
  34. #ifdef Yinku
  35. freopen("Yinku.in","r",stdin);
  36. //freopen("Yinku.out","w",stdout);
  37. #endif // Yinku
  38. int T=read();
  39. for(int ti=1; ti<=T; ti++)
  40. TestCase(ti);
  41. }
  42. /*--- ---*/
  43. int n, p, q, m;
  44. unsigned int SA, SB, SC;
  45. unsigned int rng61() {
  46. SA ^= SA << 16;
  47. SA ^= SA >> 5;
  48. SA ^= SA << 1;
  49. unsigned int t = SA;
  50. SA = SB;
  51. SB = SC;
  52. SC ^= t ^ SA;
  53. //cout<<"GEN "<<SC<<endl;
  54. return SC;
  55. }
  56. unsigned long long ans;
  57. struct Stack{
  58. stack<unsigned int> v;
  59. stack<unsigned int> maxv;
  60. void PUSH(unsigned int val){
  61. //cout<<"PUSH "<<val<<endl;
  62. if(v.size()==0){
  63. v.push(val);
  64. maxv.push(val);
  65. }
  66. else{
  67. v.push(val);
  68. maxv.push(max(maxv.top(),val));
  69. }
  70. }
  71. void POP(){
  72. //cout<<"POP"<<endl;
  73. if(v.size()==0){
  74. ;
  75. }
  76. else{
  77. v.pop();
  78. maxv.pop();
  79. }
  80. }
  81. void CLEAR(){
  82. while(v.size()){
  83. v.pop();
  84. maxv.pop();
  85. }
  86. }
  87. unsigned int MAX(){
  88. if(v.size()==0){
  89. return 0;
  90. }
  91. else{
  92. return maxv.top();
  93. }
  94. }
  95. }st;
  96. void gen() {
  97. st.CLEAR();
  98. ans=0;
  99. scanf("%d%d%d%d",&n,&p,&q,&m);
  100. scanf("%u%u%u",&SA,&SB,&SC);
  101. //cout<<SA<<SB<<SC<<endl;
  102. for(int i = 1; i <= n; i++) {
  103. if(rng61()%(p+q)<p)
  104. st.PUSH(rng61()%m+1);
  105. else
  106. st.POP();
  107. ans^=1ll*i*st.MAX();
  108. }
  109. }
  110. void TestCase(int ti) {
  111. gen();
  112. printf("Case #%d: %llu\n",ti,ans);
  113. }

Codeforces - 102222A - Maximum Element In A Stack - 模拟的更多相关文章

  1. Codeforces 889C Maximum Element(DP + 计数)

    题目链接  Maximum Element 题意  现在有这一段求序列中最大值的程度片段: (假定序列是一个1-n的排列) int fast_max(int n, int a[]) { int ans ...

  2. Maximum Element In A Stack Gym - 102222A【思维+栈】

    2018-2019 ACM-ICPC, China Multi-Provincial Collegiate Programming Contest https://vjudge.net/problem ...

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

    //利用二维数组模拟 #include <iostream> #include <cstdio> #include <cstring> #include <s ...

  4. Codeforces 886E Maximum Element 组合数学 + dp

    我们定义dp[ i ]表示长度为 i 的序列, 最后没有一个==k的时候返回的方案数, 也就是最后强制返回 i 的方案数. 我们能得到dp方程   dp[ i ] = sum(dp[ i - j - ...

  5. [单调栈] 2018-2019 ACM-ICPC, China Multi-Provincial Collegiate Programming Contest-Maximum Element In A Stack

    题目:https://codeforces.com/gym/102222/problem/A Maximum Element In A Stack time limit per test 10.0 s ...

  6. 2018ACM-ICPC宁夏邀请赛 A-Maximum Element In A Stack(栈内最大值)

    Maximum Element In A Stack 20.91% 10000ms 262144K   As an ACM-ICPC newbie, Aishah is learning data s ...

  7. 【CodeForces】889 C. Maximum Element 排列组合+动态规划

    [题目]C. Maximum Element [题意]给定n和k,定义一个排列是好的当且仅当存在一个位置i,满足对于所有的j=[1,i-1]&&[i+1,i+k]有a[i]>a[ ...

  8. Codeforces 484B Maximum Value(高效+二分)

    题目链接:Codeforces 484B Maximum Value 题目大意:给定一个序列,找到连个数ai和aj,ai%aj尽量大,而且ai≥aj 解题思路:类似于素数筛选法的方式,每次枚举aj,然 ...

  9. 【CF886E】Maximum Element DP

    [CF886E]Maximum Element 题意:小P有一个1-n的序列,他想找到整个序列中最大值的出现位置,但是他觉得O(n)扫一遍太慢了,所以它采用了如下方法: 1.逐个遍历每个元素,如果这个 ...

随机推荐

  1. Python- 贪婪与非贪婪

    python运行匹配时,如果没有人为限定,默认是贪婪模式. import re a = 'python 22222java34bigdata' r = re.findall('[a-z]{3}',a) ...

  2. python--17个新手常见Python运行时错误

    当初学 Python 时,想要弄懂 Python 的错误信息的含义可能有点复杂.这里列出了常见的的一些让你程序 crash 的运行时错误. 1)忘记在 if , elif , else , for , ...

  3. python生成excel格式座位表

    脚本分两个文件: 1.生成二维随机列表:GenerateLocaltion.py 2.将列表导入excel文件:CreateExcel.py 先上GenerateLocaltion.py: impor ...

  4. leetcode 226. Invert Binary Tree(递归)

    Invert a binary tree. 4 / \ 2 7 / \ / \ 1 3 6 9 to 4 / \ 7 2 / \ / \ 9 6 3 1 Trivia:This problem was ...

  5. 在Windows下编译WebRTC

    前言 这篇文章的目的在于为你节省生命中宝贵的10小时(甚至更多),或者浪费你10分钟.作为Google更新频繁的大型跨平台基础库,WebRTC的编译一直被人称为噩梦.如果恰巧你偏要在Windows下编 ...

  6. [SHOI2017]期末考试

    题目描述 有n位同学,每位同学都参加了全部的m门课程的期末考试,都在焦急的等待成绩的公布. 第i位同学希望在第ti天或之前得知所有课程的成绩.如果在第ti天,有至少一门课程的成绩没有公布,他就会等待最 ...

  7. 【JVM】jvm垃圾回收器相关垃圾回收算法

    引用计数法[原理]--->引用计数器是经典的也是最古老的垃圾收集防范.--->实现原理:对于对象A,只要有任何一个对象引用A,则计数器加1.当引用失效时,计数器减1.只要对象A的计数器值为 ...

  8. 洛谷【P3612】[USACO17JAN]Secret Cow Code秘密奶牛码

    我对分治的理解:https://www.cnblogs.com/AKMer/p/9728574.html 题目传送门:https://www.luogu.org/problemnew/show/P36 ...

  9. 用遗传算法解决TSP问题

    浅谈遗传算法:https://www.cnblogs.com/AKMer/p/9479890.html Description \(小m\)在踏上寻找\(小o\)的路程之后不小心碰到了大魔王\(fat ...

  10. Poj 1338 Ugly Numbers(数学推导)

    一.题目大意 本题要求写出前1500个仅能被2,3,5整除的数. 二.题解 最初的想法是从1开始检验该数是否只能被2,3,5整除,方法是这样的,对于一个数,如果它能被2整除,就除以2,如果它能被3整除 ...