我看到这样的一段代码: // // Created by admin on 2022/8/6. // #ifndef COROUTINE_PRINTER_H #define COROUTINE_PRINTER_H #endif //COROUTINE_PRINTER_H #pragma once #include <iostream> #include <utility> namespace std { template <class T,
1. 逻辑&时间复杂度分析 pop 和 initialize 的时间复杂度请参考: [DSAAinC++] maxHBLT的合并&初始化&时间复杂度分析 将数组初始化为一棵 max heap, 时间复杂度为 \(O(n)\). max heap 的 root 必然是所有 node 中最大的. 排序就是利用这个性质, 将 max heap 的 root 不断 pop 出
Slipper &ebsp; 题意: 我们知道有\(n\)个节点,有\(n - 1\)条边,所有的点形成了一棵树,每一个点到下一个点都有代价\(cc\),我们也有一个操作,可以将满足\(\left\vert depth_i - depth_j\right\vert = k\)的所有点联通,连起来的新的边的代价是\(c\),要我们求从出发点到目的地的最小代价是
C++中,如果进行二进制转换 #include<iostream> #include<bitset> using namespace std; #define unsigned int uint32_t void transferRadix(int n){ cout << "hex: " << std::hex << n << endl; cout << "dec: &q
今天在VSC上碰到该问题,记录解决问题过程。 一、如何解决头文件找不到? 问题:检测到 #include 错误。请更新 includePath。已为此翻译单元(/Users/wangjiaqi/02-workspace/1.cpp)禁用波形曲线。 更新gcc --> 需要安装homebrew <img src="https://user-images.githubusercontent.com
实践:二进制数据处理与封装 作者:哲思 时间:2022.8.4 邮箱:zhe__si@163.com GitHub:zhe-si (哲思) (github.com) 前言 最近在研究所做网络终端测试的项目,包括一些嵌入式和底层数据帧的封装调用。之前很少接触对二进制原始数据的处理与封装,所以在此进行整理。 以下例子主要以 c++ 语言
咕咕咕。 D. Color with Occurrences 题意 给定文本串\(t\),和\(n\)个模式串\(s_i\)。 初始时\(t\)的每个字符都是黑色的,如果\(t\)的某个子串和\(s_i\)相等,则可以通过一次染色将这个子串中的字符都染成红色。 一个模式串可以用多次,\(t\)中的一个字符可以被染色多次,红色的字符再次
std::weak_ptr weak_ptr源码链接 (与shared_ptr在同个.h文件) 定义于头文件 <memory> template< class T > class weak_ptr; (C++11 起) std::weak_ptr 是一种智能指针,它对被 std::shared_ptr 管理的对象存在非拥有性(“弱”)引用。在访问所引用的对象前必须先转换为 std::shared_p
这个项目已发布在github上:https://github.com/zenitsh/glbox2d 因此以后不会贴大段代码。 6.创建Object类 Unity使用了GameObject存储游戏对象,Godot Engine使用了Node,因此我们也需要一个游戏对象类。这个过程中也踩了不少坑,大多数是C++的坑。 上次说b2Body可以直接使用,但是实际上
#include <bits/stdc++.h> #define debug(x) std::cerr << "Line: " << __LINE__ << \ "," << #x << "=" << x << "\n" using ll = long long; constexpr in
物品 题意 有 \(2m+1\) 种物品,重量分别为 \(-m,-m+1,\ldots, m-1,m\)。重量为 \(i\) 的物品有 \(a_i\) 个。 你需要拿走若干物品,使得这些物品重量之和恰好为 \(l\)。在此基础上,你需要拿尽可能多的物品。 问在物品重量之和恰好为 \(l\) 的基础上,你最多能拿多少物品。 题解 先贪心的
水晶 题意 给定长度为 \(n\) 的序列 \(\{m_n\}\) ,求满足条件的 \(\{a_n\}\) 的个数,条件是 \(\forall i\),\(0\le a_i\le m_i\)。 \(\oplus_{i = 1} ^ n a_i = 0\)。 答案对于 \(998244353\) 取模。 数据范围 \(0\le m_i<2 ^ {32}, 1\le n\le 2\times 10^{5}\)。 题意 本来的想法
hello,大家好,我是你们的新朋友,你们可以叫我小潘~ 或许大家是第一次见到我,也有可能是其他平台过来的,我都要给大家作个自我介绍:我是来自河北石家庄的一名新初一学生。我热爱编程技术,擅长Python、C++和命令行(Windows批处理),目标是信息学竞赛。 我的同学们都说我很幽默,甚至有人说我“不
// thread_pool.h #pragma once #include <vector> #include <deque> #include <thread> #include <functional> #include <condition_variable> class ThreadPool { using Task = std::function<void()>; using TaskList = std
比赛链接 A 题解 知识点:贪心。 将区间按左端点排序,合并区间,记录所有区间之间断开的长度即可。 时间复杂度 O(nlogn)O(nlogn) 空间复杂度 O(n)O(n) 代码 #include <bits/stdc++.h> #define ll long long using namespace std; struct n
这题要推一下式子,注意涉及到取模的式子都要尽量展成减去下取整的形式。 注意,这里求和符号是求到n,因此分块里面 l 的范围就是l<=n,然后对于n大于k的情况需要特判一下。 1 #include "bits/stdc++.h" 2 using namespace std; 3 typedef long long LL; 4 LL n,k; 5 int m
多项式乘法 #include<bits/stdc++.h> using namespace std; const int N=(1<<18),P=998244353,G[2]={3,(P+1)/3}; int rv[N],gp[2][N],iv[N]; inline int fpw(int a,int x){ int s=1; for(;x;x>>=1,a=1ll*a*a%P) if(x&1) s=1ll*s*a%P; return s;
class RtcpHeader { public: #if __BYTE_ORDER == __BIG_ENDIAN //版本号,固定为2 uint32_t version: 2; //padding,固定为0 uint32_t padding: 1; //reception report count uint32_t report_count: 5; #else //reception report count
语法:构造函数():属性1(值1),属性2(值2),…{} #include<iostream> using namespace std; class WLM { public: WLM(int a,int b,int c):m_a(a),m_b(b),m_c(c) { } int m_a; int m_b; int m_c; }; void test() { WLM zjy(10,20,30); cout <<
#include <QCoreApplication> #include <chrono> #include <thread> #include <memory> #include <openssl/ssl.h> struct SSL_CTX_Deleter { void operator()(SSL_CTX* object) { SSL_CTX_free(object); } }; struct SSL_Deleter {
目录简介捕获原理Lambda回调参考 简介 Lambda 表达式(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包(注意和数学传统意义上的不同)。 闭包就是能够
unordered_map<int,int>a; unordered_map<int ,int>::iterator it; it=a.find(8); if(it==a.end())chu("no"); find找的是前面的键值 unordered_map<int,int>mymap; for ( auto it = mymap.begin(); it != mymap.end(); ++it ) std::cout <
P1090 合并果子 题目描述 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。 每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过 \(n-1\) 次合并之后, 就只剩下一堆了
方法一、 clock_t start = clock(); ifstream fin(objpath,std::ios::binary); vector<char> buf(fin.seekg(0,std::ios::end).tellg()); fin.seekg(0,std::ios::beg).read(&buf[0],static_cast<std::streamsize>(buf.size())); fin.close(); clock_t end = cl
判断两个类型的关系 #include <iostream> #include <type_traits> using std::cout; using std::endl; // is_same is used to judge two data types same or not during compiling void test_is_same() { cout << "test is_same:" << endl;