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

原创 最长上升子序列模型(2)

拦截导弹数据范围雷达给出的高度数据是不大于 30000 的正整数,导弹数不超过 1000。输入样例:389 207 155 300 299 170 158 65输出样例:62解法:反链定理,即 求所需最少个非上升子序列的数目 == 求最长上升子序列#include <iostream>using namespace std;const int N=1010;int n,a[N],f[N];int main(){ while(cin>>a[

2021-05-03 19:24:45 123

原创 最长上升子序列模型(1)

怪盗基德的滑翔翼数据范围1≤K≤100,1≤N≤100,0<h<10000输入样例:38300 207 155 299 298 170 158 65865 158 170 298 299 155 207 300102 1 3 4 5 6 7 8 9 10输出样例:669解法:求出正向和逆向的最大上升子序列,取最大值#include <iostream>using namespace std;const int N=110;int f[N

2021-05-02 22:01:16 169

原创 数字三角形模型

摘花生Hello Kitty想摘点花生送给她喜欢的米老鼠。她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来。地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,经过一株花生苗就能摘走该它上面所有的花生。Hello Kitty只能向东或向南走,不能向西或向北走。问Hello Kitty最多能够摘到多少颗花生。输入格式第一行是一个整数T,代表一共有多少组数据。接下来是T组数据。每组数据的第一行是两个整数,分别代表花生苗的行数R和列数 C。每组数据的接下来R行.

2021-05-02 21:22:44 119

原创 能被整除的数(容斥原理+状态压缩)

能被整除的数给定一个整数 n 和 m 个不同的质数 p1,p2,…,pm。请你求出 1∼n 中能被 p1,p2,…,pm 中的至少一个数整除的整数有多少个。输入格式第一行包含整数 n 和 m。第二行包含 m 个质数。输出格式输出一个整数,表示满足条件的整数的个数。数据范围1≤m≤16,1≤n,pi≤10^9输入样例:10 22 3输出样例:7解法:容斥原理+状态压缩记 | Si | 为 1~n 中能被第 i 个质数整除的集合,则:res = | S1∪S2∪S3∪…∪S

2021-04-01 15:14:30 307

原创 求组合数(四种题型 合集)

求组合数 I给定 n 组询问,每组询问给定两个整数 a,b,请你输出 Cba mod (10^9+7) 的值。输入格式第一行包含整数 n。接下来 n 行,每行包含一组 a 和 b。输出格式共 n 行,每行输出一个询问的解。数据范围1≤n≤10000,1≤b≤a≤2000输入样例:33 15 32 2输出样例:3101解法:使用递推预处理//递推求法(类似dp) 时间复杂度 O(N^2)#include <iostrea.

2021-03-31 18:17:54 851

原创 计数问题(数位统计dp)

给定两个整数 a 和 b,求 a 和 b 之间的所有数字中 0∼9 的出现次数。例如,a=1024,b=1032,则 a 和 b 之间共有 9 个数如下:1024 1025 1026 1027 1028 1029 1030 1031 1032其中 0 出现 10 次,1 出现 10 次,2 出现 7 次,3 出现 3 次等等…输入格式输入包含多组测试数据。每组测试数据占一行,包含两个整数 a 和 b。当读入一行为 0 0 时,表示输入终止,且该行不作处理。输出格式每组数据输出一个结果,每个

2021-03-17 19:11:32 321

原创 蒙德里安的梦想(状压dp模板题)(个人详细理解)

求把 N×M 的棋盘分割成若干个 1×2 的的长方形,有多少种方案。例如当 N=2,M=4 时,共有 5 种方案。当 N=2,M=3 时,共有 3 种方案。如下图所示:输入格式输入包含多组测试用例。每组测试用例占一行,包含两个整数 N 和 M。当输入用例 N=0,M=0 时,表示输入终止,且该用例无需处理。输出格式每个测试用例输出一个结果,每个结果占一行。数据范围1≤N,M≤11输入样例:1 21 31 42 22 32 42 114 110 0输出样例:10

2021-03-15 22:47:08 511 1

原创 整数划分DP(两种不同方法)

整数划分一个正整数n可以表示成若干个正整数之和,形如:n=n1+n2+…+nk,其中n1≥n2≥…≥nk,k≥1。我们将这样的一种表示称为正整数n的一种划分。现在给定一个正整数n,请你求出n共有多少种不同的划分方法。输入格式共一行,包含一个整数n。输出格式共一行,包含一个整数,表示总划分数量。由于答案可能很大,输出结果请对109+7取模。数据范围1≤n≤1000输入样例:5输出样例:7方法一:#include <iostream>

2021-03-13 16:57:14 219

原创 spfa和堆优化dijkstra的区别

SPFA:#include <iostream> //SPFA可处理负权边#include <cstring>#include <algorithm>#include <queue>using namespace std;const int N=1e6;int h[N],e[N],ne[N],w[N],idx,dist[N];int m,n;bool st[N];void add(int a,int

2021-03-06 20:31:35 389 2

原创 两则题解

神奇的手风琴Input唯一的行包含一个字符串s(1≤| s |≤500000)。 它由小写拉丁字母和字符[,] 、:和|组成。Output如果无法通过从s除去某些字符来获得手风琴,则输出-1。 否则,输出最终的手风琴的最大可能长度。ExamplesInput|[a: b:|]Output4Input|]:[|:]Output-1代码#include<stdio.h>#include<stdlib.h>#include<string.h>

2021-01-05 15:43:27 227

原创 西邮第二届新生赛

A、永远的聪明王Sample Input 14语文 9数学 56英语 23物理 7Sample Output 1物理 语文 英语 数学Sample Input 25化学 156C语言 45665工图 55高数 985Python 165Sample Output 2工图 化学 Python 高数 C语言#include<stdio.h>#include<stdlib.h> //qsort所需头文件int cmp(const void *p.

2020-12-26 13:08:49 435 1

原创 C语言对文件的操作

文件 是什么?一、首先,文件要有一个唯一标识以便识别和引用,分为:1、路径(用来找到文件)2、名称3、后缀(文件的格式或属性)二、其次,文件分为两类:1、ASCII文件:即字符形式的文件,又称文本文件,每个字节存放一个字符的ASCII码。2、二进制文件:即以二进制形式存储的文件。下面,我们使用C语言对文件进行操作首先,我们需要一个指向文件的指针来对文件进行一系列操作:如 FILE * fp一、文件的函数:· 打开与关闭:fopen(文件名,使用文件方式) //文件名为字符

2020-12-21 22:47:18 488

原创 C语言高精度加减法

首先,我们来看一下C语言中各类型的最值:unsigned int 0~4294967295int -2147483648~2147483647unsigned long 0~4294967295long -2147483648~2147483647long long的最大值:9223372036854775807long long的最小值:-9223372036854775808unsigned long long的最大值:1844674407370955161__int64

2020-12-14 22:29:26 5399

原创 C语言函数快排qsort()

C语言中的qsort()函数可对数组进行快速排序(quicksort),其包含在头文件#include<stdlib.h>中。qsort()需要4个参数,分别是:1、待排序数组;2、数组中待排序元素的数量;3、各元素的占用空间大小(单位为字节);4、指向 比较函数 的函数指针,用于确定函数的顺序;比较函数的原型:int cmp(const void *p1,const void *p2)可见,参数列表是两个空指针,它要指向你所需排序的数组元素。所以要将p1,p2转换为指向你当

2020-12-05 17:33:11 171

原创 单链表的创建、输出、搜索、删除、清除

首先,要创建一个链表,我们需要定义一个结构体:typedef struct _Node{ int value; struct _Node * next;}Node;为了使链表更具操控性与灵活性,我们可以再定义一个结构体来存放它的头部和尾部等:typedef struct _List{ Node * head; Node * tail;}List;1、创建:int main(void){ int number; List

2020-11-27 23:21:35 566 1

空空如也

空空如也

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

TA关注的人

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