自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 九峰与子序列

九峰与子序列解题思路:dp+hash,把每一个子字符串都转化成hash值,再进行dp#pragma GCC optimize(3,"Ofast","inline")#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

2021-02-28 17:51:04 112

原创 F. 养猪

F. 养猪解题思路:本以为是贪心的。原来是排序+dp。#include<bits/stdc++.h>using namespace std;typedef long long ll;typedef long double lf;typedef unsigned long long ull;typedef pair<double,double>P;const int inf = 0x7f7f7f7f;const ll INF = 1e16;const int N =

2021-02-25 19:39:58 134

原创 P1666 前缀单词

P1666 前缀单词解题思路:dp。设dp[i]是以第i个单词截止时,有多少个子集。这里有一点需要注意,就是排序.假设i<j,并且i和j是可以在一起的,那么k<i,k也j也是可以在一起的。#include<bits/stdc++.h>using namespace std;typedef long long ll;typedef long double lf;typedef unsigned long long ull;typedef pair<double,do

2021-02-24 22:48:42 140

原创 P1622 释放囚犯

P1622 释放囚犯解题思路:区间DP。dp[i][j]表示在i-1,j+1已经去点的情况下,最少需要放几块肉。#include<bits/stdc++.h>using namespace std;typedef long long ll;typedef long double lf;typedef unsigned long long ull;typedef pair<double,double>P;const int inf = 0x7f7f7f7f;const

2021-02-24 00:41:59 212

原创 F. 正方形计数

F. 正方形计数解题思路:枚举两个点为一条线段,以这条线段为对角线,求出另为两个点,判断条件有没有给出。答案要除2,因为有重复的。正方形,已知 (x0,y0) 和(x2,y2) 可以根据下列关系求(x1,y1),(x3,y3)x1+x3 = x0+x2;x1-x3 = y2-y0;y1+y3 = y0+y2;y1-y3 = x0-x2;#include<bits/stdc++.h>using namespace std;typedef long long ll;ty

2021-02-23 20:59:18 70

原创 F. Cable Protection(基环树)

F. Cable Protection解题思路:从环里面取一条边,两个点a、b,从a点出发,用树形dp找最小点,但此时a与b是必须连接的,所以a必须要有士兵,取dp[a][1],还有一种情况考虑b点有士兵,取min(dp[a][0],dp[a][1]),因为此时b点已经与a点连接的,所以a点士兵可有可无。#include<bits/stdc++.h>using namespace std;typedef long long ll;typedef long double lf;type

2021-02-23 00:39:52 341

原创 P2016 战略游戏

P2016 战略游戏解题思路:树形DP。设dp[u][0]dp[u][0]dp[u][0]不在uuu点处放士兵,dp[u][1]dp[u][1]dp[u][1]在uuu点处放士兵,在u点处如果不放士兵的话,对于和他相邻的必须放士兵,dp[u][0]+=dp[v][1]dp[u][0] += dp[v][1]dp[u][0]+=dp[v][1],如果u点放士兵,那么对于他相邻的可以放也可以不放,但是必须要放最小的,dp[u][1]+=min(dp[v][1],dp[v][0])dp[u][1] += min

2021-02-22 23:46:46 94

原创 P2015 二叉苹果树

P2015 二叉苹果树解题思路:树形DP。dp[u][j]表示以u为根节点,取j条边的最大苹果数。这个地方需要用类似于01背包,滚动数组从后往前取。#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 = 0x7f7

2021-02-19 12:58:31 123

原创 幂塔个位数的计算

幂塔个位数的计算解题思路:欧拉降幂。只需要保留最后两位,其实也不需要计算那么多层,最多100层就可以了,欧拉降幂递归求。#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

2021-02-17 01:57:39 509

原创 G. 小青争的零食

G. 小青争的零食解题思路:举证快速幂。假设零食为0,蔬菜为1。按照题意:00->01,01->11,01->10,10->01,10->00,11->10,11->11。对于n,前两个好确定只有00,01,10,11,后面的填充便可以由上面的确定。ans=[a∗aa∗bb∗ab∗b]∗[0b0000abab0000ab]ans = \begin{bmatrix}a*a&a*b&b*a&b*b\end{bmatrix} * \begin{

2021-02-16 16:53:20 131

原创 P2044 [NOI2012] 随机数生成器

P2044 [NOI2012] 随机数生成器解题思路:[x[i−1]c]∗[a011]=[x[i]c]\begin{bmatrix}x[i-1]&c\end{bmatrix}*\begin{bmatrix}a& 0\\1&1\end{bmatrix}= \begin{bmatrix}x[i]&c\end{bmatrix}[x[i−1]​c​]∗[a1​01​]=[x[i]​c​]注意:相乘可能爆long long,所以需要龟速乘。#include<bits/st

2021-02-11 23:43:28 183

空空如也

空空如也

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

TA关注的人

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