自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 书的复制2021-06-22

洛谷绿题题目传送门题目背景大多数人的错误原因:尽可能让前面的人少抄写,如果前几个人可以不写则不写,对应的人输出 0 0 。不过,已经修改数据,保证每个人都有活可干。题目描述现在要把 m 本有顺序的书分给 k 个人复制(抄写),每一个人的抄写速度都一样,一本书不允许给两个(或以上)的人抄写,分给每一个人的书,必须是连续的,比如不能把第一、第三、第四本书给同一个人抄写。现在请你设计一种方案,使得复制时间最短。复制时间为抄写页数最多的人用去的时间。输入格式第一行两个整数 m,k。第二行 m 个

2021-06-22 18:53:01 155

原创 模拟赛2021-06-12

T1立方数题面概括:给多个质数,判断他们是否是“立方数”(立方数定义:满足p=a3-b3)思路:由于p是质数,所以p能够分解为p=1*p又因为他是立方数,根据立方差公式,p=(x-y)(x2+xy+y 2)很显然x-y=1,x2+xy+y 2=p可得p=3x2+3x+1 由次我们就可以二分答案来求解AC CODE#include<bits/stdc++.h>using namespace std;typedef long long ll;ll solve(ll x){

2021-06-15 20:31:34 112 1

原创 背包比赛进阶2021-06-10

T1只需要注意前缀输出ok了#include<bits/stdc++.h>using namespace std;typedef long long ll;const int INF=0x3f3f3f3f;const int MAX_N=5e2+5;const int MAX_K=5e2+5;const int MAX_V=5e2+5;int w[MAX_N][MAX_N];int dp[MAX_N][MAX_N];int r[MAX_N][MAX_N];int c

2021-06-10 19:45:02 120

原创 背包比赛总结2021-05-29

nt错误大全T1质数和分解题目传送门题目描述任何大于 1的自然数 n 都可以写成若干个大于等于 2 且小于等于 n的质数之和表达式(包括只有一个数构成的和表达式的情况),并且可能有不止一种质数和的形式。这里所谓两个本质相同的表达式是指可以通过交换其中一个表达式中参加和运算的各个数的位置而直接得到另一个表达式。试编程求解自然数 n 可以写成多少种本质不同的质数和表达式。输入格式:文件中的每一行存放一个自然数 n(2≤n≤200)输出格式:依次输出每一个自然数 n 的本质不同的质数和表达式的数目

2021-05-29 17:45:42 162 1

原创 砝码称重2021-05-27

砝码称重——很有意思的dp题目传送门题目描述设有1g、2g、3g、5g、10g、20g的砝码各若干枚(其总重≤1000 ),输入方式:a1,a2,a3,a4,a5,a6(表示1g砝码有a1​个,2g砝码有a2​个,…,20g砝码a6​个)输出方式:Total=N(N表示用这些砝码能称出的不同重量的个数,但不包括一个砝码也不用的情况)思路:1.把题目转换成01背包,把每次进来的物品个数一个个的拆分为单个物品存放在c数组内2.将c数组进行01背包求方案数的方法求解,求解方法如下:设f[i]

2021-05-27 20:54:41 1396 1

原创 差分约束

差分约束定义:如果一个系统由n个变量和m个约束条件组成,形成m个形如ai-aj≤k的不等式(i,j∈[1,n],k为常数),则称其为差分约束系统 亦即,差分约束系统是求解关于一组变量的特殊不等式组的方法。简单来说,就是给你一堆不等式,求这一组不等式的最大解或最小解或是否有解如上图我们要求x3-x0的最大值通过不等式两两相加可以可以得到x3-x0<=8; x3-x0<=9; x3-x0<=7 那么此时最大值显然是九 但这样做非常不严谨1.我们观察不等式x[i]-x[j]

2021-05-21 16:40:05 119

原创 分层图最短路

分层图最短路题目传送门(飞行路线)题目描述Alice 和 Bob 现在要乘飞机旅行,他们选择了一家相对便宜的航空公司。该航空公司一共在n个城市设有业务,设这些城市分别标记为 0 到 n−1,一共有 m 种航线,每种航线连接两个城市,并且航线有一定的价格。Alice 和 Bob 现在要从一个城市沿着航线到达另一个城市,途中可以进行转机。航空公司对他们这次旅行也推出优惠,他们可以免费在最多 k种航线上搭乘飞机。那么 Alice 和 Bob 这次出行最少花费多少?输入格式第一行三个整数 n,m,k 分

2021-05-18 20:57:14 191

原创 背包六讲

一.01背包题目:有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。解析:每种物品仅有一件,可以选择放或不放。f[i][v]表示前i件物品放入容量为v的背包可以获得的最大价值。则其状态转移方程便是:f[i][v]=max{f[i-1][v],f[i-1][v-c[i]]+w[i]}。空间优化后,要求在每次主循环中我们以v=V…0的顺序推f[v],这样才能保证推f[v]时f[v-c[i]]保存的是状态

2021-05-18 20:39:06 162

原创 最长公共子序列总结

最长公共子序列总结思路:1.如果a[i]==b[j],那么到a[i],b[j]的最长公共子序列的长度a[i-1][j-1]加一2.否则到a[i],b[j]为到a[i],b[j-1]和a[i-1],b[j]的子序列的较长长度注意:s1+1,s2+1能使编号和dp对应AC code#include<bits/stdc++.h>const int maxn=205;using namespace std;char s1[maxn],s2[maxn];int l1,l2;int

2021-04-29 20:55:35 306

原创 计算字符串距离2021-4-27

opj2988:计算字符串距离题目传送门2988:计算字符串距离描述对于两个不同的字符串,我们有一套操作方法来把他们变得相同,具体方法为: 修改一个字符(如把“a”替换为“b”) 删除一个字符(如把“traveling”变为“travelng”)比如对于“abcdefg”和“abcdef”两个字符串来说,我们认为可以通过增加/减少一个“g”的方式来达到目的。无论增加还是减少“g”,我们都仅仅需要一次操作。我们把这个操作所需要的次数定义为两个字符串的距离。给定任意两个字符

2021-04-27 20:59:49 135

原创 登山2021-4-27

opj1996:登山题目传送门描述五一到了,PKU-ACM队组织大家去登山观光,队员们发现山上一个有N个景点,并且决定按照顺序来浏览这些景点,即每次所浏览景点的编号都要大于前一个浏览景点的编号。同时队员们还有另一个登山习惯,就是不连续浏览海拔相同的两个景点,并且一旦开始下山,就不再向上走了。队员们希望在满足上面条件的同时,尽可能多的浏览景点,你能帮他们找出最多可能浏览的景点数么?输入Line 1: N (2 <= N <= 1000) 景点数Line 2: N个整数

2021-04-27 19:57:01 92

原创 友好城市2021-04-22

友好城市思路:由图一图二可知,要求连线没有交点,要求两条结点序列都要单调递增由此思路就出来了!先把一个岸的结点排序,再在另一个已经更新的序列中求出最长不下降子序列AC code#include<bits/stdc++.h> #define INF 100000 const int maxn=5005;using namespace std;struct river { int x,y;}a[maxn];int n,ans=-INF,f[maxn];bool cmp

2021-04-22 20:07:17 79

原创 专题:在dp过程中记录路径

**T1 最短路径思路:用邻接矩阵建图,很简单的用floyd求最短路而记录路径时则要用二维,每次更新路径要在找到更优解的时候更新,pre[i][j]=k表示从i到j要经历的中转点为k,最后递归printAC code#include <bits/stdc++.h>#define INF 1000000const int maxn = 105;using namespace std;int a[maxn][maxn];int n;int dp[maxn][maxn];in

2021-04-22 19:38:42 500

原创 关于导弹拦截的补充思路

题目链接题意总结:给出一个长度不超过100000的数列,其中的数每个是不大于50000的正整数,求这个数列的最长不降子序列(问一)以及将这个数列划分为n个不降子序列时,n的最小值(问二)。思路:1、对于问一直接用O(n*logn)的方法求最长不升子序列即可。求不升子序列的方法:链接2、对于问二求整个数列的最长上升子序列即可。证明如下:(1)假设打导弹的方法是这样的:取任意一个导弹,从这个导弹开始将能打的导弹全部打完。而这些导弹全部记为为同一组,再在没打下来的导弹中任选一个重复上述步骤,直到打完

2021-04-17 17:50:39 142 1

原创 最长不下降子序列总结

P1020 [NOIP1999 普及组] 导弹拦截洛谷原题题目描述某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。输入导弹依次飞来的高度(雷达给出的高度数据是≤50000 \le 50000≤50000的正整数),计算这套系统最多能拦截多少导弹,如果要拦截所有导弹最少要配备多少套这种

2021-04-17 17:37:54 290

空空如也

空空如也

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

TA关注的人

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