当前位置: 首页 > news >正文

算法竞赛实用板子

一、声明

        自用版参考acwing,致力于实用、好用,板子中有个人理解,持续更新。

二、开板


        1.快排

void quick_sort(int q[],int l,int r)
{if(l>=r)return;              //出口int i=l-1,j=r+1,x=q[l+r>>1]; //分治方法while(i<j){do i++;while(q[i]<x);do j--;while(q[j]>x);if(i<j)swap(q[i],q[j]);}quick_sort(q,l,j);           //递归实现   quick_sort(q,j+1,r);
}

        2.差分

for(int i=1;i<=n;i++)b[i] = a[i] - a[i - 1];   //区别于前缀和/*  1 2 3  -->  1 1 1  */ b[l] += c;     b[r + 1] -= c;

         3.二分

int bin(int l, int r)
{while (l < r){int mid = l + r + 1 >> 1;     //注意两种形式,下-1 上+1  if (check(mid)) l = mid;                       else r = mid - 1;             //             下+1 上}                                 return l;                         //             return any
}

         4.分数取模(快速幂)

        主函数中(可实现 求解 (a / b) % M  ):

ll ans = a * ksm(b, M - 2) % M;

        定义快速幂函数: 

ll ksm(ll a, ll b){ll res = 1;while(b) {if(b & 1)                    // 如果当前b的二进制数字为1,即存在res = res * a % M;       // 结果乘上当前aa = a * a % M;               // 下一位的a的值(开平方)b >>= 1;                     // b的下一位二进制数}return res;
}

 具体原理讲解可参考:C++分数取模【固定模板+讲解】


to be continued !

http://www.lryc.cn/news/307464.html

相关文章:

  • RPA中国 x UiPath | 第六届RPA极客挑战赛,3月16日上海开赛!
  • 算法打卡day5|哈希表篇01|Leetcode 242.有效的字母异位词 、19.删除链表的倒数第N个节点、202. 快乐数、1. 两数之和
  • 『python爬虫』xpath变化导致无法找到指定元素(持续更新中~)
  • 人大金仓数据库Kingbase服务SQL基础操作手册
  • 赎金信00
  • 如何运行github上的项目
  • 机器学习-02-机器学习算法分类以及在各行各业的应用
  • Java项目学习
  • npm run dev和npm run serve两个命令的区别
  • ui设计:利用即使设计设计出漂亮样式
  • [unity]lua热更新——个人复习笔记【侵删/有不足之处欢迎斧正】
  • Springboot日常总结-@RestController和@Controller的区别
  • MongoDB之客户端工具与核心概念及基本类型篇
  • Essential C++ 编程基础
  • 07 Qt自绘组件:图片预览小组件ImageViewer
  • Groovy(第九节) Groovy 之单元测试
  • gprMax3.0随机介质建模
  • 自动驾驶---行业发展及就业环境杂谈
  • Matlab 矩阵基础
  • TikTok矩阵系统的功能展示:深入解析与源代码分享!
  • Gradio Dataframe sort 问题
  • 【机器学习300问】24、模型评估的常见方法有哪些?
  • ArcgisForJS如何将ArcGIS Server发布的点要素渲染为热力图?
  • 第 2 章 微信小程序的构成 (代码导读)断更,后续继续更新
  • 十一、Qt自定义Widget组件、静态库与动态库
  • 八、ChatGPT能替代什么人?
  • QT C++实现点击按键弹出窗口并显示图片/视频|多窗口应用程序的设计和开发
  • shell和go实现:防火墙放行所有端口,唯独拦截80端口
  • QT信号槽实现分析
  • 【pytorch】tensor.detach()和tensor.data的区别