• 2024-07-05算法学习笔记(24):卡常小技巧
    卡常学习来源->https://platelet.top/hpc/oldst表访问连续性就不说了,考虑计算log2。预处理比31^builtin__clz(x)慢,而且慢很多。setinsert(pos,x)如果\(pos\)是\(x\)在set中正确的位置,那么insert是\(O(1)\)的。erase(it)是\(O(1)\)的。prev(it)
  • 2024-07-02C++ STL 优先队列 (priority_queue)
    std::priority_queue<queue>优先队列  1、第一个元素始终为最大元素。  2、有着类似于堆的特性,它可以在其中随时插入元素。  3、支持下标访问(随机访问迭代器)优先队列内部的实现需要依赖基础容器,该容器应可通过随机访问迭代器访问,并需要支持以下操作empty()si
  • 2024-06-05GCD-sequence(Round 950)
    #include<bits/stdc++.h>#defineendl'\n'usingll=longlong;typedefunsignedlonglongull;usingnamespacestd;voidGordenGhost();signedmain(){#ifdefGordenfreopen("in.txt","rt",stdin);freopen
  • 2024-06-03C++的vector使用优化
    我们在上一章说了如何使用这个vector动态数组,这章我们说说如何更好的使用它以及它是如何工作的。当你创建一个vector,然后使用push_back添加元素,当当前的vector的内存不够时,会从内存中的旧位置复制到内存中的新位置,然后删除删除旧位置的内存,也就是说当我push_back,vector容量不够
  • 2024-05-30QOJ 6537 One, Two, Three
    令原题中的\(1,2,3\)分别对应\(0,1,2\)。一种贪心想法就是直接记录\(0,2,01,21,012/210\)的个数然后直接配对。但是考虑到如果当前的\(1\)前面既有\(0\)也有\(2\),后面不管是\(0\)还是\(2\)都能配对。但是按照先前的策略肯定会成为\(01\)或\(21\),这
  • 2024-05-26Effective ModernC++条款42:考虑使用置入代替插入
    更多C++学习笔记,关注wx公众号:cpp读书笔记Item42:Consideremplacementinsteadofinsertion如果你拥有一个容器,例如放着std::string,那么当你通过插入(insertion)函数(例如insert,push_front,push_back,或者对于std::forward_list来说是insert_after)添加新元素时,你传入的元
  • 2024-05-12cfRounddiv3--CDEF题解
    C-AssemblyviaRemainders思路:因为xi最大只有500,而构造的ai最大可以到1e9,直接从501开始构造即可。voidsolve(){//C简单构造intn;cin>>n;vector<int>vct;vct.emplace_back(501);for(inti=2;i<=n;i++){intx;cin>>x;vc
  • 2024-04-23分层图练习
    P4568[JLOI2011]飞行路线-洛谷|计算机科学教育新生态(luogu.com.cn)//////////////////////////////////////////////////////法一:分层图intn,m,k;ints,t;constintinf=0x3f3f3f3f;vector<pair<int,int>>vct[10004*12];//开多层,一定要开大点!!10004*11都是RE的p
  • 2024-04-08P1002 [NOIP2002 普及组] 过河卒
    题意:卒子过河,有个马,问安全到达终点的路径有多少条。起点在0,0。每一步可以往右或者往下。思路:处理出马的看守点,然后暴力。。看了一下暴力会TLE。400^2.直接dp转移即可。总结:不知道这个还要开longlong,哎。!voidsolve(){pair<int,int>destination;vector<pair<int
  • 2024-04-06CF1149D Abandoning Roads 题解
    Description一张\(n\)个点\(m\)条边的无向图,只有\(a,b\)两种边权(\(a<b\)),对于每个\(i\),求图中所有的最小生成树中,从\(1\)到\(i\)距离的最小值。\(2\leqn\leq70,n-1\leqm\leq200,1\leqa<b\leq10^7\)。Solution先考虑一个最小生成树是什么样的形态,显然保留边权
  • 2024-03-29Taskflow 简单使用
    HelloWorld#include<taskflow/taskflow.hpp>intmain(){tf::Executorexecutor;tf::Taskflowtaskflow;//返回一个std::tuple<tf::Task,tf::Task,tf::Task,tf::Task>auto[A,B,C,D]=taskflow.emplace([](){std::cout&l
  • 2024-03-28C++_基础内容复习-跟着代码学
    二进制文件读写ios_base::out 以写入方式打开文件。ios_base::binary 以二进制模式打开文件std::ofstreamofs(FILE_PATH,ios_base::app);//以追加的形式打开文件//写入学生数量intnumStudents=students.size();ofs.write(reinterpret_cast<constcha
  • 2024-03-17C. Ehab and Path-etic MEXs
    原题链接题解1.任意两条边在且仅在一条链上2.一定存在一条链使得其包含边权为0,1的边,这个时候我们要让2不在01所在的链上,即如下情况:此时01所在链答案为2,02所在链答案为一3.如果树退化成了链,那么不管怎么构造都一样由此得出,找出这样的T型节点,即含有三条边的节点,然后在它上
  • 2024-03-15G. Rudolf and Subway
    原题链接题解太巧妙了!!原题等效于该分层图,然后广搜本题中我用了另一种方法建边,因为清空太麻烦了code#include<bits/stdc++.h>usingnamespacestd;intmain(){ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);intt;cin>>t;while(t--)
  • 2024-03-06emplace_back()
     template< class... Args >void emplace_back( Args&&... args ); (C++11起)(C++17前)template< class... Args >referenceemplace_back( Args&&... args ); (C++17起)(C++20前)template< class... Args >constexpr refer
  • 2024-02-09一些在OI中实用的语法
    前言发电写的。以及代码不一定能过编译,重在表达意思。如果你觉得有问题,那您可以私信告诉我,有空我会看的。毕竟初三半退役了。讲一点(几个,因为那个真的的很全)这个里面没有的东西。考场上能够用的结构化绑定其实能用,只是会warning而已,不会CE。我模拟赛的时候经常用。GCC9早
  • 2024-01-20GYM102596L Yosupo's Algorithm【分治,支配对】
    给定平面上\(2n\)个点,每个点有坐标\((x_i,y_i)\),权值\(w_i\)及颜色\(c_i\)。所有点满足:若\(c_i=0\),则\(x_i<0\);若\(c_i=1\),则\(x_i>0\)。\(q\)次查询,每次给定\(L_i,R_i\),你需要选择两个点\(i,j\)满足如下条件:\(c_i=0,c_j=1\)。\(x_i<L,x_j>R\)或\(x_
  • 2023-12-15THUPC 2023 决赛 百合
    洛谷传送门LOJ传送门QOJ传送门复读官方题解。考虑除了原图的\(2^k\)个点,再建一些辅助点,\((u,i,j)\)表示前\(i\)位中修改了\(j\)位得到\(u\)。那么除了原图的\(m\)条边,我们还有下面这些边:\(u\xrightarrow{0}(u,0,0)\);\(\foralli<k,(u,i,j)\xrighta
  • 2023-12-04C++_线程池代码看C++类-模板-标准库
    C++线程池线程池的组成部分:线程池管理器(ThreadPoolManager):用于创建并管理线程池工作线程(WorkThread):线程池中线程任务接口(Task):每个任务必须实现的接口,以供工作线程调度任务的执行。任务队列:用于存放没有处理的任务。提供一种缓冲机制。 通过新
  • 2023-11-14P9847 [ICPC2021 Nanjing R] Crystalfly
    P9847[ICPC2021NanjingR]Crystalfly你说得对,但是刻晴更可爱捏翻译给定一个\(n(1\len\le10^5)\)个节点的树,每个节点上有\(a_i\)只晶蝶。派蒙最初在\(1\)号节点,并获得\(1\)号节点的所有晶蝶,接下来每一秒她可以移动到相邻的节点上并获得节点上的所有晶蝶,但是当她每到
  • 2023-11-09一个计数题
    我也不知道在哪里见的题qwqdescription给定\(n,k\),定义一个满二叉树(每个非叶子节点都有两个儿子的二叉树)权值为其每条从根出发的链经过的向左的边的数量的最大值。对于每个\(i\in[1,n]\)求出\(i\)个恰有叶子的权值不超过\(k\)的满二叉树的数量。\(n,k\leq5000\)sol
  • 2023-10-30C++多线程——线程池
    线程池ThreadPool线程池简单来说就是用来管理多个线程的,以避免频繁开辟或销毁线程的情况。以下是创建和使用线程池的基本步骤:创建一个任务队列,用于存储待执行的任务。创建一组线程,这些线程会从任务队列中获取任务并执行它们。将任务提交到任务队列中,由线程池的线程
  • 2023-09-27JOISC 2020
    ビルの飾り付け4/Building4令\(f_{i,0/1,j}\)表示到第\(i\)位,第\(i\)位选的是\(A_i/B_i\),\(1\simi\)选了\(j\)个\(A_i\)是否合法。可以发现,对于一个\(f_{i,0/1,j}\),合法的\(j\)一定是一段区间,那么就完了。#include<iostream>#include<cstdio>#include<c
  • 2023-09-12vector的入队
     这样会使用复制构造函数6次;push_back()是往后推,会复制一份structVectex{ floatx,y,z; Vectex(floatx,floaty,floatz) :x(x),y(y),z(z) {} Vectex(constVectex&Vectex) :x(Vectex.x),y(Vectex.y),z(Vectex.z) { std::cout<<"Copied!"<<std::endl
  • 2023-09-03三(四)元环
    模拟赛考了这个东西,被创死了其实总结下来就一个东西,如果我们给边定向,让度数小的向度数大的连,那所有点的出度不会超过\(\sqrt{m}\)根号分治,如果本身的度数小于\(\sqrt{m}\),则明显合法,若大于了,则最多只有\(\sqrt{m}\)个点的度数大于了当前点一个三元环可以被拆成\(A\rightarrow