自定义博客皮肤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)
  • 收藏
  • 关注

原创 GPA

GPA 解题思路:dp[i][j],表示对于前i个数有j个sad的最小和。保证是最小和,可以使sad的个数越少。 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double lf; typedef pair<int,int>P; const int inf = 0x7f7f7f7f; const double INF = 1e16; const int N = 1e4+1

2020-12-27 00:52:58 114

原创 P3052 [USACO12MAR]Cows in a Skyscraper G

P3052 [USACO12MAR]Cows in a Skyscraper G 解题思路:状压DP.dp[i]表示i的二进制为1的对应的第几个数,需要最少几个分组。r[i]表示在i二进制的状态下,最后一个分组还剩余的空间。 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double lf; typedef pair<int,int>P; const int inf =

2020-12-22 17:05:48 233

原创 P1433 吃奶酪

P1433 吃奶酪 解题思路:dp[i][k],假设k的二进制是01011,表示从i点出发,走过的点有1、2、4的最短距离。 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double lf; typedef pair<int,int>P; const int inf = 0x7f7f7f7f; const double INF = 1e16; const int N =

2020-12-21 17:18:57 130

原创 F. The Treasure of The Segments

F. The Treasure of The Segments 解题思路:排序之后,二分查找第一个大于等于a[i]-k,并且保证之间的距离相差最少为m,求C(个数,m-1)。 https://codeforces.com/contest/1462/problem/F

2020-12-18 17:37:05 276 1

原创 Gitignore

Gitignore 解题思路:这题对于我来说,一开始我不知道怎么可能有重名的文件夹区别分开。后来想到可以记录路径。记录路径也是有技巧的,需要加上“/” #include<algorithm> #include<cstring> #include<cstdio> #include<map> #include<string> #include<vector> #include<iostream> using namespace

2020-12-15 15:46:41 53

原创 字符串魔法(hard)

字符串魔法(hard) 解题思路:a数组和b数组分别计算字符串中’A’的前缀和,与’B’的后缀和。ret用来计算字符串s的前缀和,对于一个没有出现过的前缀和就记录他的下标,如果后面还出现这个前缀和,则说明这段区间的’A’和’B’的个数是相等的,然后再加上左边的A和右边的B就可以了。 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double lf; typedef pair<i

2020-12-10 20:40:50 371

原创 D. Returning Home(建图+最短路)

D. Returning Home 解题思路:这题主要是建图。首先从起点开始到其余的m个点的最短路应该是min(abs(sx-x),abs(sy-y)),因为当到了与第i个点有x或者y相等的时候,是可以一下就跳到。从这m个点到达终点的路径长度应该是abs(x-tx)+abs(y-ty),因为这不可以一下就跳到。而这m个点可以分别以x最近的相连接和以y最近的相连接。假设三个点x,y,z在一条直线上,x到z的最短路,应该是x到y的最短路+y到z的最短路,这是二维坐标,所以不可能更短。建图完成之后,就可以跑dij

2020-12-04 17:15:28 303

原创 C. Bargain

C. Bargain 解题思路:我是参考着这张表,又推了一下。 其实就是考虑对于第i个数。如果保持在第i的这个位置上,那么从i~n这些位置是不能删除的,所以只能删除前面的。如果对于第i个数不在第i的这个位置上,那么就要考虑可能在i+1,i+2…n这些位置上,因为只能删除连续的,所以第i个数在后面的位置上,的出来的个数也是又规律的。 https://www.cnblogs.com/likunhong/p/13773622.html #include<bits/stdc++.h> using na

2020-12-02 20:18:13 291

原创 B. Nice Matrix

B. Nice Matrix 解题思路:这题看一下样例,就知道四个角应该相等,所以可以直接取这四个数的中位数,我一开始取的是平均数,怎么算都不对。 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double lf; typedef pair<int,int>P; const int inf = 0x7f7f7f7f; const int N = 1e2+10; const

2020-12-02 13:26:14 213

原创 P1714 切蛋糕(线段树+前缀和)

P1714 切蛋糕 解题思路:求连续区间不超过k的最大值。先求出前缀和,线段树维护前缀和,在一个长度为k的区间,找到前缀和最小的,用最后的值减去这个值,得到的就是在这个区间里的最大值。如果长度不能到达k,从1寻找就可以了。 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double lf; typedef pair<int,int>P; const int inf = 0

2020-12-01 19:42:52 148

原创 D. Sequence and Swaps

D. Sequence and Swaps 解题思路:因为n的范围是500,可以枚举,将a[i]与x替换,对形成的b数组排序,判断a数组能否转化成b数组。 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double lf; typedef pair<int,int>P; const int inf = 0x7f7f7f7f; const int N = 1e5+10; c

2020-12-01 15:11:50 326

空空如也

空空如也

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

TA关注的人

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