iOS

C++11标准库 原子变量 <atomic> 梳理

目录<atomic>原子操作的概念CAS实现原理CAS操作的伪代码:使用CAS完成变量的原子操作:CAS 操作的保证lock和锁的概念atomic模板类构造函数公共成员函数:atomic与互斥锁的效率比对 <atomic> C++11提供了一个原子类型std::atomic,通过这个原子类型管理的内部变量就可以称之为原子变量. 原子类型只支持bool、char、int、lo

前缀函数及 Knuth–Morris–Pratt 算法学习笔记

(text{1 引言 Preface}) 对于形如以下的问题: 给予一个模式串 (T) 和主串 (S),在主串中寻找 (T)。 我们称之为字符串匹配。 很显然朴素算法时间复杂度是 (O(n^2)) 的: 枚举字符串起点,向后逐位比较。 所以需要对其进行优化,一般使用 (text{hash}) 或者 (text{Knuth–Morris–Pratt})(下文简称为 (text{KMP}))算

Day 8 - 并查集、堆、set 与 map

并查集 引入 并查集是一种用于管理元素所属集合的数据结构,实现为一个森林,其中每棵树表示一个集合,树中的节点表示对应集合中的元素。 顾名思义,并查集支持两种操作: 合并((text{Union})):合并两个元素所属集合(合并对应的树) 查询((text{Find})):查询某个元素所属集合(查询对应的树的根节点),这可以用于判断两个元素是否属于同一集合 并查集在经过修改后可以支持单个元素的

codeforces 1980 E. Permutation of Rows and Columns

题目链接 https://codeforces.com/problemset/problem/1980/E 题意 共输入(T)组测试用例,每组测试用例第一行输入两个整数(n, m),分别代表输入的数据的行数和列数,其中(1 leq T leq 10^4,n * m leq 2 * 10^5)。 接下来输入两个(n)行(m)列的矩阵(a, b),对于每个矩阵中的元素(x_{i,j})都是不同的,且满

数据结构专题

[NOIP2012]借教室 可以看到答案是有单调性的,若第i个可以那么第i-1个也可以,就可以二分答案,用差分维护区间加,也可以用树状数组 #include <bits/stdc++.h> using namespace std; #define int long long //#define double long double #define PII pair<int,

C++获取类型名称的技巧

C++获取类型名称的技巧 在某些情况下,我们需要明确知道编译器推导出的类型,特别是复杂类型。这些类型信息对于调试、优化和确保代码正确性非常重要。 技巧1:在编译期确定类型 主要用于模板编程和泛型编程时。 在编译期间确定类型的一种方法是通过引发编译错误,查看编译器的错误信息。 示例:如何通过引发编译错误查看类型 在这种情况下,编译器会报告错误,显示 a 和 b 的实际类型。这种方法特别适合在开发过

7/14 训练笔记

闲话 数组开小挂分 Kruskal 跑 (m = 9e6) TLE 问题 D: Card Game 简单猜结论得到答案是 (2 ^ {n - 1} - 1),需要快速幂。 代码: 问题 I: String Problem 统计每一个连续相同字符的字符串,然后给答案加上 (len - 1)。 代码:

React Native 添加自定义字体

RN 中使用自定义字体来展示内容,或者规避因为不同系统默认字体不同、用户手机主题字体的样式问题是 RN APP 开发和设计中的常见需求。由于RN样式实现的特点,添加自定义字体和在原本的html中使用稍微有点不一样,但时至今日也已经非常好解决了。下面是我展示的demo目录结构 不难看出,就是多了一个目录: assets/fonts和react-native.config.js。配置的重点就在这两

[ABC206E] Divide Both 的题解

题目大意 求出从 (l) 至 (r) 中满足以下条件的 ((x,y)) 的个数。 (gcd(x,y) ne 1) 且 (gcd(x,y)ne x) 且 (gcd(x,y)ne y)。 其中 (1le lle rle 10^6)。 思路 正难则反,所以可以求出所有互质或者是相互倍数的 ((x,y)) 的对数,在将其减去所有的方案数就是答案。 设 (s_i) 表示满足 (gcd(a,b)=i) 而

暑期训练第一周周报

总体学习情况 这周的强度还是很大的,二分和简单数据结构的牛客题单还没有刷完,想着把补题放到第一位,然后后面慢慢补上那些没有做的题,比赛打得还是依旧很拉,不过没有关系,太阳照常升起,总会赢的。 知识点模块 1.Floyd算法用来求两点到达的最小代价,复杂度是O(n3) 其实代码并不难记,可以说板子很好背了,用这个知识点有些题目套板子就秒了。 2.快速幂的模板再度复习了一下 3.同样又遇见了输

20240708

T2 洛谷 P2839 Middle 对于中位数,考虑二分,将数据中大于等于该数的标为 (1),小于的标为 (0),求和大于(等于)(0)则合法,否则非法。对于这个题,每次询问可以发现 ([b, c]) 必选,前后两端不必全选。因此考虑前后两端的最大后 / 前缀和。接下来考虑如何快速标记。注意到当二分的数每次增加 (1) 时,只有一种数的权值会变化。于是对值域建主席树,每次查询在对应的树上查即可。

20240709

T1 NFLSOJ P3372 game 考虑对于 B 的行动,A 会采取怎样的策略。容易发现两人路线相交只会是一条线段,因此枚举这条线段在 B 走过的哪条线段上,记录从起点和终点分别走到每个位置的最大权值,就可以搞了。然后考虑对 B 的路径 dp,(dp[i][j][0/ 1]) 表示从 B 的起点走到 ((i, j)),最后一步是怎么过来的 这样 A 最大的最小收益。转移枚举从上面还是右边的哪

[ARC063F] Snuke's Coloring 2

昨天毒瘤场遇到这题被腐乳了,发现了必经过中线的性质还是没想清楚怎么统计,实在是太菜太菜 首先很容易转化题意为:找一个周长最大的矩形,满足其内部(不包括边界)上没有任何一个给定点 有一个很重要的观察就是因为答案不小于 (2times (max(W,H)+1)),因此按照两条中线 (x=frac{W}{2}) 和 (y=frac{H}{2}) 将外面的矩形分成四份后,答案不可能只在其中一个小矩形内 因

SMU Summer 2024 Contest Round 3(7.10)zhaosang

打的最菜一次,最惨一次,题读假了 A-A http://162.14.124.219/contest/1007/problem/A 签到题 要解决这道题,素数对,数据量不是很大,所以我们可以先预处理素数,这个偶数肯定是等于小于它的两个素数,所以只需要遍历到小于它即可,把素数存起来,然后这两个素数的和等于这个偶数,并且要求相差最小所以遍历选差值最小的即可。 代码: D-D http://162.

SMU Summer 2024 Contest Round 2 (7.9)zhaosang

A-A http://162.14.124.219/contest/1006/problem/A 考查用vector画图 我枚举到n==5才开始用,浪费40分钟,还是找规律太慢,得多学 做题代码如下:一坨 B-B http://162.14.124.219/contest/1006/problem/B 就是问你字符串里面有多少个连续相同的两个的子串数量, 但是问的是某一个区间里面的。 思路就是

2024 暑假友谊赛-热身2 (7.12)zhaosang

E-E https://vjudge.net/problem/AtCoder-diverta2019_b 给你 a, b, c ,n就是问你有多少(ia+jb+k*c)等于n的答案i,j,k任意几个都可以为零 两种思想,数据量比较小,那么可以三重循环+减枝,或者枚举两个变量算出第三个 代码如下: 第一种三重循环 第二种 两重循环算第三个 D-D https://vjudge.net/con

2024 暑假友谊赛 1 (7.13)zhaosang

A-A https://vjudge.net/contest/638765#problem/A 一开始贪心做不出来,后面发现是dp找到转移方程即可,01dp问题 代码如下 B-B 板子题, 代码如下 H-H https://vjudge.net/contest/638765#problem/H 签到题,不多说 其他题正在补。。。。。。 D-D https://vjudge.net/c

CF1237F Balanced Domino Placements

比较有意思的 Counting,想到横竖两种骨牌的独立性就很好做了 考虑如果枚举最后放了 (x) 块横着的骨牌,(y) 块竖着的骨牌,直接考虑它们的摆放不方便,不妨转化一下 在所有空余的行中,选择 (x+2y) 行,且满足其中有 (y) 对相邻的行;在所有空余的列中,选择 (2x+y) 列,且满足其中有 (x) 对相邻的列 不难发现这样选出的行和列之间在组合时恰有 (x!times y!) 种方案

【MX-J1-T2】『FLA - III』Ilumina 题解

题目传送门 【MX-J1-T2】『FLA - III』Ilumina 思路 硬导题。 因为 (c=lfloor frac{b}{m}rfloor),那么 (b) 一定可以表示为 (ctimes m+x),其中 (0le xle m-1)。 又因为 (b=lfloor frac{a}{n}rfloor),那么 (a) 一定可以表示为 (btimes n+y),其中 (0le yle n-1)。 由上

Acwin-3692. 最长连续公共子序列——待续

1.题目 输入两个字符串 s1,s2 。 输出最长连续公共子串长度和最长连续公共子串。 输入格式 一行,两个字符串 s1,s2,用空格隔开。 输出格式 第一行输出最长连续公共子串的长度 第二行输出最长连续公共子串。如果不唯一,则输出 s1 中的最后一个。 数据范围 1≤|s1|,|s2|≤100 数据保证至少存在一个连续公共子串。 输入样例: abcdefg qwercdefiok 解释 输出样例

(网络流)最大流-增广路算法

最大流 概念(一般形式、一般模型): 在一张有向图中,给定源点、汇点,每条边单位时间可以流x容量的水。有无限的水从源点流入,从汇点流出。求单位时间内,从汇点流出的水的最大值。 (网络流)最大流-增广路算法 核心思路: 每次找到一条可以流水的路径,将其称为增广路。增广路的所以算法本质上都是找出增广路,将增广路注入水,然后继续寻找增广路,直到没有增广路可寻。 EK(Edmond—Karp)算法

SMU 2024 ptlks的周报Week 8(7.8-7.14)

这周主要学习了线段树,基本能用线段树解决一些简单的题目。 D - Flat Subsequence 题意:单点修改+区间查询 代码 D. Traffic Jams in the Land 题意:单点修改+区间查询 代码 仓鼠的鸡蛋 题意:将数据二分插入线段树 代码 势能线段树模板题一 题意:势能线段树模版,感觉很难用得上。。 代码

C++11 标准库 线程库<thread>梳理

目录<thread>this_thread命名空间1. get_id()2. sleep_for()3. sleep_until()4. yield()thread类构造函数:类方法1. get_id()2. join()3. detach()4. joinable()5. operator=6. hardware_concurrency(static)多线程的两种计算场景 <t

牛客周赛 Round 51

对于题目我急于求AC,导致许多题没有弄到精髓只是单纯的通过而已,不思考,不磨题,太着急都是目前的BUG区域所在,于是再此改变,虽然这个过程很慢,希望能做到思考,平稳 A.小红的同余 A   小红的同余 思路+解法: 找到唯一一个x满足2x % m = 1 (0 <= x < m)  就可以推出 (m + 1) * 2即可 Code:&n

CMAGABC算法

`// ABC.cpp : Defines the entry point for the console application. //自动测30个函数,输出加上成功率 include include include include <stdlib.h> include <math.h> include <time.h> include include

D. Explorer Space

原题链接 题解 1.易得当 (k) 为奇数时,答案肯定为 (-1) 2.当 (k) 为偶数时,经过 (k) 条边返回原点的最短路径可以看成从原点出发经过 (frac{k}{2}) 条边之后的最短路径(这样一来也没有了终点的限制) 3.这里用到了见微知著的思维,即假设已知某点经过 ([1,k_1]) 条边之后的最短路径,那么其经过 (k_1+1) 条边之后的最短路径等于它周围四个点经过 (k_1)

字体高亮

前端展示

题解:黑暗爆炸 3399[签到题]

黑暗爆炸 3399 题面 Description 约翰用沙子建了一座城堡.正如所有城堡的城墙,这城墙也有许多枪眼,两个相邻枪眼中间那部分叫作城齿. 城墙上一共有 (N(1≤N≤25000)) 个城齿,每一个都有一个高度 (M~i~(1≤M~i~≤100000)) . 现在约翰想把城齿的高度调成某种顺序下的 (B~i~) , (B~2~) ,…, (B~N~(I≤B~i~≤100000)) . 一

题解:CodeForces 197A Plate Game [博弈论]

CodeForces 197A A.Plate Game time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard output You've got a rectangular table with length (a) and width (b) and

Selling a Menagerie 的题解

题面大意 动物园里有 (n) 个动物,第 (i) 个动物害怕第 (a_i) 个动物,第 (i) 个动物价值 (c_i) 元。现在我要将这些动物全部卖掉。显然,卖掉的动物编号可以构成一个排列 (p)。 考虑卖掉这些动物时: 若 (a_i) 在 (i) 还没有卖掉之前就被卖掉了,现在卖掉 (i),可以获得 (c_i) 元; 若 (a_i) 在 (i) 还没有卖掉之前没被卖掉,现在卖掉 (i),可以获

<<  <  97  98  99  100  101  102  103  104  105  106  107  >  >>