- 博客(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 127 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 282 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 817
原创 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 64
原创 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 62
原创 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 153
原创 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 138
原创 小 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 84
原创 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 65
原创 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 91
原创 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 193 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 232
原创 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 103
原创 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 137
原创 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 180
原创 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 99
原创 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 77
原创 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 134
原创 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 230
原创 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 128
原创 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 108
原创 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 200
原创 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 128
原创 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 251
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人