自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 第十九届浙大城市学院程序设计竞赛

I.Array Division 数组分组,要求每组的和大于等于0,求最多可以分成几组。#include<bits/stdc++.h>using namespace std;#define ll long longconst int N = 5010;ll s[N];int dp[N];int a[N], b[N];int main(){ int T; cin >> T; while(T -- ) { int n; scanf("%d",

2022-04-11 20:46:49 559

原创 PAT--Advanced Level--1007 Maximum Subsequence Sum (25 分)

做题思路:给出一个数组,求连续子序列的和的最大值。先预处理一个前缀和,方便取出某一段区间的和,他既然要求最大,那么端点的值必然大于等于零(注意这题有零要包含在序列里,题目没讲清楚,如果不包含的话,有个测试点过不了)。把所有可能的端点记录下来,枚举每个端点(一共要跑5e7个数据),取出最大的情况。#include<iostream>#include<cstring>#include<algorithm>#include<cmath>using na

2021-11-18 20:04:29 188

原创 PAT--Advanced Level--1006 Sign In and Sign Out (25 分)

做题思路:按照比较小时,分钟,秒的顺序进行排序,sign_in的部分输出最早的,sign_out输出最晚的。#include<iostream>#include<algorithm>#include<cstring>using namespace std;const int N = 2e5 + 10;string name[N];struct Node{ int h, m, s, num;}in[N], out[N];int cmp1(No

2021-11-18 19:50:05 433

原创 PAT--Advanced Level--1005 Spell It Right (20 分)

做题思路:直接用map把数值和英文单词对应起来。其它的就只剩下简单模拟了。#include<iostream>#include<algorithm>#include<cstring>#include<map>using namespace std;const int N = 1010;map<int, string> mp;string str1;char ans[N], idx;void init(){ mp[

2021-11-18 19:40:07 280

原创 PAT--Advanced Level--1004 Counting Leaves (30 分)

做题思路:建立一棵树,求树上每层的叶结点数量。开个记录深度和记录子节点的结构,如果一个结点没有子节点,那它就是叶结点,当前层数值加一。最后输出每层的叶结点数量。#include<iostream>#include<algorithm>#include<cstring>#include<vector>#include<map>using namespace std;const int N = 110;map<int, i

2021-11-18 19:36:29 326

原创 PAT--Advanced Level--1003 Emergency

做题思路:给出一幅图,图中每个结点都有一个值。从一个点到另一个点,求最短路径的数量,作为第一个输出。在求得每条最短路径同时,求每条最短路径中,路过结点的值的和做大是多少,作为第二个输出。Dijkstra满足拓扑序,所以即使是有环图,也可以进行最短路数量的计数。我这里用的是堆优化的Dijkstra,普通的Dijkstra也可以过。#include<iostream>#include<algorithm>#include<cstring>#include<

2021-11-17 20:29:57 81

原创 PAT--Advanced Level--1002 A+B for Polynomials

做题思路:要求两个多项式相加,结果按照指数从大到小的顺序输出。可以运用map离散化指数,使得每个指数相同的数的系数相加,最后排序输出结果就好。我这里处理的是多组输入,不用多组输入也可以过。#include<iostream>#include<algorithm>#include<cstring>#include<map>using namespace std;const int N = 1010;map<int, int> S

2021-11-17 20:15:50 91

原创 PAT--Advanced Level--1001 A+B Format (20 分)

做题思路:简单模拟题,正负数分类讨论,注意不要在负号前加逗号就行。#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;int a, b, len;string ans;int main(){ scanf("%d%d", &a, &b); ans = to_string(a + b); l

2021-11-17 20:09:08 194

原创 算法提高--数据结构--并查集例题(3)

算法提高–数据结构–并查集例题–程序自动分析题目描述:在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足。考虑一个约束满足问题的简化版本:假设 x1,x2,x3,…代表程序中出现的变量,给定 n 个形如 xi=xj 或 xi≠xj的变量相等/不等的约束条件,请判定是否可以分别为每一个变量赋予恰当的值,使得上述所有约束条件同时被满足。例如,一个问题中的约束条件为:x1=x2,x2=x3,x3=x4,x1≠x4,这些约束条件显然是不可能同时被满足的,因此这个问题应判定为不可被满足。现

2021-11-04 20:17:12 193

原创 算法提高--数据结构--并查集例题(2)

算法提高–数据结构–并查集例题–购买搭配题目描述:Joe觉得云朵很美,决定去山上的商店买一些云朵。商店里有 n朵云,云朵被编号为 1,2,…,n,并且每朵云都有一个价值。但是商店老板跟他说,一些云朵要搭配来买才好,所以买一朵云则与这朵云有搭配的云都要买。但是Joe的钱有限,所以他希望买的价值越多越好。输入格式:第 1 行包含三个整数 n,m,w,表示有 n 朵云,m 个搭配,Joe有 w的钱。第 2∼n+1行,每行两个整数 ci,di 表示 i朵云的价钱和价值。第 n+2∼n+1+m行,每行

2021-11-03 20:39:49 272

原创 算法提高--数据结构--并查集例题(1)

算法提高–数据结构–并查集例题–格子游戏题目描述:Bob和Alice玩游戏,两人分别在一个方格上延边画线,当画出封闭矩形时结束游戏。问什么时候结束游戏。输入:第一行两个整数n和m,表示方格的边长和两人画线的局数。以后 m 行,每行首先有两个数字 (x,y),代表了画线的起点坐标,接着用空格隔开一个字符,假如字符是 D,则是向下连一条边,如果是 R 就是向右连一条边。输出:第几局结束游戏数据范围:1≤n≤200,1≤m≤24000。做题思路:两个点连边,可以看成将两个点加入一个集合。游戏

2021-11-03 20:02:49 2414

原创 洛谷算法题单:模拟与高精度例题(下)

接着上篇的例题。1.洛谷P4924魔法少女小Scarlet题目描述:Scarlet最近学会了一个数组魔法,她会在n∗n二维数组上将一个奇数阶方阵按照顺时针或者逆时针旋转90°,首先,Scarlet会把1到n^2的正整数按照从左往右,从上至下的顺序填入初始的二维数组中,然后她会施放一些简易的魔法。Scarlet既不会什么分块特技,也不会什么Splay套Splay,她现在提供给你她的魔法执行顺序,想让你来告诉她魔法按次执行完毕后的二维数组。输入格式第一行两个整数n,m,表示方阵大小和魔法施放次数。

2021-03-01 15:31:57 726 2

原创 洛谷算法题单:模拟与高精度例题(上)

一:模拟想要利用计算机解决现实生活中的一些复杂的问题时,建立模型是解决问题的关键。举个生活中常见的例子:我们拿到了某次数学考试的成绩单,现在需要知道谁考得最好。当然不能把成绩单对着电脑晃一晃,然后问“谁考得最好?”。需要通过一种途径让计算机来理解这个问题。这个问题可以建模成:“给定数组 score[],问数组内元素的最大值”。这样建模后,就能很方便的写程序解决问题了。以下是例题:1.洛谷P1042乒乓球题目描述:国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球

2021-02-28 21:09:52 1001 1

原创 时间复杂度和额外空间复杂度

时间复杂度和额外空间复杂度:时间复杂度:想要了解时间复杂度,要先知道什么时常数时间操作。常数时间操作:一个操作如果和样本的数据量没有关系,每次都是固定时间内完成的操作,叫做常数时间操作。(包括:位运算,加,减,乘,除,取余,数组寻址等)例如:int p=3+5。p的取值所需的时间与数据的大小无关。时间复杂度就是执行完一个流程所需常数时间操作,只保留N的最高阶项(不包括其系数),称为时间复杂度。意义:评价两个个算法在数值趋向于正无穷时哪个更快。例如:O(N)和O(N2),数值趋于无穷时显然,

2021-01-23 10:59:49 1014

空空如也

空空如也

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

TA关注的人

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