算法
污喵王z
这个作者很懒,什么都没留下…
展开
-
笔记:尺取法(最短子区间问题)
尺取法定义(基本概述)尺取法: 顾名思义,像尺子一样取一段,借用挑战书上面的话说,尺取法通常是对数组保存一对下标,即所选取的区间的左右端点,然后根据实际情况不断地推进区间左右端点以得出答案。尺取法比直接暴力枚举区间效率高很多,尤其是数据量大的时候,所以说尺取法是一种高效的枚举区间的方法,是一种技巧,一般用于求取有一定限制的区间个数或最短的区间等等。当然任何技巧都存在其不足的地方,有些情况下尺取法不可行,无法得出正确答案,所以要先判断是否可以使用尺取法再进行计算。使用尺取法时应清楚以下四点:1、 什么原创 2020-07-03 10:58:53 · 696 阅读 · 3 评论 -
「bitset」库下的便捷二进制转换
基本含义int n;// 将要转换为二进制的数string temp;// 承载二进制数据的字符串bitset<8> bit;// 将要转换的数据给bit赋值,数字n将会被自动转换为二进制存储在bitset集合中temp=bit.to_string(); // 将bitset里的数据转换为字符串形式传给temp相关代码#include<iosteam>#include<bitset>#include<cstring>using namespa原创 2020-07-02 15:18:16 · 253 阅读 · 0 评论 -
关于K倍区间问题的神仙做法所记的笔记
问题描述给定一个长度为N的数列,A1, A2, … AN,如果其中一段连续的子序列Ai, Ai+1, … Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍区间。 你能求出数列中总共有多少个K倍区间吗?输入格式 第一行包含两个整数N和K。(1 <= N, K <= 100000) 以下N行每行包含一个整数Ai。(1 <= Ai <=...原创 2020-03-02 12:24:57 · 232 阅读 · 0 评论 -
大数相乘的一些总结
##问题来源一个整数n的阶乘可以写成n!,它表示从1到n这n个整数的乘积。阶乘的增长速度非常快,例如,13!就已经比较大了,已经无法存放在一个整型变量中;而35!就更大了,它已经无法存放在一个浮点型变量中。因此,当n比较大时,去计算n!是非常困难的。##一段比较完善的代码int main(){ int n; cin>>n; int t;//进位 int m;//数组下标...原创 2020-02-06 16:24:09 · 327 阅读 · 0 评论