首页 > TAG信息列表 > Inline
2022.9.7 Noip 模拟
Noip 模拟 目录Noip 模拟\(\to \text{比赛 link} \leftarrow\)\(\to \text{题面+题解 link} \leftarrow\)报数随机单调栈后缀数组 \(\to \text{比赛 link} \leftarrow\) \(\to \text{题面+题解 link} \leftarrow\) 报数 线性筛+前缀和 #include<bits/stdc++.h> using namespace st各种实用模板或指令
1. 指令 - 网络编译 #ifndef ONLINE_JUDGE freopen... #endif 2. 优化模板 - cin优化 std::ios::sync_with_stdio(false); - 编译优化(火车头) 点击查看代码 # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Wattributes" # pragma GCC diagnosticC++ 内联和嵌套命名空间
目录命名空间的作用内联命名空间 inline namespace(C++11)内联命名空间有什么用?嵌套命名空间的简洁用法(C++17)嵌套定义内联命名空间(C++20)参考资料 命名空间的作用 开发大型软件通常需要许多开发人员并使用很多第三方库,为了防止函数和类型命名冲突,因此引入命名空间。 在使用函数和类【luogu CF633H】Fibonacci-ish II(莫队)(线段树)(矩阵乘法)
Fibonacci-ish II 题目链接:luogu CF633H 题目大意 给你一个序列,每次问你一个区间,把里面的数拿出来去重排序,第 i 个位置乘上斐波那契数列第 i 项之后所有数的和。 思路 这题卡常。 (而且好像能暴力优化草过去但是写的是标算) 首先看着数据范围会主观思考 \(\sqrt{n}\) 有关的,思考完卡常小技巧
那些也许有用的卡常小技巧 作者卡Ynoi卡吐了 一,代码优化 1.inline 其实还是有点用的。 不带inline: 带inline: 2.register 注意有些不能加,但优化程度还是很大的。 不带register: 带register: 3.i++ $ \Rightarrow $ ++i 但是优化很小,如果只差一点可以加上后多跑几遍,增大卡过的CF375E Red and Black Tree
题目传送门 Solution 非常神奇的一道题。 我们不考虑交换操作,相反,我们去考虑把多少个 \(0\) 的位置变为 \(1\),同时我们记录选了多少个黑点,如果跟原来黑点数量相同即是合法。 此时我们可以发现一个神奇的性质对于 \(u\) 的儿子 \(v\),如果覆盖 \(u\) 的节点不覆盖 \(v\),那么覆盖 \(vC20220725T2 运动
给定序列 \(s\) ,求满足 \(max\{s_{i,j}\}-min\{s_{i,j}\}\leq k\) 的最大长度 \(j-i\) 。 \(n\leq 3\times10^6\) 。(时限3s) 没想到 \(O(n\,log\,n)\) 没有被卡掉。首先判断区间的最大最小值可以用单调队列 \(O(n)\) 求出,然后就二分就好了,跑的飞快。 然后是 \(O(n)\) 的正解,其实C20220725T3 回文
给定字符串 \(s\) ,求 \(s_{l,r}\) 中回文串个数。多组询问, \(|s|\leq 5000\) , \(T\leq10^5\) 。 首先介绍 \(O(n\times T)\) 的离谱做法(竟然没卡掉),先跑 \(Manachar\) ,然后暴力查询 \([l,r]\) 的回文串数量,最后用一个数组记录下来(防1 5000数据)即可。 然后是正解,首先处理出 \(g[i]C++ inline
1.inline可以免除函数调用时的保存上下文时的一些开销,其本质就是对此函数的每一个调用都以函数本体替换之。 inline的坏处:若在一台内存有限的机器上,过度热衷inlining会造成程序体积太大,即使拥有虚拟内存,inline造成的代码膨胀也会导致额外的换页行为,降低指令高速缓存装置的集中【C++】实现D3D9 的 Inline hook
【C++】实现D3D9 的 Inline hook 简单介绍一下HOOK原理: 函数调用的过程大致是 先push 参数 进去,再执行 call 函数地址 ,进入函数。此时将所调用的函数的前五个字节修改,将开头改成 jmp xxxxxxxx(地址偏移) ,则可以进入自己的函数,执行自己函数的内容,执行完自己的函数后,还原【模板】树状数组
【模板】树状数组 一维树状数组 #define lowbit(x) ((x) & (-x)) const int maxN = 1e6 + 10; typedef long long ll; struct BIT { ll data[maxN << 2]; inline void add(int k, int x) { while (k <= N) { data[k] += x; k += lFlex 布局 display:flex 与 inline-flex 区别
1.Flex布局 display:flex .bigbox{ width: 500px; height: 400px; background:#ff0000; display: flex; } .smallbox{ width: 100px; height: 100px; background: #f5f5f5; margin: 10px; } <span>flex</span> <div class="CF #526 部分题解
传送门 CF1083C Max Mex 求一条 \(\text{mex}\) 值最大的路径,相当于求一个最大的前缀 \(0,1,2,\cdots,k\) 使得点权为 \(0,1,\cdots,k\) 的点都可以被包含在同一条链中。 考虑使用线段树维护,第 \(i\) 个位置存树上点权为 \(i\) 的点的编号,如果我们能对每个区间求出其是否构成链以03.内联函数(了解)
1.宏函数的缺陷 #define ADD(x,y) x+y //在普通函数前面加上inline是向编译器申请成为内联函数 //注意:加inline可能成为内联函数,可能不成为内联函数 inline int Add(int x, int y) { return x + y; } void test() { //10+20*2 int ref = ADD(10, 20) * 2; cout << "ref=" <<BIT学习笔记
基础树状数组: 先放一张图: 图中黑色的框为 \(a\) 数组(原数组)。 图中黑色的框为 \(t\) 数组(树状数组)。 我们可以得到 $t[i]= \sum_{j=1}^{j \le 2k}{a[i-2k+j]} $。 在这里,\(k\) 为 \(i\) 的二进制中从最低位到高位连续零的长度。 那我们要如何求这个 \(k\) 呢? 我们需要用到一个东Qt开发经验小技巧236-240
关于在头文件中定义函数使用static关键字的血的教训。 有时候我们需要将一些常用函数写在一个文件中供很多地方调用,如果写的是 int doxxx{} 这种,在你多个地方引用的时候,肯定会编译报错提示 “重复定义” 的错误。 此时你需要在函数前面加上static关键字,变成 static int doxxx{}【C++】构造函数
函数若是在class body内定义完成,就会自动成为inline候选人 inline只是给编译器一个提示,最终一个函数是否真正被inline,编译器会做最后的决定 构造函数特殊且独有的一种赋初值的写法,以冒号的形式,直接将构造函数的实参赋值给类的成员变量 一个成员变量赋值的过程有两个阶段:1.初始化赋LGP5203题解
这个去重给写麻了。。。。。。 显然对于两条非树边,其只能组成最多一条回路。构造方式是将两条非树边在树上的路径中重复的部分去掉,再加上两条非树边即可。 于是考虑如何统计重合的路径。 考虑将一条链拆成两条从祖先到孙子的链。统计这些链相交的情况。 可以注意到只有一个情况会2022HDU-Multi-University Training AC/DC
题目链接:https://acm.hdu.edu.cn/showproblem.php?pid=7192 LCT维护一下fail树形态,询问时把删除部分和没有被删除的部分交线附近暴力匹配一下。 #include<bits/stdc++.h> #define N 400009 using namespace std; typedef long long ll; char s[N],s1[N]; int n,q; int ch[N][26],sCodeforces Gym102538(300iq contest 3)A. Airplane Cliques
给定一棵 \(n\) 个节点的树。定义树上两点距离为它们之间边的数量。 称一对节点是友好的,当且仅当两点之间距离小于等于 \(x\)。 称一个 \(k\) 个节点的集合是友好集合,当且仅当集合中任意两个节点都是友好的。 请对所有 \(k=1\ldots n\),求出恰有 \(k\) 个节点的友好集合数量。 \(1220803 总结
220803 总结 总之就是挂大分 顺序开题 T1 解方程:意料之中,没想到可以边读入边取模。 T2 三角形:明明暴力能拿 \(40\) 分,非要人类智慧乱搞,痛失 \(20\) 分 T3 游戏(屠龙勇士):屠龙勇士反被龙屠考场上推出来式子了但是忘了 \(x\) 前面有系数该怎么解于是去打暴力,盯着 \(p=1\) 的 \(30\) 分Fhq-Treap 模板
namespace Fhq_Treap { int ch[N][3], siz[N], val[N], cnt, rnd[N]; inline void update(int x); inline int newnode(int x); inline int Kth(int now, int k); inline void split(int now, int k, int &x, int &y); inline int merge(int A, int B); inline voiHard Life
link 最大密度子图的板子,虽然感觉这种一辈子只见得到一回的题目应该不存在啥模板的说法(没有应用的板子是没有灵魂哒)。 首先那个分数的柿子让人想到了01分数规划,然后套那玩意的板子。在check的过程中遇到经典问题:边有正权,点有负权,选择权值最大的子图。还是那样,把边抽象成点直接跑最Osmosmjerka
link 出题人是卡常狗。靠。 首先题目中的方向是八方向,即包括右上右下左上左下(不然发现样例一过不去),由于需要判断字符串是否相等,想到使用哈希来加速这一过程。但是呢要求的字符串长度又很长,长宽不等导致无法利用循环的性质来砍掉无用部分(事实上我连这部分都没写出来,呜呜呜)。正解是模拟赛-水晶
水晶 题意 给定长度为 \(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}\)。 题意 本来的想法