• 洛谷9月月赛II 赛后瞎写


    看错比赛时间了....结果发现的时候已经开始了半个小时,并且当时正准备睡午觉qwq 于是就水了个t1就 去睡 跑了

    T2

    写着写着然后看了一发评讲被辣鸡思路给绕了进去最后发现自己宛若一个智障

    类似桶的思想 直接用map映射一下向左倒和向右倒的杆子数量,若重合数为i, ans+=i*(i-1)/2;

    就没了....

    (去你的分类讨论

    学了一波map的操作

      建立:std:map<int,int> mmp;

      赋值:mmp[i]=val;

      遍历:for(map<int,int>::iterator i=mmp.begin();i!=mmp.end;i++)

      查找:(1) 取key:i->first (2)取value:i->second

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 #include<cmath>
     6 #include<map>
     7 using namespace std;
     8 long long n,m,ans;
     9 std::map<long long,long long> mmp;
    10 int main()
    11 {
    12     scanf("%lld%lld",&n,&m);
    13     for(long long i=1;i<=n;i++)
    14     {
    15         long long k;
    16         scanf("%lld",&k);
    17         mmp[k+i]++;
    18         mmp[i-k]++;
    19     }
    20     for(map<long long,long long>::iterator i=mmp.begin();i!=mmp.end();i++)
    21         ans+=i->second*(i->second-1)/2;
    22     printf("%lld",ans);
    23     return 0;
    24 }
    View Code

     T4

    那就先口胡一个了

    恕我直言,这道题真的也太暴力了吧

    维护A C之间的关系,我们用一个单调栈维护A的前缀最大值 每次修改的时候直接把比修改值小的后面一部分删掉,并加入这个值 可以找个数据结构来维护

    维护B C之间的关系,用一个二维的数据结构 一维维护乘积 一维维护数量 每次暴力修改????

    为防止乘积有零 维护一个二元组{a,b},这个数就表示为a*0^b

    做乘法就是a1*a2,b1+b2;做除法就是a1/a2, b1-b2

    然然然后就没了??????

    智熄

  • 相关阅读:
    【C#进阶系列】29 混合线程同步构造
    【C#进阶系列】28 基元线程同步构造
    【C#进阶系列】27 I/O限制的异步操作
    【C#进阶系列】26 计算限制的异步操作
    快速幂算法
    纪中……结束了……
    洛谷P4526 【模板】自适应辛普森法2
    洛谷P4525 【模板】自适应辛普森法1与2
    洛谷P1056 排座椅
    纪中23日c组T2 2159. 【2017.7.11普及】max 洛谷P1249 最大乘积
  • 原文地址:https://www.cnblogs.com/kylara/p/9694034.html
Copyright © 2020-2023  润新知