自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Running Snail

写代码是一种艺术,甚于蒙娜丽莎的微笑!不拼博,枉少年!

原创 CCF认证考试题解目录

编号标题题解201912-1报数201912-2回收站选址201912-3化学方程式201912-4区块链201912-5魔数

2020-02-11 19:08:43 837

原创 #CSP 201403-1 相反数(100分)

问题描述有 N 个非零且各不相同的整数。请你编一个程序求出它们中有多少对相反数(a 和 -a 为一对相反数)。输入格式第一行包含一个正整数 N。(1 ≤ N ≤ 500)。  第二行为 N 个用单个空格隔开的非零整数,每个数的绝对值不超过1000,保证这些整数各不相同。输出格式只输出一个整数,即这 N 个数中包含多少对相反数。样例输入51 2 3 -1 -2样例输出2AC的...

2020-02-26 10:59:33 128

原创 ~~双指针算法

for (int i = 0, j = 0; i < n; i ++ ){ while (j < i && check(i, j)) j ++ ; // 具体问题的逻辑}常见问题分类: (1) 对于一个序列,用两个指针维护一段区间 (2) 对于两个序列,维护某种次序,比如归并排序中合并两个有序序列的操作...

2020-02-25 17:41:54 89

原创 ~~离散化

vector<int> alls; // 存储所有待离散化的值sort(alls.begin(), alls.end()); // 将所有值排序alls.erase(unique(alls.begin(), alls.end()), alls.end()); // 去掉重复元素// 二分求出x对应的离散化的值int find(int x) // 找到第一个大于等于x的位置...

2020-02-25 17:40:24 87

原创 区间合并

模板// 将所有存在交集的区间合并void merge(vector<PII> &segs){ vector<PII> res; sort(segs.begin(), segs.end()); int st = -2e9, ed = -2e9; for (auto seg : segs) if (ed &lt...

2020-02-25 17:33:09 99

原创 洛谷 | P1219 八皇后(DFS)C++

输入6输出2 4 6 1 3 53 6 2 5 1 44 1 5 2 6 34

2020-02-24 15:29:40 126

原创 洛谷 | P1605 迷宫(DFS) C++

题目背景给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过。给定起点坐标和终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案。在迷宫中移动有上下左右四种方式,每次只能移动一个方格。数据保证起点上没有障碍。输入格式第一行N、M和T,N为行,M为列,T为障碍总数。第二行起点坐标SX,SY,终点坐标FX,FY。接下来T行,每行为障碍点的坐标。输出格式给定起点坐标和...

2020-02-23 11:09:57 2225

原创 #CSP 201412-1 门禁系统(100分)

#include <stdio.h>#define N 1000int main(){ int n, i, a[N], b[N], t, s = 0; scanf("%d", &n); for (i = 0; i < n; i++) scanf("%d", &a[i]); for (t = 1; t <= 1000; t++) { ...

2020-02-17 16:51:03 233

原创 #CSP 201509-1 数列分段(100分)

#include <stdio.h>#define N 1000int main(){ int n, a[N], i, s = 1; scanf("%d", &n); for (i = 0; i < n; i++) scanf("%d", &a[i]); for (i = 0; i < n - 1; i++) if (a[i] != ...

2020-02-16 11:43:12 216

原创 #CSP 201512-2 消除类游戏(100分)

#include<stdio.h>#define maxn 30int main(){ int n, m, a[maxn][maxn],b[maxn],c[maxn], d[maxn], e[maxn], s=0,t=0; scanf("%d%d", &n, &m); int i, j; for (i = 0; i < n; i++) for ...

2020-02-16 11:40:03 235

原创 #CSP 201512-1 数位之和(100分)

#include<bits/stdc++.h>using namespace std;int main(){ string s; cin>>s; int num=0; for(int i=0;i<s.size();++i) num+=s[i]-'0'; printf("%d",num); return 0;}

2020-02-16 11:35:19 228

原创 # CSP 201609-2 火车购票购买(100分)

试题编号:201612-2试题名称:火车购票时间限制:1.0s内存限制:256.0MB问题描述  请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配。  假设一节车厢有20排、每一排5个座位。为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10号,依次类推,第20排是96到100号。  购票时,...

2020-02-16 11:11:40 280

原创 #CSP 201604-1 折点计数

#include <stdio.h>#define N 1000int main(){ int n, i, a[N], b[N], s; scanf("%d", &n); for (i = 0; i < n; i++) scanf("%d", &a[i]); b[0] = a[1] - a[0]; for (i = 1; i < n -...

2020-02-16 11:08:43 221

原创 #CSP 201609-1 最大波动

#include <stdio.h>#define N 1000int main(){ int n, i, a[N], b[N], s = 0; scanf("%d", &n); for (i = 0; i < n; i++) scanf_s("%d", &a[i]); b[0] = a[1] - a[0]; for (i = 1; i &l...

2020-02-16 11:06:12 194

原创 #CSP 201703-1 分蛋糕

#include <stdio.h>#define N 1000int main(){ int a[N], n, k, i, s=0, m=0; scanf("%d%d", &n, &k); for (i = 0; i < n; i++) scanf("%d", &a[i]); for (i = 0; i < n; i++) {...

2020-02-16 11:02:18 196

原创 #CSP 201709-1 打酱油

问题描述小明带着N元钱去买酱油。酱油10块钱一瓶,商家进行促销,每买3瓶送1瓶,或者每买5瓶送2瓶。请问小明最多可以得到多少瓶酱油。输入格式输入的第一行包含一个整数N,表示小明可用于买酱油的钱数。N是10的整数倍,N不超过300。输出格式输出一个整数,表示小明最多可以得到多少瓶酱油。样例输入40样例输出5样例说明把40元分成30元和10元,分别买3瓶和1瓶,其中3瓶送1瓶,共...

2020-02-16 10:57:46 201

原创 #CSP 201712-1 最小差值

#include <stdio.h>#define N 1000int main(){ int i, j, n, a[N], t, b[N]; scanf_s("%d", &n); for (i = 0; i < n; i++) { scanf("%d", &a[i]); } for (i = 0; i < n; i++) { ...

2020-02-16 10:54:28 190

原创 P1181 数列分段Section I

传送门:洛谷 P1181 数列分段AC的代码如下:#include<iostream>#include<cstdio>using namespace std;int n,m,a[100002],ans;int main(){ scanf("%d%d",&n,&m);ans=n+1; for(int i=1;i<=n;i++...

2020-02-12 17:38:24 206

原创 #CSP 201812-1 小明上学(100分)

#include <stdio.h>int main(){ int r, y, g, n, k, t, ans = 0; scanf("%d%d%d%d", &r, &y, &g, &n); while(n--) { scanf("%d%d", &k, &t); if(k =...

2020-02-12 13:00:40 239

原创 #CSP 201909-1 小明种苹果

```c#include <stdio.h>#include <limits.h>int main(void){int n, m, a, drop, i, j;int all = 0, maxd = INT_MIN, id = 0;scanf("%d%d", &n, &m);for(i = 0; i < n; i++) {scanf(...

2020-02-12 12:54:39 127

原创 #CSP 201903-1 小中大

#include<stdio.h>int a[100010];int main(){ int n,i; scanf("%d",&n); for(i=1;i<=n;i++) scanf("%d",&a[i]); if(n%2==0) { if((a[n/2]+a[n/2+1])%2==1) a[1]>a[n]?printf("%...

2020-02-12 12:26:01 239

原创 #CSP 201803-1 跳一跳

#include <stdio.h>int main(){ int n=0, i, a[30], s, k = 0; for (i = 1; i < 30; i++) { scanf("%d", &a[i]); if (a[i] == 0) { n = i; break; } } if (a[0] == 1) s = 1;...

2020-02-12 11:02:37 217

原创 ~~二维差分(附模板题)

模板给以(x1, y1)为左上角,(x2, y2)为右下角的子矩阵中的所有元素加上c:S[x1, y1] += c, S[x2 + 1, y1] -= c,S[x1, y2 + 1] -= c, S[x2 + 1, y2 + 1] += c例题传送门:AcWing 798. 差分矩阵输入一个n行m列的整数矩阵,再输入q个操作,每个操作包含五个整数x1, y1, x2, y2, c,其中...

2020-02-09 18:39:04 183

原创 一维差分(附模板题)

输入一个长度为n的整数序列。接下来输入m个操作,每个操作包含三个整数l, r, c,表示将序列中[l, r]之间的每个数加上c。请你输出进行完所有操作后的序列。输入格式第一行包含两个整数n和m。第二行包含n个整数,表示整数序列。接下来m行,每行包含三个整数l,r,c,表示一个操作。输出格式共一行,包含n个整数,表示最终序列。数据范围1≤n,m≤100000,1≤l≤r≤n,...

2020-02-09 14:57:32 140

原创 二维前缀和(附模板题)

模板S[i, j] = 第i行j列格子左上部分所有元素的和以(x1, y1)为左上角,(x2, y2)为右下角的子矩阵的和为:S[x2, y2] - S[x1 - 1, y2] - S[x2, y1 - 1] + S[x1 - 1, y1 - 1]模板题传送门:796. 子矩阵的和输入一个n行m列的整数矩阵,再输入q个询问,每个询问包含四个整数x1, y1, x2, y2,表示一个子矩...

2020-02-09 14:39:33 173

原创 一维前缀和(附模板题)

模板S[i] = a[1] + a[2] + ... a[i]a[l] + ... + a[r] = S[r] - S[l - 1]例题## 传送门:795. 前缀和输入一个长度为n的整数序列。接下来再输入m个询问,每个询问输入一对l, r。对于每个询问,输出原序列中从第l个数到第r个数的和。输入格式第一行包含两个整数n和m。第二行包含n个整数,表示整数数列。接下来m行,每行...

2020-02-09 13:45:36 133

原创 ~~高精度除以低精度

// A / b = C ... r, A >= 0, b > 0vector<int> div(vector<int> &A, int b, int &r)//A为高精度数,b为低精度数{ vector<int> C; r = 0; for (int i = A.size() - 1; i >= 0...

2020-02-09 11:56:34 108

原创 ~~高精度乘低精度

模板// C = A * b, A >= 0, b > 0vector<int> mul(vector<int> &A, int b)//A为高精度数,b为低精度数{ vector<int> C; int t = 0; for (int i = 0; i < A.size() || t; i ++ ) ...

2020-02-09 11:19:54 138

原创 ~~高精度减法

模板// C = A - B, 满足A >= B, A >= 0, B >= 0vector<int> sub(vector<int> &A, vector<int> &B){ vector<int> C; for (int i = 0, t = 0; i < A.size(); i ++...

2020-02-09 11:08:10 59

原创 ~~高精度加法

模板// C = A + B, A >= 0, B >= 0vector<int> add(vector<int> &A, vector<int> &B){ if (A.size() < B.size()) return add(B, A);//A长度比B大 vector<int> C; ...

2020-02-09 11:07:18 59

原创 P1781 宇宙总统

题目描述地球历公元 6036 年,全宇宙准备竞选一个最贤能的人当总统,共有 nn 个非凡拔尖的人竞选总统,现在票数已经统计完毕,请你算出谁能够当上总统。输入格式第一行为一个整数 nn,代表竞选总统的人数。接下来有 nn 行,分别为第一个候选人到第 nn 个候选人的票数。输出格式共两行,第一行是一个整数 mm,为当上总统的人的号数。第二行是当上总统的人的选票。输入输出样例输入5...

2020-02-07 17:51:34 278

原创 algorithm头文件下的sort()

1.简单的sort使用必须加入头文件#include< algorithm >和using namespace std;使用如下:sort(首元素地址(必填),尾元素地址的下一个地址(必填),比较函数(选填));(1)对于整数#include<iostream>#include<algorithm>using namespace std;int...

2020-02-07 12:34:25 2454

原创 P1068 分数线划定

题目描述世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才,AA市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%150%划定,即如果计划录取mm名志愿者,则面试分数线为排名第m \times 150%m×150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。现在就请你编写程序...

2020-02-06 18:59:29 307

原创 algorithm头文件下的fill()

fill()可以把数组或容器中的某一段区间赋予相同的值。和memset不同,这里可以是数组类型对应范围中的任意值。示例如下:#include<iostream>#include<algorithm>#include<string>using namespace std;int main(){ int a[5]={1,2,3,4,5}; fil...

2020-02-06 17:01:21 209

原创 algorithm头文件下的next_permutation()

next_permutation给出一个序列在全排列中的下一个序列举例#include<iostream>#include<algorithm>using namespace std;int main(){ int a[10]={2,1,3}; do{ cout<<a[0]<<a[1]<<a[2]<<end...

2020-02-06 16:41:02 225

原创 algorithm头文件下的reverse()

数组指针在[it,it2)之间的元素反转#include<iostream>#include<algorithm>using namespace std;int main(){ int a[6]={10,11,12,13,14,15}; reverse(a,a+4); for(int i=0;i<6;i++) cout<<a[i]&lt...

2020-02-06 16:37:26 143

原创 algorithm头文件下函数整合

使用algorithm头文件,在头文件下加一行“using namespace std;”才能正常使用1.max(x,y)、min(x,y)、abs(x)分别返回最大值、最小值、绝对值注意:max,min中x,y可以是浮点型abs中的x必须为整数,浮点型用math头文件下的fabs2.swap(x,y)交换x,y的值3.reverse()reverse(it,it2)可以将数组指...

2020-02-06 16:33:47 333

原创 桶排序

桶排序(Bucket sort)是一种基于计数的排序算法(计数排序可参考上节的内容),工作的原理是将数据分到有限数量的桶子里,然后每个桶再分别排序(有可能再使用别的排序算法或是以递回方式继续使用桶排序进行排序)算法步骤设置固定数量的空桶。把数据放到对应的桶中。对每个不为空的桶中数据进行排序。拼接不为空的桶中数据,得到结果。图解过程复杂度及应用分析:桶排序的平均时间复杂度为线性的O...

2020-02-06 12:36:33 112

原创 P1059 明明的随机数(C/C++)

P1059 明明的随机数题目描述明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了NN个11到10001000之间的随机整数(N≤100)(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。输入格式输入有两行,第1...

2020-02-06 12:20:04 1517

原创 移位运算2的n次方

公式2^n=number<<n;移位运算实际应用——判断整数N是否为2的阶次方#include "studio.h"int main(){ int i=16; int n; printf("输入一个int类型整数:"); scanf("%d",&n); if(n>1<<(i-1)) printf("\n输入...

2020-02-05 18:16:10 369

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