首页 > 其他分享 >OI Tricks

OI Tricks

时间:2023-09-28 17:45:52浏览次数:59  
标签:bar OI Tricks mid LONG seed

记录一些见到的感觉很有用的 tricks。

  • 平均值

对于和的平均值(形式化地,\(\bar a = \dfrac{\sum_{i = 1} ^ n a_i}{n}\)),可以转化成 \(a_i - \bar a\) 然后和 \(0\) 乱搞。

  • 异或哈希
    就是 xor hash,可以在 CF 上找到详细教程:Link

    主要用于只关心元素集而不关心顺序的时候。(可能吧?毕竟理解还不是很深。)

    推荐生成随机数的写法:

    unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();
    mt19937 myrand(seed);
    uniform_int_distribution<long long> dist(0, LONG_LONG_MAX);
    
    • solution
  • 中位数

    二分中位数 \(mid\),然后把 \(\geq mid\) 的与 \(< mid\) 的重新赋值,再做操作。

  • 回退背包

标签:bar,OI,Tricks,mid,LONG,seed
From: https://www.cnblogs.com/liuzimingc/p/tricks.html

相关文章

  • OI Tricks
    记录一些见到的感觉很有用的tricks。平均值对于和的平均值(形式化地,\(\bara=\dfrac{\sum_{i=1}^na_i}{n}\)),可以转化成\(a_i-\bara\)然后和\(0\)乱搞。异或哈希就是xorhash,可以在CF上找到详细教程:Link。主要用于只关心元素集而不关心顺序的时候。(可能......
  • 解决adb connect 连接Android设备报错:由于目标计算机积极拒绝,无法连接
    1.手机打开开发者模式,然后打开USB调试2.使用USB数据线连接手机和电脑3.在PC端打开cmd命令窗口,输入adbdevices,可以看到已经连接的设备4.输入adbtcpip8888(设置端口号为8888)5.断开手机和电脑的连接adbconnectIP ......
  • Solution -「JOISC 2020」建筑装饰 4
      朴素的DP形式是定义\(f_{i,j,A/B}\)表示前\(i\)个元素选择了\(j\)个\(A\)的可达性.\(\mathcalO(n^2)\).交换状态与值域,定义\(f_{i,A/B,A/B}\)表示前\(i\)个元素中的最后一个元素(即\(i\))选择了\(A/B\),在最大化\(A/B\)的数量的目标下求得的\(......
  • 【Android 开发】 面试官喜欢一直问到底?教你如何避免翻车沟通表达能力
    在信息爆炸的时代,Android开发领域的知识日新月异,如何提升自己的能力和找到适合自己的学习资源是一个常见的问题。自我介绍是面试的必备环节之一时长通常在三分钟以内。在自我介绍时,候选人应该简明扼要地介绍自己的经历和能力,突出自己的优势和特点,以及为什么适合这个职位。基础知识......
  • C语言中的void*是什么?
    (目录)1.void*是什么我们之前学过许多类型的指针变量,如整形指针,字符指针,甚至数组指针,函数指针等。inta=10;int*pa=&a;//整形指针pa接受一个整形变量a的地址但是一个指针只能接受一个同类型变量的地址,如pa只能接受a的地址如果用一个整形指针变量接受一个float类型的地......
  • 题解 [HEOI2016/TJOI2016] 排序
    题目链接看到这道题按照套路首先想到二分答案(即二分\(q\)位置上的数,记作\(mid\))。再按照套路将大于\(mid\)的数字设为\(1\),将等于\(mid\)的数设为\(2\),小于\(mid\)的数字设为\(0\)。那么对于区间\([l,r,0]\)操作,应该先讲\(0,1,2\)的数量找出来,然后按照从小到大......
  • Git/TortoiseGit冲突:commit your changes or stash them before you can merge[解决之
    最近在pull代码时,遇到了‘commityourchangesorstashthembeforeyoucanmerge’的提示,针对此问题,我查阅了大量的资料,得到了解决办法,给大家分享下问题:在你mergeorchangemaster前,提交你的改变,或者存储改变。问题原因:上次commit后,代码发生了新的变化,如果merge或者change......
  • P2602 [ZJOI2010] 数字计数&HDU 2089 (数位dp)
    luoguHDU最近在复习数位dp数位dp,就是在一些计数问题的时候按照一位一位的顺序依次计算,通常可以采用记忆化搜索的方式这两道题就是很典型的数位dp数位dp通常要记录是不是顶着上限,有没有前导零,到了哪一位以及一些特殊的条件要求。数位dp通常要把某个区间的问题转变成两个区间......
  • SequoiaDB分布式数据库2023.9月刊
    本月看点速览行业领先!巨杉数据库再度入选Gartner报告再获认可!巨杉数据库蝉联2023「Cloud100China」榜单成果斐然,巨杉数据库获评广东省信息技术应用创新优秀产品和解决方案创新发展,巨杉数据库入选2023信创企业排行榜行业领先!巨杉数据库再度入选Gartner报告  ......
  • Android Activity setContentView流程解析
    ActivitysetContentView流程解析参考图解:自主生码.jpg1.当MainActivity直接继承自Activity时此时会执行Activity类的setContentView方法:publicvoidsetContentView(@LayoutResintlayoutResID){getWindow().setContentView(layoutResID);initWindowDecorActi......