草庐IT

P2730 [USACO3.2] 魔板 Magic Squares 题解

一些废话夜深人静的夜晚,我开了这道题。看起来,完成它是一件轻而易举的事。我想了想,打开Dev-C++,开始写代码。然而,那时的我还不知道,我踏入了深渊......咳咳,中二病犯了,前面的文字请忽略。思路题目要求最少操作次数,显然,我们要使用BFS来求解。对于每个节点,接下来有最多三个子节点,用函数模拟即可。因为要求输出操作序列,所以需要存储每个节点的父节点。细节我们还需要对魔板进行去重操作来剪枝。这是因为:由于BFS的特性,当一个魔板第一次出现时,得到它所需要的操作次数是最少的;如果它出现了多次,那么与首次出现相比,它所需的操作次数更多。从该魔板出发还原成目标魔板时,如果从第一个魔板出发,所用

牛客网输入输出练习c++ 个人版题解

目录原题链接1.计算a+ba+ba+b,任意组数据任意结尾2.计算a+ba+ba+b,指定组数据3.计算a+ba+ba+b,任意组数据以00结尾4.计算行数据和,每行数据总数已知,总行数未知但以0结尾5.计算行数据和,每行数据总数已知,总行数已知6.计算行数据和,每行数据总数已知,总行数未知且任意结尾7.计算行数据和,每行数据总数未知,总行数未知且任意结尾8.字符串排序,已知字符串数量9.字符串排序,未知字符串数量,多组数据10.字符串排序,未知字符串数量,每个字符串以逗号分隔11.计算a+ba+ba+b,但有坑原题链接https://ac.nowcoder.com/acm/contest/5

2022 CSP-J 复赛题解

第一题乘方【题目描述】小文同学刚刚接触了信息学竞赛,有一天她遇到了这样一个题:给定正整数a和b,求ab的值是多少。ab即b个a相乘的值,例如23即为3个2相乘,结果为2×2×2=8。“简单!”小文心想,同时很快就写出了一份程序,可是测试时却出现了错误。小文很快意识到,她的程序里的变量都是int类型的。在大多数机器上,int类型能表示的最大数为231−1,因此只要计算结果超过这个数,她的程序就会出现错误。由于小文刚刚学会编程,她担心使用int计算会出现问题。因此她希望你在ab的值超过109时,输出一个‐1进行警示,否则就输出正确的ab的值。然而小文还是不知道怎么实现这份程序,因此她想请你帮忙。 

洛谷 P3304 [SDOI2013] 直径 题解

洛谷P3304[SDOI2013]直径题解题目链接题目分析第一部分好说,求直径,dfs或者DP都可以。第二部分,有一个定理,就是所有直径中点重叠。那么有两种情况一种是中点在一个节点上,那么显然这个点是每条直径的终点,也就是说直径的一半相等。从这个点出发dfs,找出所有最远点。如果只有两条,输出depth之和。否则求lca,lca的depth就是重叠的数量。另一种,中点在一条边上。从这个边出发,两侧分别dfs找最远,再分类讨论,有的求lca,有的输出。具体见代码即可。题解中还有其他思路:比如从一条直径上开始dfs(利用直径同侧长度一定相等的性质),还有两次dp求出总cnt和边cnt进行统计的,还

洛谷 P1336 最佳课题选择 题解

P1336最佳课题选择题解状态:考虑\(f_{i,j}\)表示前\(i\)种论文里面,一共写了\(j\)篇,的最少花费时间。转移策略:我们一次考虑每一种论文写多少篇。假设写\(k\)篇,\(k\in[0,j]\cap\mathbb{Z}\),有转移方程:\[f_{i,j}=min(f_{i-1,j-k}+cost(i,k)),k\in[0,j]\cap\mathbb{Z}\]其中\[cost(i,k)=a_i\timesk^{b_i}\]可以做记忆化优化,因为多次访问同一个\(cost(i,k)\)。初始化:我们考虑选0篇无论怎样花费为0,选0种论文但多于0篇一定是不可能的,花费为Inf,再加

【洛谷题解】P1036 [NOIP2002 普及组] 选数

[NOIP2002普及组]选数题目描述已知nnn个整数x1,x2,⋯ ,xnx_1,x_2,\cdots,x_nx1​,x2​,⋯,xn​,以及111个整数kkk(kkn)。从nnn个整数中任选kkk个整数相加,可分别得到一系列的和。例如当n=4n=4n=4,k=3k=3k=3,444个整数分别为3,7,12,193,7,12,193,7,12,19时,可得全部的组合与它们的和为:3+7+12=223+7+12=223+7+12=223+7+19=293+7+19=293+7+19=297+12+19=387+12+19=387+12+19=383+12+19=343+12+19=343+12

CCF CSP认证2022年12月题解 聚集方差(树上启发式合并)

T4聚集方差思路树上启发式合并,multiset上二分。注意到nnn的数据范围为3e5,聚集方差实际上是在一个可重复集合(一棵子树的所有节点)中找每个数最相近的数,我一开始想到了用multiset上二分,但是对每棵子树都操作一次总的时间复杂度为O(n2logn)O(n^2logn)O(n2logn),显然不能满足要求。首先,明确一点,multiset必须复用,用完之后清空,否则空间复杂度是O(n2)O(n^2)O(n2)。这里multiset可以理解为用于计算ans的info。从时间复杂度的角度,注意到为什么要求在一棵树上实现这个操作?子树和子树有相互包含的关系,可以据此实现一些信息的复用,比

2022 年全国职业院校技能大赛高职组云计算赛项赛题解析-《容器云》

2022年全国职业院校技能大赛高职组云计算赛项赛题解析-《容器云》解题【任务1】容器云平台搭建[5分]

2023年 ZZU ACM 招新赛暨选拔赛题解

比赛题目链接感谢wb学长贡献的B、L题解A.NANA与字符串—找规律题目链接注意题目中字符串中只有a,b两个字符因此只要找到左右两端点字符相同的子串,这个子串一定回文,这里不在证明求长为偶数回文串数量,就等于求相同的两个字符,而下标奇偶性不同的数对数量,比如0,1两个下标都是‘a’,这是偶数回文同理求长度为奇数回文,等于求下标奇偶性相同的数对数量求奇数时需要注意,因为奇偶性相同是同类,求数对数量即求组合数n*(n-1)/2最后加上每个单个的字符偶数不需要除以2是因为奇偶性不同,不会重复#include#includeusingnamespacestd;#defineintlonglongsig

2023年 ZZU ACM 招新赛暨选拔赛题解

比赛题目链接感谢wb学长贡献的B、L题解A.NANA与字符串—找规律题目链接注意题目中字符串中只有a,b两个字符因此只要找到左右两端点字符相同的子串,这个子串一定回文,这里不在证明求长为偶数回文串数量,就等于求相同的两个字符,而下标奇偶性不同的数对数量,比如0,1两个下标都是‘a’,这是偶数回文同理求长度为奇数回文,等于求下标奇偶性相同的数对数量求奇数时需要注意,因为奇偶性相同是同类,求数对数量即求组合数n*(n-1)/2最后加上每个单个的字符偶数不需要除以2是因为奇偶性不同,不会重复#include#includeusingnamespacestd;#defineintlonglongsig