摘要:
如何实现memcpy? 如果从头实现memcpy,那么遇见src<dst的时候,并且有重叠的时候就嘎了。 #include <bits/stdc++.h> using namespace std; using LL = long long; const int N = 1e5 + 5; const 阅读全文
摘要:
c++ vector的内存优化方法。 a. 背景知识:vector的内存空间只能增大,不能减小。并且大小是2的幂次,数据连续排放。如果不够了会重新开一片连续的内存,将原来的拷贝过去。 b. 所有的内存空间只在析构的时候才会被释放。用swap函数是可以做到释放内存的。 c. vector采用的技术是预 阅读全文
摘要:
操作系统的中断和异常有什么区别? 中断是外部事件触发的,硬件设备发出的异步信号,用于向操作系统请求服务。中断事件发生时,会停止当前程序的运行,而转向中断处理程序的执行。在中断处理程序执行完成之后再回到原来的进程执行。 异常是cpu执行指令的时候遇到的错误和意外情况,是cpu内部的一种机制,所以异常是 阅读全文
摘要:
Dijkstra算法,堆优化版本复杂度是mlog(m)。适合于没有负权的图。 #include <bits/stdc++.h> using namespace std; using LL = long long; const int N = 1e5 + 5; const int INF = 0x3f 阅读全文
摘要:
一、01背包 for(int i=V;i>=c[i];--i){ dp[i]=max(dp[i], dp[i-c[i]]+w[i]) } hdu3466。这个题要考虑dp的无后效性质,简单来说,就是dp与物品排布有关的时候,我们应该选择最优的那一个。如果单独选择 i,j都没有问题的时候。如果先选i再 阅读全文
摘要:
一、题意:找到第k(k上限1e12)大的,不包括4并且能被7整除的数。 题解:二分+数位dp。 #include <iostream> #include <cstring> #include <algorithm> using namespace std; typedef long long LL; 阅读全文
摘要:
#include <bits/stdc++.h> using namespace std; using LL = long long; #define lson (nd<<1) #define rson (nd<<1|1) #define mid (l+r>>1) const int N = 1e5 阅读全文