自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 最长上升子序列

最长上升子序列、算法一状态表示f(i)表示为在前i个的最长上升子序列的长度转移方程f[i]=max(f[i],f[j]+1) j=(1,i-1)代码如下#include<bits/stdc++.h>using namespace std;const int N=2e5+10;int a[N],f[N];int main(){ int n;cin>>n; for(int i=1;i<=n;i++) cin>>a[i];

2021-07-12 17:45:10 112

原创 九大背包问题

背包问题1.01背包问题描述2. 01背包问题 - AcWing题库你有一个体积固定的背包,要去装宝石,每个宝石都有体积v和价值w,你需要王背包里装进价值最多的宝石(宝石是不可被分割的)状态表示f(i,j)在前i中选背包容量为j的最大价值当前的状态依赖于之前的状态,可以理解为从初始状态f(0,0) = 0开始决策,有 N 件物品,则需要 N次决 策,每一次对第 i件物品的决策,状态f(i,j)不断由之前的状态更新而来。状态转移方程(1) 当背包容量不够时(j<v[i]),那我们就没得选

2021-07-09 20:50:09 221

原创 2021-7-8刷题题解

codeforces暑假刷题(1200-1400)1371B - Magical Calendar题意:给定n天和r 有一种一周的天数可以为1-r变化的日历 问连续的n天在所有变化的日历上有多少种情况(重复的不算)思路:当一周有一天时那么就是一个宽为一的长方形,当一周有两天时我们可以选择从第一天开始或者从第二天开始。以此类推。但是当r>=n时那么就只有一种情况就是一整个长方形,应为当选择从大于n的天数开始放的时候会和前面的情况重复。代码如下:#include<bits/stdc++.h

2021-07-09 08:55:16 126

原创 Codeforces Global Round 14

Codeforces Global Round 14A - Phoenix and Gold题意:给了一个长度为n的数组 和m 问是否可以累加这个数组每次累加的结果不能等于m 输出累加的这个数组的顺序思路:先排序然后累加当累加到m的时候就去和最后一个数比较如果等于最后一个数那就说明没有这样的顺序存在 否则交换这个数和最后一个数代码如下:#include<iostream>#include<algorithm>#include<cstring>using

2021-05-03 18:39:56 88

原创 Educational Codeforces Round 108 (Rated for Div. 2)

Educational Codeforces Round 108 (Rated for Div. 2)A - Red and Blue Beans题意:一共有n颗红豆与m颗蓝豆与最大误差x 假设你有无限个口袋每个口袋里面装的红豆与蓝豆最大值不得大于x并且装进口袋的蓝豆与红豆每种至少有一个 问你是否可行思路:既然他的最大误差是x那么我们先找到红豆与蓝豆数量少的那个记为j 那么数量多的那种豆数量最大可以是j*(x+1) 如果数量比这个还多那么就是不可行的还有就是注意特判 两种豆数量相等的情况 1 x无论是

2021-04-30 19:10:28 76 1

原创 Codeforces 1200-1400

Codeforces 1200-14001513B - AND Sequences题意:t组测试每组测试给定一个长度为n的数组a[ ] 问在全排列的数组中能找出几种使得or all i from 1 to n 使得a1&a2&…&ai=ai+1&ai+2&…&an思路:将所有的数字与一遍得出x如果存在这样的排列那么至少会存在两个数字等于x (记数组中等于x的数的个数为sum )那么根据组合可得(sum-1)sum(n-2)!代码如下#include&

2021-04-28 20:36:45 371

原创 Contest 2050 and Codeforces Round #718 (Div. 1 + Div. 2)

Contest 2050 and Codeforces Round #718 (Div. 1 + Div. 2)A - Sum of 2050如果这是一个由2050的倍数组成的数那么他肯定是可以被2050整除的,所以当他不能被2050整除时输出-1,当他可以被整除时最优情况就是从最大的倍数开始减去直至为零(就是整除后每位数字之和)代码如下#include<iostream>#include<cstring>#include<algorithm>#includ

2021-04-25 20:31:45 240

原创 codeforces 718 B

codeforces 718 B#include<iostream>#include<algorithm>using namespace std;const int N=110;int a[N][N],b[N*N];bool vis[N][N];int n,m;int k;int x1,y1;int main(){ int t;cin>>t; while(t--) { int aa=0;

2021-04-25 19:17:29 148

原创 hd 6024 动态规划

hd 6024dp链接:http://acm.hdu.edu.cn/showproblem.php?pid=6024#include<iostream>#include<algorithm>#include<cstring>using namespace std;typedef long long ll;const int N=3010;const int inf=1e9;struct node{ ll a,b;}s[N];bool cmp

2021-03-07 10:11:58 76 1

原创 字符矩阵

字符矩阵的输入问题在输入字符矩阵时,换行符‘\n’会被当做字符存入字符矩阵中,准确的说,存入了每一行的最后一个。解决方案1.我们可以每一行多一个单位储存换行符,即在定义二维数组的大小时,列+1。代码如下#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]) { int m,n,i,j; printf("输入矩阵的行:"); scanf("%d",&m); printf

2020-12-21 13:37:40 2161 2

空空如也

空空如也

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

TA关注的人

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