自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 P2602 [ZJOI2010]数字计数(数位dp)

P2602 [ZJOI2010]数字计数 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double lf; typedef unsigned long long ull; typedef pair<int,int>P; const int inf = 0x7f7f7f7f; const ll INF = 1e16; const int N = 2e5+10; const

2021-04-30 20:00:47 119 1

原创 P4999 烦人的数学作业(数位dp)

P4999 烦人的数学作业 解题思路:数位dp。可以将1~9每一位出现的次数统计一下,再对应相乘之后再加。从高位向低位搜,dp[i][j]还剩下j位的时候,前面走了i个x,的数量是多少个。 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double lf; typedef unsigned long long ull; typedef pair<int,int>P; co

2021-04-30 16:34:21 266 1

原创 明七暗七(数位dp)

明七暗七 解题思路:进一步理解数位dp。如果搜索到某一位,它的高位有没有到顶点的,那么这一位就可以从0填充到9,并且可以将这种情况记录下来. #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double lf; typedef unsigned long long ull; typedef pair<int,int>P; const int inf = 0x7f7f7f7f

2021-04-29 22:02:05 739

原创 Beautiful Numbers(数位dp)

Beautiful Numbers 解题思路:dp[k][sum][cnt][t]dp[k][sum][cnt][t]dp[k][sum][cnt][t]表示的是从高位往低位搜,还剩下k为的时候,已经搜过的和是cnt,余数为t,sum是为总和的时候还有多少个。 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double lf; typedef unsigned long long u

2021-04-28 16:56:52 59

原创 AT1483 1(数位dp)

AT1483 1 解题思路:数位dp+记忆化搜索。对于12345来说,dp[2][3]表示的意思是后面三位不知道,前面两位有两个1的情况下,符合条件的有多少个。有些被计算过的,可以保存下来。 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double lf; typedef unsigned long long ull; typedef pair<int,int>P; c

2021-04-27 20:55:33 57

原创 P1142 轰炸

P1142 轰炸 解题思路:根据两个坐标求出k和b,接着统计一下(k,p)最多出现的次数,并且记录一下(k,p),判断(k,p)走了多少个坐标,x相等、y相等的情况单独处理。 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double lf; typedef unsigned long long ull; typedef pair<int,int>P; const int

2021-04-25 21:14:30 141

原创 P7042 「MCOI-03」正方

P7042 「MCOI-03」正方 解题思路:枚举。 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double lf; typedef unsigned long long ull; typedef pair<int,int>P; const int inf = 0x7f7f7f7f; const ll INF = 1e16; const int N = 2e5+10;

2021-04-25 16:49:01 126

原创 小 Q 与树(淀粉质)

小 Q 与树 解题思路:点分治。对于每一个重心,找到当前子树的所有符合条件的。 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double lf; typedef unsigned long long ull; typedef pair<int,int>P; const int inf = 0x7f7f7f7f; const ll INF = 1e16; const in

2021-04-25 15:46:08 80

原创 P1288 取数游戏II

P1288 取数游戏II 解题思路:对于a1,a2,a3…,0这样的链,如果长度为偶数,那么一定是先者赢,因为先者可以一直走到0的前面,走到0的时候,后者就无法走了。如果长度为奇数,那么就一定是后者赢。因为这是一个环,所以需要考虑两个方向。 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double lf; typedef unsigned long long ull; typede

2021-04-15 21:29:33 55

原创 P1290 欧几里德的游戏

P1290 欧几里德的游戏 解题思路:假设a>b。如果a >= 2*b,那么一定时先决策的赢。 假设a = x*b+c,是可以推到(b,c),如果(b,c)是先决策的赢得话,可以推到(b,c+b),这样对方只能推到(b,c),自己就赢了。如果(b,c)是先决策得输得话,那么就可以直接推到(b,c)让对方输。 如果是a < b*2,那么直接减就可以了。 #include<bits/stdc++.h> using namespace std; typedef long long l

2021-04-15 17:54:52 82

原创 P1877 [HAOI2012]音量调节

P1877 [HAOI2012]音量调节 解题思路:dp[i][j]dp[i][j]dp[i][j]表示前iii首歌能否音调达到jjj. #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double lf; typedef unsigned long long ull; typedef pair<int,int>P; const int inf = 0x7f7f7f7f;

2021-04-14 23:44:38 177 1

原创 P1832 A+B Problem(再升级)

P1832 A+B Problem(再升级) 解题思路:DP。对于我来说这是一种新的的dp,根据当前的点推出后面的点。 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double lf; typedef unsigned long long ull; typedef pair<int,int>P; const int inf = 0x7f7f7f7f; const ll

2021-04-14 17:33:52 215

原创 P1757 通天之分组背包

P1757 通天之分组背包 解题思路:分组背包模板题。 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double lf; typedef unsigned long long ull; typedef pair<int,int>P; const int inf = 0x7f7f7f7f; const ll INF = 1e16; const int N = 1e5+10

2021-04-14 15:41:25 91

原创 P1507 NASA的食物计划

P1507 NASA的食物计划 解题思路:dp[i][j]dp[i][j]dp[i][j]表示在体积为iii,质量为jjj的情况下,所含卡路里的最大值。 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double lf; typedef unsigned long long ull; typedef pair<int,int>P; const int inf = 0x7f

2021-04-13 11:47:22 119

原创 CF161D Distance in Tree(点分治)

CF161D Distance in Tree 解题思路:点分治。对于每一个子树求出所有点到重心的距离,然后通过calc计算个数。 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double lf; typedef unsigned long long ull; typedef pair<int,int>P; const int inf = 0x7f7f7f7f; con

2021-04-12 16:13:58 167

原创 P2634 [国家集训队]聪聪可可(点分治)

P2634 [国家集训队]聪聪可可 解题思路:寻找每一个子树的重心,然后求出子树每个点到子树重心的距离,求和为3的倍数。 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double lf; typedef unsigned long long ull; typedef pair<int,int>P; const int inf = 0x7f7f7f7f; const ll

2021-04-12 11:26:52 93

原创 P3806 【模板】点分治1

P3806 【模板】点分治1 解题思路:点分治。对于每一个子树不停的寻找重心,然后在子树中找到每个点与重心的距离并且记录一下x是重心的哪一颗子树,用双指针判断时候有某个值。 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double lf; typedef unsigned long long ull; typedef pair<int,int>P; const int

2021-04-11 20:55:49 74

原创 P3062 [USACO12DEC]Wifi Setup S

P3062 [USACO12DEC]Wifi Setup S 解题思路:dp。dp[i]表示1~i-1个点的最小花费。 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double lf; typedef unsigned long long ull; typedef pair<int,int>P; const int inf = 0x7f7f7f7f; const ll

2021-04-10 17:08:50 123

原创 Jump Conveyor

N: Wifi Setup 解题思路:思维性的搜索。搜索时给点标记3,如果还搜到了3,那么就说明构成了一个环,给环标记上2。搜索时如果遇到一个环,那么也说明可以构建一个环,继续返回2,如果没有搜索到环,那么就给标记上1. #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double lf; typedef unsigned long long ull; typedef pair<

2021-04-10 11:19:38 218

原创 P4178 Tree(点分治)

P4178 Tree 解题思路: 1、任选一个根节点P(p应该取树的重心) 2、从p出发进行一次DFS,求出子树每个点到重心的距离dis,存放数组a中排序。 3、执行calc§,注意,此时有些路径已经被重复了。 4、删除根节点,对p的每颗子树递归执行1~4 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double lf; typedef unsigned long long ull

2021-04-10 09:56:29 116

原创 P1463 [POI2002][HAOI2007]反素数

P1463 [POI2002][HAOI2007]反素数 解题思路:这里对于反素数有三个结论。 (1)1~N中最大反素数,就是1 ~N中约数个数最多的数中最小的一个。 (2)1~N中任何数的不同质因子都不会超过10个,且所有质因子的指数总和不超过30. (3)∀x ∈\in∈ [1,N],x为反素数的必要条件是:x分解质因数后可写作2c1*3c2*5c3 *7c4 * 11c5 * 13c6 * 17c7 *19c8 * 23c9 *29c10,并且C1>=C2>=…C10>=0. 按

2021-04-08 17:08:51 97

原创 P3120 [USACO15FEB]Cow Hopscotch G

P3120 [USACO15FEB]Cow Hopscotch G 解题思路:学习了动态开线段树。假设开了k+1个线段树,第0个线段树保存的是对于所有不同颜色的总统计和,其余的1~k个线段树保存的是对于每一种颜色的个数的统计和。 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double lf; typedef unsigned long long ull; typedef pair

2021-04-08 13:22:06 188

原创 UVA10140 Prime Distance

UVA10140 Prime Distance 解题思路:线性筛法。对于n以内的合数,只要求出sqrt(n)中的素数的倍数就可以了,那么别的就一定是素数了,再加上l~r的距离最多为1000000,素数的映射。 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double lf; typedef unsigned long long ull; typedef pair<int,in

2021-04-07 20:19:07 115

原创 P2563 [AHOI2001]质数和分解

P2563 [AHOI2001]质数和分解 解题思路:打表。也可以使用dp。 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double lf; typedef unsigned long long ull; typedef pair<ll,int>P; const int inf = 0x7f7f7f7f; const ll INF = 1e16; const int

2021-04-03 14:54:26 244

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除