
C++
文章平均质量分 71
筱姌
不被定义,庆幸自己,我可以是任何样子。我野蛮生长,自己便是月亮。
展开
-
牛客——xay loves or与 __builtin_popcount的使用
因此,如果 x \text{ OR } y = sx OR y=s,那么对于 ss 中每一位为 1 的位置,xx 或 yy 在对应位置至少有一个 1;对于 ss 中每一位为 0 的位置,xx 和 yy 在对应位置都必须是 0。为了理解这个问题,我们需要考虑按位或运算的性质。是 GCC 编译器提供的一组内置函数之一,用于计算一个整数的二进制表示中 1 的个数。接受一个无符号整数作为参数,并返回该整数的二进制表示中 1 的个数。的结果在这些位上必须是 1。中对应位为 1,这是不可能的,因为。原创 2024-10-08 14:50:30 · 811 阅读 · 0 评论 -
HDU1753——大明A+B,HDU1115——Lifting the Stone,HDU1140——War on Weather
定义圆周率。原创 2024-08-26 10:00:00 · 747 阅读 · 0 评论 -
HDU1799——循环多少次?,HDU1316——多少斐波那契?,HDU1715——大菲波数
函数生成后续的斐波那契数,直到生成的数字长度超过 100 为止,并将这些数字存储在。生成斐波那契数列:从初始的两个斐波那契数 “1” 和 “2” 开始,通过不断调用。进行处理,使得高位在左侧,低位在右侧,方便后续的比较和计算。都为 “0”,则结束程序。对于每个输入的范围,将字符串。处理输入:从标准输入读取两个字符串。计算范围内的斐波那契数数量:使用。的第一个斐波那契数的下标,记为。的第一个斐波那契数的下标,记为。范围内的斐波那契数数量为。原创 2024-08-26 15:30:00 · 1011 阅读 · 0 评论 -
HDU1510——White Rectangles(白色矩形),HDU1570——A C,HDU1716——排列2,next_permutation的用法
这段代码的目的是对于输入的四个数字(代表四张卡片上的数字),生成由这四个数字组成的所有可能的四位数,并按照特定规则进行输出。具体规则为:将千位数字相同的四位数放在同一行输出,并且输出结果按照从小到大的顺序排列。如果输入的四个数字都是 0,则程序结束。,容器中的元素必须是可比较的,并且容器中的元素必须支持通过迭代器进行的随机访问。根据操作符判断是计算排列数还是组合数,调用相应的函数进行计算,并输出结果。:这个函数用于计算给定整数的阶乘。的阶乘,然后进行相应的计算得到组合数。的阶乘,然后相除得到排列数。原创 2024-08-25 14:30:00 · 773 阅读 · 0 评论 -
HDU1398——Square Coins,HDU1465——不容易系列之一,HDU1492——The number of divisors(约数) about Humble Numbers
比如,我高中的时候,就有一个神奇的女生,在英语考试的时候,竟然把40个单项选择题全部做错了!如果套用一句经典的评语,我们可以这样总结:一个人做错一道选择题并不难,难的是全部做错,一个不对。事情是这样的——HDU有个网名叫做8006的男性同学,结交网友无数,最近该同学玩起了浪漫,同时给n个网友每人写了一封信,这都没什么,要命的是,他竟然把所有的信都装错了信封!这段代码的目的是判断输入的数是否为 “谦虚数”(即其质因数仅为 2、3、5、7),并在确定为谦虚数后计算其因数的个数。个元素的全错位排列情况数。原创 2024-08-25 08:45:00 · 1069 阅读 · 0 评论 -
HDU1153——Magic Bitstrings,HDU1171——Big Event in HDU,HDU1261——字串数
计算总价值的一半,这是分割设施的目标值。目的是将设施分配给两个学院,使得每个学院的价值尽量接近总价值的一半。这样做的目的是在分配设施时,从价值较大的设施开始考虑,以便更快地接近分割目标。是正整数,就表示有一个新的测试用例需要处理。开始输出每个元素,从而得到最终的序列。转换为长整型后输出,代表两个学院最终的价值。,循环就会继续执行,这样可以处理多个输入值。时,无法按照后续的逻辑生成满足条件的序列。时,可能会导致输出错误的结果,所以从索引。输出的序列中,对应平方数模。,则退出循环,结束程序。原创 2024-08-24 15:24:12 · 749 阅读 · 0 评论 -
HDU1159——通用子序列,HDU1160——FatMouse的速度、HDU1165——艾迪的研究 II
问题 - 1159 (hdu.edu.cn)代码思路使用动态规划的思想来求解两个字符串的最长公共子序列(Longest Common Subsequence,LCS)的长度。动态规划是一种通过把原问题分解为相对简单的子问题,并保存子问题的解来避免重复计算,从而解决复杂问题的方法。参数设置:该函数接收两个字符串和作为参数,代表要计算最长公共子序列的两个序列。初始化动态规划数组:首先获取两个字符串的长度,分别存储在变量和中。创建一个二维向量,大小为,并初始化为全零。这里的表示的前个字符和的前个字符的最原创 2024-08-22 20:10:34 · 862 阅读 · 0 评论 -
P4859 已经没有什么好害怕的了(二项式反演)、P2742 [USACO5.1] 圈奶牛Fencing the Cows /【模板】二维凸包、P1452 【模板】旋转卡壳 | [USACO03FAL
在构建过程中,通过叉积的判断来决定是否将当前点加入凸包顶点数组。在循环中,根据叉积的大小来决定是否将当前点加入凸包。:用于计算三个点形成的向量的叉积。通过叉积的正负可以判断三个点的相对位置关系。函数用于计算三个点形成的向量的叉积,通过叉积的正负来判断点的相对位置关系。的移动,计算不同位置的点对之间的距离。最后,计算凸包顶点之间的距离之和,得到凸包的周长。函数用于计算凸包的周长:首先对输入的点按照。用于构建凸包过程中的临时点存储。函数用于计算两个点之间的距离。:计算两个点之间的距离的平方。原创 2024-08-15 16:15:00 · 850 阅读 · 0 评论 -
P4609 [FJOI2016] 建筑师(斯特林轮换数)、P3904 三只小猪(斯特林子集数)、P6620 [省选联考 2020 A 卷] 组合数问题(斯特林反演)
当 n 和 k 都是正整数时,S(n, k)可以递归地定义为: S(n, k) = S(n-1, k-1) + kS(n-1, k)并且有边界条件 S(n, 0) = 0当 n > 0,S(0, 0) = 1。它建立在第一类斯特林数(s(n, k))和第二类斯特林数(S(n, k))之间的互逆关系上。这些循环之间是没有顺序的。作为取模运算的模数。原创 2024-08-14 16:30:00 · 1056 阅读 · 0 评论 -
HDU1521——排列组合(生成指数函数)、P3455 [POI2007] ZAP-Queries、P3327 [SDOI2015] 约数个数和
通过两层循环计算结果:外层循环控制左边界。然后通过两层循环筛选出素数,并设置相应的。对于不是素数乘积的数,根据其素因子的情况设置。未被标记为已访问(即未被筛掉),将其标记为素数。初始化一些数组和变量用于后续计算。函数进行初始化操作。最后通过累加的方式计算前缀和,将。的值和一些计算得出部分结果累加到。为 -1 ,同时增加素数计数器。通过两层循环计算最终的结果。内层循环计算左右边界,根据。用于计算特定的数值。的计算是基于一定的数学规律。在每次测试用例中,读入。数组的值计算中间的累加和。在每个测试用例中,读入。原创 2024-08-13 09:45:00 · 2053 阅读 · 0 评论 -
数论题目合集——A. Ginger‘s number、P2303 [SDOI2012] Longge 的问题、P1226 【模板】快速幂、P3811 【模板】模意义下的乘法逆元
函数:这是一个用于计算两个数的最大公约数的递归函数。通过不断地将除数作为新的被除数,余数作为新的除数,直到余数为 0 ,此时的被除数就是最大公约数。函数:用于判断一个数是否为质数。如果一个数小于等于 1 则不是质数。然后从 2 到该数的平方根遍历,如果能被整除则不是质数,否则是质数。这个公式是基于扩展欧几里得算法的原理,但是通过动态规划的方式优化了计算过程,使得我们可以在O(n)的时间复杂度内完成所有逆元的计算。这里输出每一项逆元的值。原创 2024-08-07 08:30:00 · 1216 阅读 · 0 评论 -
4658. 质因数个数、197. 阶乘分解、模板题【线性筛求积性函数】(数论练习题)
的不同质因数的个数。原创 2024-08-06 15:00:00 · 809 阅读 · 0 评论 -
数论基础知识(上)
和它本身以外不再有其他约数的自然数。的所有因数,并将它们存储在。算术基本定理(唯一分解定理)原创 2024-08-05 14:00:00 · 1988 阅读 · 0 评论 -
数论——线性同余方程、扩欧求解线性同余方程、线性组合、原根求解
【代码】数论——线性同余方程、扩欧求解线性同余方程、线性组合、原根求解。原创 2024-08-04 14:30:00 · 831 阅读 · 0 评论 -
数论——裴蜀定理、欧几里得算法、扩展欧几里得算法、逆元以及求解
a|b表示a整除b;a|\b表示a不整除b;|可以表示对整数的划分;原创 2024-08-04 10:00:00 · 1812 阅读 · 0 评论 -
HDU1097——A hard puzzle,HDU1098——Ignatius‘s puzzle,HDU1099——Lottery
这是因为只需要关注最后一位数字,其他高位数字不影响结果。,使用递归的方式实现欧几里得算法来计算两个数的最大公约数。循环,只要能从标准输入成功读取一个整数到。中,只要能从标准输入成功读取两个整数到。,用于接收输入的两个数。,用于保存最终结果(即。,就会执行后面的代码。次幂的最后一位数字)。,就会执行后续的代码。次幂的最后一位数字。定义了一个自定义函数。原创 2024-08-03 08:00:00 · 793 阅读 · 0 评论 -
HDU1089、1090、1091、1092、1093、1094、1095、1096、——A+B for Input-Output Practice
或者输入结束而结束后,外层循环会继续处理下一个测试用例(如果还有的话)。当无法从标准输入成功读取两个整数时(例如输入结束或输入格式不正确),while (cin>>a>>b && (a || b))约束条件。的和,并将结果输出到标准输出,然后再输出一个空行。循环,只要能够从标准输入成功读取两个整数到。,用于接收输入,表示后续要输入的整数个数。,它表示接下来要处理的测试用例的数量。循环,条件是能够成功读取一个整数到。在每次循环中,读取一个整数。,用于接收用户输入的一个整数。是多少),就执行后续的操作。原创 2024-08-02 12:00:00 · 1036 阅读 · 0 评论 -
HDU1086——You can Solve a Geometry Problem too,HDU1087——Super Jumping! Jumping! Jumping!,HDU1088
用于接收输入的整数,表示数字的个数。来存储输入的数字,通过一个循环读取。来表示线段,包含两个端点的坐标。个数字开始,对于每个数字。,并定义了一个同长度的。,即能得到的最大结果。原创 2024-08-02 10:00:00 · 54 阅读 · 0 评论 -
HDU1080——Human Gene Functions,HDU1081——To The Max,HDU1082——Matrix Chain Multiplication
函数根据输入的字符,返回其对应的索引,用于在。然后使用两层循环,将输入的数据存储到。来存储不同字符代表的矩阵的行和列信息。用于存储输入的数据,以及一些变量。,这样方便后续计算某一列区间的和。函数用于找出三个整数中的最大值。数组中,并计算每行的前缀和,即。接下来是计算最大子矩阵和的部分。首先定义了一个二维数组。最后输出最大子矩阵的和。数组中查找匹配得分。首先定义了一个结构体。来表示矩阵的行和列。原创 2024-07-31 10:00:00 · 1016 阅读 · 0 评论 -
HDU1074——Doing Homework,HDU1075——What Are You Talking About,HDU1076——An Easy Task
。原创 2024-07-30 09:00:00 · 1466 阅读 · 0 评论 -
HDU1014——Uniform Generator,HDU1015——Safecracker,HDU1016——Prime Ring Problem
目录HDU1014——Uniform Generator题目描述运行代码代码思路HDU1015——Safecracker题目描述运行代码代码思路优化建议HDU1016——Prime Ring Problem题目描述运行代码代码思路Problem - 1014代码思路 定义函数:函数:Problem - 1015代码思路 函数定义:函数用于检查五个字母是否互不相同。函数用于降序排序字母。主函数逻辑:减少不必要的比较:避免不必要的ASCII转换:由于已经降序排序,可以直接使用字母在数组中原创 2024-07-20 14:45:00 · 850 阅读 · 0 评论 -
C++期末考试注意点2
静态成员函数都不行,因为它不捆绑对象,同样,构造函数也不行因为它只产生对象,也不捆绑对象,可是,析构函数却可以是虚函数。一旦有了虚函数,就不可能是内联函数。纯虚函数是在声明虚函数时被“初始化”为0的函数。如果在一个类中声明了纯虚函数,而在其派生类中没有对该函数定义,则该虚函数在派生类中仍然为纯虚函数。②最后面的“=0”并不表示函数返回值为0,它只起形式上的作用,告诉编译系统这是纯虚函数”;③这是一个声明语句,最后应有分号纯虚函数只有函数的名字而不具备函数的功能,不能被调用。①纯虚函数没有函数体;原创 2024-04-21 12:58:37 · 497 阅读 · 0 评论 -
n!的位数:面向对象的解法
Output:根据每个整数n,输出其n!的位数,每个数占独立一行。Output:重新排列01串的顺序。使得串按基本描述的方式排序。阶乘的大小,进而确定它有多少位数。直接计算大整数的阶乘会非常耗时且可能超出内存限制。一个更有效的方法是通过。通过向量存放数据,然后依次循环调用函数,但是输出还是有点小问题,跳出循环的条件无法实现。Description:针对每个非负整数n,计算其n!Input:输入数据中含有一些整数n(0≤n原创 2024-04-22 18:31:19 · 352 阅读 · 0 评论 -
排列对称串
Description:很多字串,有些是对称的,有些是不对称的,请将那些对称的字事按从小到大的顺序输出,字事先以长度论大小,如果长度相同,再以ASCI码值为大小标准。这种情况下,无法实现回车两次直接输出结果,借助Ctrl+z两次输出结果,跳出循环。Input.输入数据中含有一些字串(1≤串长≤256)。这个时候可以直接借助两次回车将结果输出。的类,构造函数接受一个。,初始化私有成员变量。原创 2024-04-25 08:00:00 · 741 阅读 · 0 评论 -
小美打怪(动态规划)
小美在玩游戏,游戏中有 n 个怪物,怪物的血量为 h,攻击力为 ai。小美的血量为 H,攻击力为 A,小美可以击败血量和攻击力都小于自己的怪物,并且打败后血量降为怪物的血量,攻击力降为怪物的攻击力。小美的血量(H)和攻击力(A)可以理解为背包的“容量”,每次击败一个怪物后,小美的血量和攻击力都会变成被击败怪物的血量和攻击力,这意味着每次决策都会影响后续决策的可行性和收益。怪物的血量(h)和攻击力(ai)可以看作是背包问题中的“物品”,每个怪物对应一个物品,物品的“价值”是击败怪物的数量(1个单位)。原创 2024-04-24 13:12:25 · 620 阅读 · 0 评论 -
贪心,DFS:小美的树上染色
接下来的n−1行,每行输入两个正整数u,v,代表节点u和节点v有一条边连接。小美有若干次操作,每次操作可以选择两个相邻的节点,如果它们都是白色且权值的乘积是完全平方数,小美就可以把这两个节点同时染红。请注意,此时不能再染红第一个和第二个节点,因为第二个节点已经被染红。输出描述:输出一个整数,表示最多可以染红的节点数量。是一个二维数组,用于存储每个顶点的两个不同状态的值。的乘积的平方根,如果平方根的平方等于原始乘积,则将。为根的子树中,不包含直径的最大边权和,而。循环读取每条边的信息,构建图的邻接表。原创 2024-04-23 10:17:44 · 664 阅读 · 0 评论 -
背包问题:小红不想做完全背包
本题和hard版本的唯一区别是:p保证等于3。完全背包是一个经典问题,但小红完全不会完全背包,因此她不想做完全背包。现在小红拿到了一个长的很像完全背包的题,她希望你帮她解决一下。给定一个背包,有n种物品,每种物品的价值为ai,有无穷多个。小红有一个无穷大的背包她希望往里面放若干个物品,使得最终所有物品的价值之和为p的倍数。小红想知道最终至少要放多少物品?原创 2024-04-22 23:13:23 · 903 阅读 · 0 评论 -
小红的排列构造(dp优化)
小红拿到了一个长度为n的数组a,她希望你构造两个排列p和q,满足对于i∈[1,n],ai∈[1,n]pi或qi二选一。定义排列是一个长度为n的数组,其中1到n每个元素恰好出现1次。输出描述:如果无解,请输出-1。否则第一行输出n个正整数pi,第二行输出n个正整数qi,代表小红构造的两个排列。(i)++)类似于定义了一个模板,效率更高。输入描述:第一行输入一个正整数n,代表两个数组的长度。原创 2024-04-20 09:53:51 · 970 阅读 · 0 评论 -
小红升装备(动态规划)
接下来的n行,每行输入5个正整数atti,pricei,costi,upgradei,lvmaxi分别代表装备初始战力,购买该装备需要的金币、升1级花费的金币、升1级提升的战力、最高可以提升的等1≤n,x≤300,1≤atti,pricei,costi,upgradei,lvmaxi≤10^9。在给定了每个装备初始的战力,购买每个装备的价格,每个装备强化一级花费的金币和可以提升的战力,以及每个装备最大可以提升的等级。)之间的同步开销,用于提高IO密集型程序的性能,从而加快程序读取输入和打印输出的速度。原创 2024-04-19 15:15:59 · 821 阅读 · 0 评论 -
2^x modn=1
Give a number n, find the minimum x that satisfies 2^x mod n = 1.Input One positive integer on each line, the value of n.Output If the minimum x exists, print a line with 2^x mod n = 1.Print 2^? mod n = 1 otherwise.You should replace x and n with s原创 2024-04-18 15:21:01 · 303 阅读 · 1 评论 -
面向对象的C++题目以及解法2
01串排序将01串首先按长度排序,长度相同时,按1的个数多少进行排序,1的个数相同时再按ASCI码值排序。输入数据中含有一些01串,01串的长度不大于256个字符。重新排列01串的顺序。使得串按基本猫述的方式排序。原创 2024-04-16 23:05:56 · 787 阅读 · 0 评论 -
动态规划:小美的元素删除
输入描述:第一行输入两个整数 n,k(1≤k≤n≤10^3)表示数组长度,删除的元素数量。第二行输入 n 个整数表示数组 a(1≤ai≤10^9)。小美有一个数组,她希望删除kkk个元素,使得剩余的元素两两之间互为倍数关系。输出描述:输出一个整数表示答案。方案2:删除1,4,3,7。方案3:删除1,3,6,7。方案4:删除4,2,3,6。方案5:删除4,2,3,7。方案6:删除4,2,6,7。方案7:删除4,3,6,7。方案8:删除2,3,6,7。方案1:删除1,4,2,7。原创 2024-04-16 13:22:26 · 576 阅读 · 0 评论 -
函数与结构体
给定一个集合 s(集合元素数量≤30),求出此集合所有子集元素之和。输入格式 集合中的元素(元素≤1000)输出格式 s 所有子集元素之和。输入输出样例2 310说明/提示子集为:∅,{2},{3},{2,3},和为 2 + 3 + 2 + 3 = 10。对于100% 的数据,1≤∣s∣≤30,s 所有子集元素之和 ≤10^18。原创 2024-04-15 12:07:10 · 396 阅读 · 0 评论 -
顺序结构(入门题)
学校要求必须在上午8:00 到达,请计算在不迟到的前提下,y最晚能什么时候出门。输出格式为 HH:MM,分别代表该时间的时和分。必须输出两位,不足前面补 0。学校和 y的家之间的距离为 s米,而 y 以 v米每分钟的速度匀速走向学校。由于路途遥远,y可能不得不提前一点出发,但是提前的时间不会超过一天。在上学的路上,y还要额外花费 10 分钟的时间进行垃圾分类。输出一个 24小时制下的时间,代表 y最晚的出发时间。一行两个正整数 s,v,分别代表路程和速度。对于100% 的数据,1≤s,v≤10^4。原创 2024-04-13 11:30:03 · 448 阅读 · 0 评论 -
数据结构:线性表
有n(n≤2×106) 名同学陆陆续续进入教室。我们知道每名同学的学号(在 11到 10^9 之间),按进教室的顺序给出。上课了,老师想知道第 ii 个进入教室的同学的学号是什么(最先进入教室的同学 i=1),询问次数不超过 10^5 次。原创 2024-04-12 23:53:11 · 514 阅读 · 1 评论 -
深度优化搜索,字典树
小红来到了一个n∗m的矩阵,她初始站在左上角,每次行走可以按“上下左右”中的一个方向走一步,但必须走到和当前格子不同的字符,也不能走到矩阵外。小红想知道,从左上角走到右下角最少需要走多少步?原创 2024-04-12 20:26:14 · 1099 阅读 · 0 评论 -
二叉树和数据结构
2. 除了根节点以外,每个节点的权值和它父亲的权值的乘积为偶数。请你帮小红构造出这个二叉树,并按层序遍历的方式打印所有节点。一个正整数 n,代表二叉树的节点数量。输出一行n个正整数,代表小红构造的二叉树的层序遍历的序列。1. 所有节点的权值值为 1 ~ n 的一个排列。显然,任意节点和它父亲权值的乘积都是偶数。原创 2024-04-11 21:37:15 · 528 阅读 · 0 评论 -
高精度:[NOIP1999]回文数
高精度:[NOIP1999]回文数题目描述若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。例如:给定一个10进制数56,将56加65(即把56从右向左读),得到121是一个回文数。又如:对于10进制数87:语言题:统计数字题目描述小明前几天看书看累了,脑海中突然闪过,这书的页码也很可爱啊。一本书的页码从自然数1按自然顺序编码到n.每个页码不会含有多余的前导数字0.例如,第6页用数字6表示,而不是06、006表示。原创 2024-04-11 15:17:24 · 797 阅读 · 0 评论 -
小红的白色字符串
小红拿到了一个字符串,她准备将一些字母变成白色,变成白色的字母看上去就和空格一样,这样字符串就变成了一些单词。现在小红希望,每个单词都满足以下两种情况中的一种:1.开头第一个大写,其余为小写(长度为 1 的大写字母也是合法的)。2.所有字符全部是小写。小红想知道,最少需要将多少字母变成白色?原创 2024-04-10 23:55:32 · 282 阅读 · 4 评论 -
贪心算法:排列算式
给出n数字,对于这些数字是否存在一种计算顺序,使得计算过程中数字不会超过3也不会小于0?原创 2024-04-10 23:43:46 · 597 阅读 · 0 评论