02 2022 档案
摘要:状态压缩动态规划(简称状压dp)是另一类非常典型的动态规划,通常使用在NP问题的小规模求解中,虽然是指数级别的复杂度,但速度比搜索快,其思想非常值得借鉴。 为了更好的理解状压dp,首先介绍位运算相关的知识。 1.’&’符号,x&y,会将两个十进制数在二进制下进行与运算,然后返回其十进制下的值。例如3
阅读全文
摘要:P2895 [USACO08FEB]Meteor Shower S - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 主要把握两个方面。 1.用一个二维数组mapp来记录每个格子最早遭受流星的时间点,这样在走迷宫的时候就可以用来判断能否走这个格子 (用当前时间与mapp中记录的时间进
阅读全文
摘要:int i = 1,不是int i = i !! 当数组是double类型的时候,memset不能0x3f,想要取最大值,就for循环遍历取值为1e20!!!!(卡我一个多小时,麻了麻了)
阅读全文
摘要:P1149 [NOIP2008 提高组] 火柴棒等式 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 思路:用dfs搜索每种情况,符合要求的就计数 1.这道题刚开始没注意到数字可以组合起来变成多位数,因此需要提前处理每个多位数需要的火柴数。 2.在dfs搜索的时候,for循环一定要
阅读全文
摘要:一:约数 约数定义:约数,又称因数。整数a除以整数b(b≠0) 除得的商正好是整数而没有余数,我们就说a能被b整除,或b能整除a。a称为b的倍数,b称为a的约数。 1.试除法求约数: 若d<=sqrt(n)的d是n的约数,那么n/d也一定是n的约数,就是说n的约数是成对存在的,除了sqrt(n)本身
阅读全文
摘要:一:唯一分解定理 任何大于1的自然数,都可以唯一分解为有限个质数的乘积。 二:判定质数以及分解质因数 1.试除法判定质数O(sqrt(n)): 质数是除1和本身以外,不能被任何数整除的数。 试除法判定 m 是否为质数的过程: 1.先特判 m==2 和 1 的情况 2. for 循环从 i = 2 遍
阅读全文
摘要:一:简单题 1.二维数组存储 P2089 烤鸡 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 一个简单的dfs,虽然很裸但是对我(菜鸡)还是有难度。。需要注意的是要求先输出个数再输出方案数,所以我们用个二维数组把存起来,再for循环输出。 1 #include <bits/std
阅读全文
摘要:P2241 统计方形(数据加强版) - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 1.矩形、正方形数量公式: 运用小学时代的公式(设长为n,宽为m): (1+2+3+...+n)(1+2+3+...+m) 或 nm(n+1)(m+1)/4(等差数列的化简) 即可算出长方形个数。下
阅读全文
摘要:如果cmp用的是 return a>b,则特殊情况321 32会出现错误。 正确应为32321,但按照cmp会出现32132的错误。 但是用 return (a+b>b+a)就不会有这样的问题啦 1 #include <bits/stdc++.h> 2 using namespace std; 3
阅读全文
摘要:单纯用sort会超时,需要思考在快排中进行什么优化。 因为快排就是将区间划分为:(left<= j==i <=right) 1.小于等于x的区间 2.大于等于x的区间 而我们要找的是第k小的数,如果k在左区间内,则继续对左区间进行快排。如果k在右区间内,对右区间进行快排。如果k==j,则输出a[j]
阅读全文