随笔分类 - 题解
摘要:"题面" 先将所有盒子按苹果数排序,由于一共有奇数个盒子,此时取下标为奇数的盒子1、3、5、7...2 n 1 一定可以使苹果满足条件(2 n 1比2 n 2大(或等于),2 n 3比2 n 4大,...3比2大,最后还多下1,因此苹果树一定大于等于一半) 然后判断橘子数是否大于等于总数一半,如果大
阅读全文
摘要:"题目链接" "官方英文题解" A、B、C直接上代码吧 "A" "B" "D" 题意:向序列中每次加入一个数,可以把序列中的任意一个数a变为b,满足b=a+k x,b =0且k为整数,每次回答当前序列中不存在的最小自然数的最大可能值 显然与取模运算有关,a[i]表示%x结果为i的数中最小的没有的数,
阅读全文
摘要:"P1442 铁球落地" "线段树例题解析合集" 与 "这题" 十分类似,只是答案的计算方式有些不同,前面的部分就不说了 计算答案时上题用最短路写的,这题用dp写一遍 fl[i]表示到达每个平台左侧的最短时间,fr[i]同理 转移方程应该挺简单的,从上向下dp就行了,因为每个平台只会更新下面的两块平
阅读全文
摘要:"HDU3016 Man Down" 】 "线段树例题解析合集" 题意:在平面内有n条横放的线段,每条线段给出高度、左右端点位置和能量(可正可负),最初处于最高的一条线段上且拥有100点能量和当前线段上的能量之和,每次可以从线段左边或右边竖直落下(可能落到其他线段上也可能落到地上),落到其他线段上则
阅读全文
摘要:"POJ2892 Tunnel Warfare" "线段树例题解析合集" 题意:有一条相邻节点相连的链(1和2,2和3,...n 1和n相连),有3种操作:1、破坏某一个节点 2、问从某个点可以到的点有多少个,即中间没有被破坏的点(包括自己) 3、重建当前最后一个被破坏的点 建立线段树维护每个点能到
阅读全文
摘要:"HDU2795 Billboard" "线段树例题解析合集" 题意:有一个h行w列的矩形,在里面横放m条大小为1 l[i]的小长方形,不能重叠,如果能放得下,输出能放下的最小行数,放不下输出 1 由于只有m个长方形,最多只需要m行(h范围很大),把h对m取min 然后维护每行剩下的值的区间最大值,
阅读全文
摘要:"CF920F SUM and REPLACE" "线段树例题解析合集" 和模板的不同之处在于修改时是改为每个数的约数个数,不难发现,当一个数x2的数都要暴力修改,但由于每个数的约数个数下降很快,几次后便降到 using namespace std; define rg register defin
阅读全文
摘要:"POJ3321 Apple Tree" "线段数例题解析合集" 题意:给定一棵树,有两种操作:1、把某个节点上的数^1(若是1改为0,是0改为1) 2、查询以某个节点为根节点的子树中1的个数 在一棵树上进行单点修改和查询,只要进行一遍dfs,记录每个点的dfs序即可把问题转化到链上用线段树进行维护
阅读全文
摘要:目前有8道题,会持续更新(修正:已经停更啦)... 难度大致从易到难,(虽然都不难) 英文题面的题有题意简述 (提示:HDU的题目注意多组数据!不然被坑惨) POJ3321 Apple Tree 题意:给定一棵树,有两种操作:1、把某个节点上的数^1(若是1改为0,是0改为1) 2、查询以某个节点为
阅读全文
摘要:"题目" 解题思路 gcd(i,n)的值一定是n的一个约数,并且n的约数个数并不大(好像不会超过5000) 由此可以想到枚举n的每个约数p,再求出gcd(i,n)的值为p的i的个数num,答案res就为p num的和 因此只要求出对于每个P满足要求的i的个数即可解决问题 设当gcd(i,n)为p时,
阅读全文
摘要:"题目" 分类讨论 对于满足要求的数对(x,y),有两种情况: A:x、y 中有一个是质数p,另一个数是p的倍数,此时gcd(x, y)显然为p,满足要求 B:x = p·k1, y = p·k2, p为质数,且k1, k2互质,gcd(x, y)也为质数p 方案计算 先用素数线性筛和 "欧拉函数的
阅读全文
摘要:题目 基本思路和算法(A*)大佬们都讲的很详细了(不会的点这里),这里就提供一个小小的但很实用优化。 离AC只差一步的可以来看看 《算法竞赛进阶指南》第124页写到“估价函数的估值不能大于未来的实际价值”,但在这题中,稍稍提高一点估值可以大大提高程序运行效 优化前 优化后 优化前后效率快了将近一倍,
阅读全文
摘要:题目 题意简述 在一颗树中的每个深度找出一些不重合的子树,使所有子树的大小之和最大。 解题思路 直接暴力dfs(枚举)方案,好像想不到特别有用的剪枝,就打了朴素的搜索,结果就过了(数据范围小) 先从根节点 dfs 遍历整棵树,把会用到的信息都记录下来(节点的深度,每个节点的子树大小) 为了后面搜索方
阅读全文
摘要:题目 解题思路 暴力bfs,用字符串来模拟这三种操作 用字符串的优点:代码易想,简单易懂,降低思考复杂度,删除/插入操作直接截取字符串再相加就完事了(.substr函数) 缺点:相对直接用数字操作更慢(可能只有我的慢) 交换 最简单的操作,直接交换字符串中的两个字符,然后对应到数字,判断是否要加入队
阅读全文
摘要:题目 一道模版题加了个方案计数就蓝了...... 解题思路 求最优方案直接 n2 不多说,记录方案数还需要一点小技巧 高精直接用double水了(懒)...... f[i] 表示前 i 个数的最优方案,num[i] 表示前 i 个数的最优方案数 当循环到第 i 个时,先照常算出f[i] 和 num[
阅读全文
摘要:题目 题目分析 题目将扫雷游戏简化,改为只有一列有雷的版本 a[i] 表示第 i 格的数字 f[i][j][k]表示当前做到第 i 个位置,第 i 个位置的状态为 j(1表示无雷,2雷),第 i+1 位置状态为 k 由雷的个数写出状态转移方程: f[i][1][1] :此时两个位置上都没有雷,此时
阅读全文
摘要:题目 这题坑啊,第7个点数据错了,输出应该是5040,标准答案是252,查了半天也找不到错qwq 看了讨论才知道要特判才能过...... 题目解析 刚做 dp,做法不是太好,看到数据这么小(n <= 15), 可以做到 O(n6); 于是想了一个 O(n3k2) 的五重循环做法 f[l][r][j]
阅读全文
摘要:题目传送门 暑期自己想出来的第 2 道 dp //qwq 题目分析 一看到题很容易想到二分答案,代码也比较简单,就不放了(其实是我没打) 因为算法标签写着是 dp 我才做这题的,那就讲讲 dp 的做法 (这题 dp 的复杂度好像比二分还高) 目前还没有想出 O(mk) 的做法(以后也想不出),只有
阅读全文
摘要:题目传送门 题目不是很难,看了一会就想到了,但因为一些细节WA了好几遍qwq 但代码却一点一点压短了(看了别人的精简写法) 题目分析 把一个序列改成不上升或不下降子序列,求最少修改次数。 一般情况有求 LIS 和 LDS 的 O(nlogn) 做法,但由于本题只出现 1, 2, 3 三个数字,可进一
阅读全文
摘要:题目传送门 题目分析 先打一张碱基之间的相似度的表 int c[5][5]={{5, -1, -2, -1, -3}, {-1, 5, -3, -2, -4}, {-2, -3, 5, -2, -2}, {-1, -2, -2, 5, -1}, {-3, -4, -2, -1, 0}}; 设两个序列
阅读全文

浙公网安备 33010602011771号