- 博客(38)
- 收藏
- 关注
原创 C++性能优化-代码角度
对于一个100次的循环,除第一次和最后一次预测指令出现错误,其他预测的指令都可以预测循环体内的指令;避免了执行转移指令时重新取出新指令造成的时间浪费。循环嵌套问题:为什么大循环在内,小循环在外可以提高程序的运行效率_大循环放外面还是小循环放外面-优快云博客。当类中需要的数据初始化时间较长时,应将对象的数据在额外的init函数初始化。因此在A套B和B套A相同时(A>>B),A在内部时错误较少。大循环在内,小循环在外-->指令执行机制都会存在预处理指令的分支,二维或者更高维的数组在调用时,按行存取-->
2024-09-20 14:14:21
1118
原创 多线程数据一致性--读者写者相关
多线程数据一致性是指在多线程环境中保持数据的正确性和安全性。当多个线程同时访问和修改共享数据时,可能会发生数据竞争和不一致的情况,导致程序的运行结果不可预测。
2024-09-11 14:35:57
619
原创 练习--蓝桥杯2022省赛(灌水)
给定 n 个整数 a1, a2, · · · , an ,求它们两两相乘再相加的和,即 S = a1 · a2 + a1 · a3 + · · · + a1 · an + a2 · a3 + · · · + an-2 · an-1 + an-2 · an + an-1 · an.
2024-02-15 12:09:40
684
原创 CF做题记录--2023.11.21
再考虑如何统计一个序列的贡献,对于序列 [1,r] 它的子序列有1+2+..+r,那么如果遍历右端点(从[1,1]到[1,r]),很显然每个序列都是不稳定,那么对于本次遍历,如果[1,ri]为不稳定①,那么贡献为ri,即dp[i]=dp[i-1]+1。如果i为1,dp[i][1]=dp[i-1][0]+1。如果i为0,dp[i][0]=dp[i-1][1]+1。当且仅当我们可以将其中的。其中一种使得这个子串是。
2023-11-21 11:50:26
171
原创 CF做题记录--2023.11.14
当一个怪兽死后(生命值 ≤0≤0),它会发生爆炸,并对下一个怪兽(假设当前怪兽为编号 i,则下一个为 i+。有 N 头怪兽,他们围成一个环,顺时针编号 1,2,3,4,…,N 每一头怪兽都有 2 个属性,一个是它的生命值 ai,第二个是它的爆炸值 bi。给定一个整数 n,请找到 k 个和为 n 的正整数a1,a2,…t 组数据,1⩽t⩽1e4,3⩽n⩽1e9,3⩽k⩽n。{2,n/2,n/2}n被4整除,直接{n/2,n/4,n/4}{1,n/2,n/2}由于N为1e5数量级,其实可以O(n^2)
2023-11-14 11:51:08
128
原创 CF做题记录--2023.10.24
如果原串wi+x 这一位存在且为 1,那么 si 为 1(形式化地说,如果 i+x≤n 且 wi+x=1,那么 si=1)。如果原串 wi−x 这一位存在且为 1,那么 si 为 1(形式化地说,如果 i>x 且 wi−x=1,那么 si=1)。原串为 w,变换后的串为 s,两串长度相等;给出一种01串的变换方法及对一个串变换后的结果串,求出原串(可以有多种),多组询问。给出 s,求出一种可能的 w,若不存在任意一种 w,输出。先从w逆向求s,在顺序求w,看看两次w是否一致。
2023-10-24 11:24:12
110
原创 CF做题记录--2023.10.16
首先分析题目要求,可以发现,对于原字符串中的任意一个1(或0),只能跟在0(或1)之后,或者是单开一个子串。那么可以分别为1和0设置一个队列,里面放子串的编号。如果是1,考虑1队列是否为空,为空代表只能开新串,不空就记录,0同理。每次操作完毕,将队列首尾放到另一个队列里(交替1010/0101)求出 k 的最小值。
2023-10-16 09:21:36
98
原创 CF做题记录--2023.9.25
给定两个正整数 ,r(l1, s 的左半部分为全为 c,右半部分为一个。现在,给你一个字符串 s (∣s∣=xi,xi等于[r-i]-[l-i]当∣s∣=1 ,=c。
2023-09-26 11:22:55
164
原创 CF做题记录--2023.9.25
现在请问对于给出的一个字符串,最少删掉多少个字符才能是这个字符串的左移和右移完全相同?给你a数列,让你判断其中的每个元素是否能写成数列中几个连续元素之和,并统计个数。同理可以发现偶数长度的是奇数位全部相等,偶数位全部相等。发现ab组合只有100种,而且n
2023-09-25 22:04:44
130
原创 CF做题记录--2023.9.24
看到2∗∑n∣ai−bi∣≤S,两数列差值的两倍≤S,那么一个朴素想法是 1,a[i],1,a[i]....(也就是将a数组间隔的修改为1)在考虑特殊情况,也就是临界位x为9,那么实际上将x或者x-1作为临界位的结果是一样的(9进1变0,上一位加1)那么我们可以直接掉过所有的9。2. 对于每一对相邻的数(bi,bi+1),要求bi整除bi+1或bi+1整除bi。考虑能否实现,对于奇数/偶数位,s+=a[i]-1,那么理论上2*s一定可以小于等于S。那么先计算奇偶位的和,将小的化为1。
2023-09-24 19:40:49
81
原创 做题记录--CF板子题 2023.9.13
对于每个整数 n,你需要输出一个长度为 n 的全排列 p,求其中任意两个相邻(相邻)元素的绝对差(即差的绝对值)在2和4之间(包括2和4)的排列数p。形式上,求每一个 (1≤i<n)都是 2≤|pi−pi+1|≤4的这样的排列 p。根据①可以知道,假设该节点为工业节点那么它的所有子节点也要为工业节点。如果一个工业节点之前添加工业节点,其幸福值需要重新计算,难以计算,对于一个工业城市,定义它的幸福值为工业城市到根的路径经过的旅游城市的数量。你可以选择 k 个节点将其设置为工业城市,其余设置为旅游城市。
2023-09-13 21:04:29
439
1
原创 做题记录--CF板子题 2023.9.12
每个班级必须推荐两对情侣参加舞会。现有a名男生和b名女生希望参加。但并不是所有的男生和女生都愿意组队跳双人舞。从形式上看,你知道有 k对可能的一男一女。你需要从中选择两对,这样就不会有人参加多对了。如果已经选中组合(a,b),那么所有包含a,b的其他组合都不能选也就是。,因此在选择时一定不会出现两个相同组合。
2023-09-12 11:31:26
137
原创 做题记录--CF 板子题 2023.9.9
ar−1,ar 是“好”的,当且仅当这个子数组中所有元素的和等于它的长度(即 ∑i=lrai=r−l+1 )。贪心对于每个a[i-1]>a[i],另a[i]加上两者差值,再将操作数化为二进制,每个操作数的最大值为二进制的首尾(1000...)2。首先对于数字0-9,其对于好数组的贡献为-1~8,即每个0需要“一个1”填补,每个1-9实际将数组的“数值”增加0~8。对字符串 s,你可以选择一些位置,并翻转该位置的数 —— 0 变 1,1 变 0。先考虑一步以内的 1->F,2->A,奇数->A。
2023-09-09 17:13:44
145
1
原创 做题记录--CF 板子题 2023.9.8
给 n 棵树在一维数轴上的坐标 xi,以及它们的长度 hi。现在要你砍倒这些树,树可以向左倒也可以向右倒,砍倒的树不能重合、当然也不能覆盖其他的树原来的位置,现在求最大可以砍倒的树的数目。给出一个长度为n的序列a(1≤ai≤n),在其中任意位置插入若干个[1,n]中的数,使得新序列b中的连续k项和都相等。在暴力一点就是为每项构造一个k项周期,即数组构造为n*(x[1]~x[k])要求任意连续k项和相等,那么最暴力的解法就是数列按k项为周期循环。分三种情况,第i棵树不砍,向左倒,向右倒。
2023-09-09 17:12:59
187
1
原创 做题记录--CF 板子题 2023.9.7
给你一个位数不超过 100 的非负整数 N(不含前导 0)。你的任务是判断这个数字能否通过去掉其中的一些位上的数(当然不能去掉全部),使其成为一个能被 8 整除的正整数(不含前导 0)。将不等式化为(ai-bi)+(aj-bj)>0,转化为求dif[i]+dif[j]>0,对于每个dif[i],二分(或者lower_bound)找dif[j]。先打表,看8的所有倍数,发现对于任意x,x>1000,a为以x的每位数作为元素的数列。如果x是8的倍数,至少有一个a的长度<=3的子序列b,满足b是8的整数倍。
2023-09-09 17:12:23
158
1
原创 做题记录--CF 板子题 2023.9.6
在一次操作中我们可以取出一个数(假设他为 x)并删除它,同时删除所有的序列中值为 x+1 和 x−1 的数。给出 m 和 s,分别找出最大和最小的非负整数,两个数都满足数位长度为 m,数位和为 s。=1 第一位放1,后面的只要 (m-1)*9>s-x,就放x。由此可以推出dp思路:dp[i]=max(dp[i-1],dp[i-2]+a[i]*cnt[i])你读书的方式是这样的:找出任意一个数 x,并按编号从小到大的顺序读第 x∼n 本。你有 n 本书,读第 i 本书需要 ai 分钟,你现在有 m 分钟。
2023-09-09 17:11:48
216
1
原创 做题笔记--F. Range Update Point Query
长区间更新,如何节省时间对于问题的关键是长区间更新,如何节省时间set<int> s;cin>>a[i];int l,r;cin>>l>>r;//顺序访问set中的元素i<=r;i++){//更新//判断是否删除s.erase(i);
2023-08-30 16:19:49
199
1
原创 做题笔记--1822E. Making Anti-Palindromes
不对于交换两个数据的位置使得xx不同的题目,从相同数据中完全相同的数据的个数入手。思考同case时画树状分支,节省时间。对于反回文字符串,奇数长度和某个相同字符过多都不成立。
2023-08-27 11:10:54
146
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅